Andy hace 3 años
padre
commit
8e556c621a

+ 3 - 8
src/views/BasicSettings/OverStandardPrice/detail.vue

@@ -267,14 +267,9 @@ export default {
   // 生命周期 - 创建完成(可以访问当前this实例)
   created() {
     // 获取产品分类
-    this.axios
-      .get("/api/basics_product_index")
-      .then((res) => {
-        this.cascader_list = res.data.data;
-      })
-      .catch((err) => {
-        console.error(err);
-      });
+    this.axios.get("/api/basics_product_index").then((res) => {
+      this.cascader_list = res.data.data;
+    });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {

+ 36 - 17
src/views/BidSystem/ContractList/edit.vue

@@ -639,7 +639,7 @@
           <Button
             type="primary"
             style="margin-right: 10px"
-            @click="handleAddPDTAdd(tempIndex)"
+            @click="handleAddPDTAdd(tempIndex, tempItem)"
             >添加</Button
           >
           <Button
@@ -1512,9 +1512,10 @@ export default {
     postData() {
       this.formData.list.map((list) => {
         list.product.map((product) => {
-          product.special.map((value) => {
-            value.value = product[value.key];
-          });
+          product.special &&
+            product.special.map((value) => {
+              value.value = product[value.key];
+            });
         });
       });
       //1新增 2编辑
@@ -1650,8 +1651,17 @@ export default {
       this.tempPDTList.splice(index + 1, 0, temp);
     },
     //新增产品添加
-    handleAddPDTAdd(index) {
-      this.tempPDTList.splice(index + 1, 0, { addPDTProcessAttrList: [] });
+    handleAddPDTAdd(index, row) {
+      console.log("row :>> ", row);
+      this.tempPDTList.splice(index + 1, 0, {
+        addPDTProcessAttrList: [],
+        measure: "",
+        measures: [],
+        process_property: "",
+        url: [],
+        tempPDTTypeList: [],
+        process_properties: [],
+      });
     },
     //新增产品删除
     handleAddPDTDele(index) {
@@ -1668,17 +1678,23 @@ export default {
           0,
           element.process_property.length - 1
         );
-        element.process_properties = element.process_properties.substring(
-          0,
-          element.process_properties.length - 1
-        );
-
-        element.tempMeasureList.forEach((el) => {
-          element[el.e_title] &&
-            (element.measure += `${el.e_title ? el.e_title : 0}${
-              element[el.e_title]
-            }*`);
-        });
+        if (
+          element.process_properties &&
+          element.process_properties.length > 0
+        ) {
+          element.process_properties = element.process_properties.substring(
+            0,
+            element.process_properties.length - 1
+          );
+        }
+        element.tempMeasureList &&
+          element.tempMeasureList.length > 0 &&
+          element.tempMeasureList.forEach((el) => {
+            element[el.e_title] &&
+              (element.measure += `${el.e_title ? el.e_title : 0}${
+                element[el.e_title]
+              }*`);
+          });
         element.measure = element.measure.substring(
           0,
           element.measure.length - 1
@@ -2217,6 +2233,9 @@ export default {
     position: relative;
     border-bottom: 1px solid #e8eaec;
     margin-bottom: 30px;
+    /deep/ .ivu-form {
+      padding-bottom: 30px;
+    }
     /deep/ .ivu-form-item {
       display: inline-block;
       width: 300px;

+ 341 - 58
src/views/BidSystem/ContractList/info.vue

@@ -11,6 +11,13 @@
           添加特殊字段
         </Button> -->
         <Button
+          @click="showForms = true"
+          v-show="currencyTab == 'name2'"
+          type="primary"
+          style="margin-right: 10px"
+          >表单设置</Button
+        >
+        <Button
           @click="handleOpenModal"
           v-show="currencyTab == 'name2'"
           type="primary"
@@ -140,14 +147,14 @@
               v-show="!(areaItem.product && areaItem.product.length > 0)"
               >展示产品</Button
             >
-            <Button
+            <!-- <Button
               @click="handleHiddenCurrencyArea(areaItem, areaIndex)"
               size="small"
               type="primary"
               style="margin-right:10px"
               v-show="areaItem.product && areaItem.product.length > 0"
               >收缩</Button
-            >
+            > -->
             <Button
               @click="handleOpenModal"
               size="small"
@@ -200,7 +207,7 @@
             >
               <template slot="set" slot-scope="{ row, index }">
                 <a
-                  :disabled="row.sub_state == 1"
+                  :disabled="row.sub_state > 1"
                   @click="handleRowDeep(row, index)"
                   >下深化</a
                 >
@@ -223,44 +230,100 @@
               class="top_search_form"
             >
               <FormItem label="区域编码:">
-                <Input
+                <Select
+                  filterable
+                  clearable
+                  v-model="searchData.area_no"
+                  size="small"
+                  style="width:120px"
+                >
+                  <Option
+                    v-for="(_item, _index) in area_no_list"
+                    :key="_index"
+                    :label="_item"
+                    :value="_item"
+                  ></Option>
+                </Select>
+                <!-- <Input
                   type="text"
                   size="small"
                   clearable
                   v-model="searchData.area_no"
                   placeholder="请输入区域编码"
                   style="width: 120px"
-                />
+                /> -->
               </FormItem>
               <FormItem label="区域名称:">
-                <Input
+                <Select
+                  filterable
+                  clearable
+                  v-model="searchData.area_title"
+                  size="small"
+                  style="width:120px"
+                >
+                  <Option
+                    v-for="(_item, _index) in area_title_list"
+                    :key="_index"
+                    :label="_item"
+                    :value="_item"
+                  ></Option>
+                </Select>
+                <!-- <Input
                   type="text"
                   size="small"
                   clearable
                   v-model="searchData.area_title"
                   placeholder="请输入区域名称"
                   style="width: 120px"
-                />
+                /> -->
               </FormItem>
               <FormItem label="产品名称:">
-                <Input
+                <Select
+                  filterable
+                  clearable
+                  v-model="searchData.product_title"
+                  size="small"
+                  style="width:120px"
+                >
+                  <Option
+                    v-for="(_item, _index) in product_title_list"
+                    :key="_index"
+                    :label="_item"
+                    :value="_item"
+                  ></Option>
+                </Select>
+                <!-- <Input
                   type="text"
                   size="small"
                   clearable
                   v-model="searchData.product_title"
                   placeholder="请输入产品名称"
                   style="width: 120px"
-                />
+                /> -->
               </FormItem>
               <FormItem label="图号:">
-                <Input
+                <Select
+                  filterable
+                  clearable
+                  v-model="searchData.url_number"
+                  size="small"
+                  style="width:120px"
+                >
+                  <Option
+                    v-for="(_item, _index) in url_number_list"
+                    :key="_index"
+                    :label="_item"
+                    :value="_item"
+                  ></Option>
+                </Select>
+                <!-- <Input
                   type="text"
                   size="small"
                   clearable
                   v-model="searchData.url_number"
                   placeholder="请输入图号"
                   style="width: 120px"
-                />
+                /> -->
               </FormItem>
               <FormItem label="深化状态:">
                 <Select
@@ -371,7 +434,7 @@
           >
             <template slot="set" slot-scope="{ row, index }">
               <a
-                :disabled="row.sub_state == 1"
+                :disabled="row.sub_state > 1"
                 @click="handleRowDeep(row, index)"
                 >下深化</a
               >
@@ -556,12 +619,7 @@
       </div>
     </Modal>
     <!-- 批量下深化 -->
-    <Modal
-      v-model="processModal"
-      title="下深化"
-      @on-ok="handleProcess"
-      @on-cancel="processModal = false"
-    >
+    <Modal v-model="processModal" title="下深化">
       <div>
         <div class="process_modal">
           <span>深化人员:</span>
@@ -591,11 +649,32 @@
           ></DatePicker>
         </div>
       </div>
+        <div slot="footer">
+          <Button @click="processModal = false">取消</Button>
+          <Button type="primary" @click="handleProcess">确认</Button>
+        </div>
+    </Modal>
+    <!-- 表单设置 -->
+    <Modal
+      v-model="showForms"
+      @on-ok="postForms(1)"
+      class-name="vertical-center-modal"
+      style="max-height: 700px; overflow: hidden; overflow-y: auto"
+      title="表单设置"
+    >
+      <Table
+        :max-height="600"
+        border
+        :columns="formSetTableColumns"
+        :data="post_formSetTableData"
+      >
+      </Table>
     </Modal>
   </div>
 </template>
 
 <script>
+import { isArray } from "xe-utils";
 // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 // 例如:import 《组件名称》 from '《组件路径》';
 
@@ -736,7 +815,7 @@ export default {
           align: "center",
           minWidth: 80,
           render: (h, params) => {
-            return h("span", {}, params.row.sub_state == 1 ? "是" : "否");
+            return h("span", {}, params.row.sub_state > 1 ? "是" : "否");
           },
         },
         {
@@ -748,15 +827,15 @@ export default {
         },
       ],
       supTableColumns: [
-        { title: "序号", key: "index", align: "center" },
+        { title: "序号", type: "index", align: "center", minWidth: 100  },
         {
           title: "辅料名称",
           key: "title",
           align: "center",
           slot: "combine",
-          minWidth: 60,
+          minWidth: 150,
         },
-        { title: "操作", key: "set", align: "center", slot: "supSet" },
+        { title: "操作", key: "set", align: "center", slot: "supSet", minWidth: 100  },
       ],
       listTableColumns: [
         { type: "selection", align: "center", minWidth: 100 },
@@ -881,6 +960,168 @@ export default {
       page_size: 10,
       total: 0,
       searchData: {},
+      showForms: false,
+      formSetTableColumns: [
+        {
+          title: "是否展示",
+          align: "center",
+          key: "is_show",
+          minWidth: 60,
+          render: (h, params) => {
+            const { index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.post_formSetTableData[index])
+            );
+            return h("Checkbox", {
+              props: {
+                value: currentRow.is_show,
+                disabled:
+                  currentRow.key == "order_no" ||
+                  currentRow.key == "residential_name" ||
+                  currentRow.key == "warning_state" ||
+                  currentRow.key == "start_time" ||
+                  currentRow.key == "end_time" ||
+                  currentRow.key == "client_name" ||
+                  currentRow.key == "predict_price" ||
+                  currentRow.key == "box_id" ||
+                  currentRow.key == "predict_price" ||
+                  currentRow.key == "order_price" ||
+                  currentRow.key == "fax_price" ||
+                  currentRow.key == "remark",
+              },
+              on: {
+                "on-change": (e) => {
+                  currentRow.is_show = e;
+                  this.post_formSetTableData.splice(index, 1, currentRow);
+                },
+              },
+            });
+          },
+        },
+        {
+          title: "字段名",
+          align: "center",
+          key: "value",
+          minWidth: 100,
+        },
+        {
+          title: "展示名称",
+          align: "center",
+          key: "title",
+          minWidth: 100,
+          render: (h, params) => {
+            const { index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.post_formSetTableData[index])
+            );
+            return h("Input", {
+              props: {
+                value: currentRow.title,
+                type: "text",
+              },
+              on: {
+                "on-change": (e) => {
+                  currentRow.title = e.target.value;
+                  this.post_formSetTableData.splice(index, 1, currentRow);
+                },
+              },
+            });
+          },
+        },
+      ],
+      post_formSetTableData: [],
+      formSetTableData: [
+        {
+          is_show: true,
+          key: "order_no",
+          value: "订单编号",
+          title: "订单编号",
+        },
+        {
+          is_show: true,
+          key: "residential_name",
+          value: "项目名称",
+          title: "项目名称",
+        },
+        {
+          is_show: true,
+          key: "warning_state",
+          value: "紧急程度",
+          title: "紧急程度",
+        },
+        {
+          is_show: true,
+          key: "front_money",
+          value: "项目定金",
+          title: "项目定金",
+        },
+        {
+          is_show: true,
+          key: "start_time",
+          value: "开始日期",
+          title: "开始日期",
+        },
+        {
+          is_show: true,
+          key: "client_name",
+          value: "客户名称",
+          title: "客户名称",
+        },
+        {
+          is_show: true,
+          key: "custom_detail_name",
+          value: "负责人",
+          title: "负责人",
+        },
+        {
+          is_show: true,
+          key: "custom_detail_mobile",
+          value: "手机号",
+          title: "手机号",
+        },
+        {
+          is_show: true,
+          key: "custom_detail_id",
+          value: "详细地址",
+          title: "详细地址",
+        },
+        {
+          is_show: true,
+          key: "service_id",
+          value: "专营业务员",
+          title: "专营业务员",
+        },
+        {
+          is_show: true,
+          key: "end_time",
+          value: "交付日期",
+          title: "交付日期",
+        },
+        {
+          is_show: true,
+          key: "predict_price",
+          value: "产品总价",
+          title: "产品总价",
+        },
+        {
+          is_show: true,
+          key: "order_price",
+          value: "订单金额",
+          title: "订单金额",
+        },
+        {
+          is_show: true,
+          key: "fax_price",
+          value: "折扣金额",
+          title: "折扣金额",
+        },
+        { is_show: true, key: "box_id", value: "包装", title: "包装" },
+        { is_show: true, key: "remark", value: "订单备注", title: "订单备注" },
+      ],
+      area_no_list: [],
+      area_title_list: [],
+      product_title_list: [],
+      url_number_list: [],
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -890,6 +1131,8 @@ export default {
     this.$route.query.order_no
       ? (this.formData.order_no = this.$route.query.order_no)
       : "";
+    // 获取表单设置列表
+    this.get_forms();
     // 获取工艺属性
     this.axios("/api/basics_properties_index").then((res) => {
       this.PDTProcessAttrList = res.data.data;
@@ -930,6 +1173,29 @@ export default {
     });
   },
   methods: {
+    get_forms() {
+      this.axios
+        .post("/api/update/get_table", { id: "ContractList_info" })
+        .then((res) => {
+          if (
+            Array.isArray(res.data) &&
+            res.data.length > 0 &&
+            res.data.table.formSet &&
+            res.data.table.formSet.length > 0
+          ) {
+            this.formSetTableData = JSON.parse(
+              JSON.stringify(res.data.table.formSet)
+            );
+            this.post_formSetTableData = JSON.parse(
+              JSON.stringify(res.data.table.formSet)
+            );
+          } else {
+            this.post_formSetTableData = JSON.parse(
+              JSON.stringify(this.formSetTableData)
+            );
+          }
+        });
+    },
     handlechange(val) {
       console.log("val :>> ", val);
     },
@@ -944,6 +1210,7 @@ export default {
       }).then((res) => {
         if (res.code == 200) {
           this.formData = res.data;
+          this.supTableData = res.data.ext
           if (this.formData.list.length == 0) {
             this.formData.list.push({
               areaIndex: 1,
@@ -1081,7 +1348,7 @@ export default {
               align: "center",
               minWidth: 80,
               render: (h, params) => {
-                return h("span", {}, params.row.sub_state == 1 ? "是" : "否");
+                return h("span", {}, params.row.sub_state > 1 ? "是" : "否");
               },
             },
             {
@@ -1314,7 +1581,7 @@ export default {
           align: "center",
           minWidth: 80,
           render: (h, params) => {
-            return h("span", {}, params.row.sub_state == 1 ? "是" : "否");
+            return h("span", {}, params.row.sub_state > 1 ? "是" : "否");
           },
         },
         {
@@ -1358,10 +1625,18 @@ export default {
     getListData() {
       this.axios
         .get("/api/order_area_detail_list?", {
-          params: { order_no: this.$route.query.order_no, ...this.searchData,type:1},
+          params: {
+            order_no: this.$route.query.order_no,
+            ...this.searchData,
+            type: 1,
+          },
         })
         .then((res) => {
           this.listTableData = res.data.data;
+          this.area_no_list = res.data.area_no;
+          this.area_title_list = res.data.area_title;
+          this.product_title_list = res.data.product_title;
+          this.url_number_list = res.data.url_number;
           this.listTableData.map((item) => {
             !item.url && (item.url = []);
             res.data.imgs.map((element) => {
@@ -1394,33 +1669,37 @@ export default {
       (this.selected = [row]), (this.processModal = true);
     },
     handleProcess() {
-      const order_area_product_id = this.selected.map(
-        (item) => item.order_area_product_id || item.id
-      );
-      this.axios({
-        method: "get",
-        url: "/api/order_area_detail_pull",
-        params: {
-          order_no: this.order_no,
-          type: 1,
-          sub_state: 1,
-          order_area_product_id,
-          process_man: this.process_man,
-          process_start_time: this.process_start_time
-            ? this.func.replaceDateNoHMS(this.process_start_time)
-            : "",
-          process_end_time: this.process_end_time
-            ? this.func.replaceDateNoHMS(this.process_end_time)
-            : "",
-        },
-      }).then((res) => {
-        if (res.code == 200) {
-          this.$Message.success(res.msg);
-          this.selected = [];
-          this.getListData();
-          this.initData(this.$route.query.order_no);
-        }
-      });
+      if (this.process_man) {
+        const order_area_product_id = this.selected.map(
+          (item) => item.order_area_product_id || item.id
+        );
+        this.axios({
+          method: "get",
+          url: "/api/order_area_detail_pull",
+          params: {
+            order_no: this.order_no,
+            type: 1,
+            sub_state: 1,
+            order_area_product_id,
+            process_man: this.process_man,
+            process_start_time: this.process_start_time
+              ? this.func.replaceDateNoHMS(this.process_start_time)
+              : "",
+            process_end_time: this.process_end_time
+              ? this.func.replaceDateNoHMS(this.process_end_time)
+              : "",
+          },
+        }).then((res) => {
+          if (res.code == 200) {
+            this.$Message.success(res.msg);
+            this.selected = [];
+            this.getListData();
+            this.initData(this.$route.query.order_no);
+          }
+        });
+      } else {
+        this.$Message.warning("请选择人员");
+      }
     },
     changePage(e) {
       this.page_index = e;
@@ -1431,7 +1710,7 @@ export default {
       this.getListData();
     },
     handleHiddenCurrencyArea(item, index) {
-      item.isCurrencyArea = false
+      item.isCurrencyArea = false;
       this.$forceUpdate();
     },
     // 展示区域产品
@@ -1452,7 +1731,7 @@ export default {
             params: {
               order_no: this.$route.query.order_no,
               area_id: item.id,
-                    type: 1,
+              type: 1,
             },
           })
           .then((res) => {
@@ -1489,7 +1768,11 @@ export default {
         item.isCurrencyArea = true;
         this.axios
           .get("/api/order_area_list_product", {
-            params: { order_no: this.$route.query.order_no, area_id: item.id ,type:1},
+            params: {
+              order_no: this.$route.query.order_no,
+              area_id: item.id,
+              type: 1,
+            },
           })
           .then((res) => {
             if (res.code == 200) {
@@ -1598,9 +1881,9 @@ export default {
     }
   }
   /deep/ .ivu-modal-body {
-    display: flex;
-    justify-content: center;
-    flex-wrap: wrap;
+    // display: flex;
+    // justify-content: center;
+    // flex-wrap: wrap;
     max-height: 700px;
     overflow: hidden;
     overflow-y: auto;

+ 13 - 23
src/views/BidSystem/ContractList/list.vue

@@ -262,39 +262,29 @@ export default {
             h(
               "span",
               {},
-              params.row.state == 1
-                ? "订单未审核"
-                : params.row.state == 2
+              params.row.state == 0
                 ? "订单审核中"
+                : params.row.state == 1
+                ? "深化中"
+                : params.row.state == 2
+                ? "深化审核中"
                 : params.row.state == 3
-                ? "订单通过"
+                ? "拆单中"
                 : params.row.state == 4
-                ? "深化未审核"
+                ? "拆单审核中"
                 : params.row.state == 5
-                ? "深化审核中"
+                ? "生产审核中"
                 : params.row.state == 6
-                ? "深化通过"
+                ? "到计划生产"
                 : params.row.state == 7
-                ? "拆单未审核"
-                : params.row.state == 8
-                ? "拆单审核中"
-                : params.row.state == 9
-                ? "拆单通过"
-                : params.row.state == 10
-                ? "生产未审核"
-                : params.row.state == 11
-                ? "生产审核中"
-                : params.row.state == 12
-                ? "到生产计划"
-                : params.row.state == 13
                 ? "派工"
-                : params.row.state == 14
+                : params.row.state == 8
                 ? "包装"
-                : params.row.state == 15
+                : params.row.state == 9
                 ? "发货"
-                : params.row.state == 16
+                : params.row.state == 10
                 ? "安装"
-                : ""
+                : "订单审核中"
             ),
         },
         {

+ 4 - 4
src/views/BidSystem/DeepeningOrder/detail.vue

@@ -51,14 +51,14 @@
           style="margin-right:10px;"
           >返回</Button
         >
-        <Button
+        <!-- <Button
           @click="postData()"
           type="primary"
           :disabled="isChecked"
           ghost
           style="margin-right:10px;"
           >保存</Button
-        >
+        > -->
       </slot>
     </Toptitle>
     <Tabs value="name1" @on-click="handleCurTabChange">
@@ -214,7 +214,7 @@
                 <template slot="set" slot-scope="{ row, index }">
                   <a
                     style="margin:0 5px"
-                    :disabled="isChecked"
+                    :disabled="row.status == 1"
                     @click="handleSet(row, index, 1, item)"
                     >深化</a
                   >
@@ -382,7 +382,7 @@
             <template slot="set" slot-scope="{ row, index }">
               <a
                 style="margin:0 5px"
-                :disabled="isChecked"
+                :disabled="row.sub_state == 1"
                 @click="handleSet(row, index, 1, formData)"
                 >深化</a
               >

+ 53 - 15
src/views/BidSystem/DeepeningOrder/edit.vue

@@ -207,6 +207,25 @@
             />
             <span v-else>{{ tableData[index].number }}</span>
           </template>
+          <template slot="type_titleSet" slot-scope="{ index }">
+            <el-cascader
+              v-if="type == 1"
+              v-model="tableData[index].type_id"
+              size="small"
+              :show-all-levels="false"
+              :options="cascader_list"
+              :props="{
+                expandTrigger: 'hover',
+                children: 'child',
+                value: 'id',
+                label: 'title',
+                emitPath: false,
+                checkStrictly:true
+              }"
+            ></el-cascader>
+              <!-- @change="changeProduct(tableData[index], index)" -->
+            <span v-else>{{ tableData[index].title }}</span>
+          </template>
           <template slot="titleSet" slot-scope="{ index }">
             <Input
               type="text"
@@ -326,11 +345,12 @@
               <Input
                 v-if="type == 1"
                 @on-focus="openKey(index, item.e_title)"
+                size="small"
                 clearable
                 :placeholder="item.title"
                 v-model="tableData[index][item.e_title]"
               />
-              <span v-else>{{ tableData[index][item.e_title]}}</span>
+              <span v-else>{{ tableData[index][item.e_title] }}</span>
             </div>
           </div>
           <!-- <div slot="formula_H"
@@ -407,30 +427,38 @@ export default {
           title: "楼栋",
           key: "house",
           align: "center",
-          width: "80",
+          width: "100",
           slot: "houseSet",
         },
         {
           title: "楼单元",
           key: "unit",
           align: "center",
-          width: "80",
+          width: "100",
           slot: "unitSet",
         },
         {
           title: "楼层",
           key: "layer",
           align: "center",
-          width: "80",
+          width: "100",
           slot: "layerSet",
         },
         {
           title: "房间号",
           key: "number",
           align: "center",
-          width: "80",
+          width: "100",
           slot: "numberSet",
         },
+
+        {
+          title: "产品分类",
+          key: "title",
+          align: "center",
+          minWidth: 200,
+          slot: "type_titleSet",
+        },
         {
           title: "产品",
           key: "title",
@@ -480,15 +508,16 @@ export default {
           minWidth: 120,
           slot: "modelSet",
         },
-        this.$route.query.type==1?
-        {
-          title: "操作",
-          key: "set",
-          align: "center",
-          minWidth: 120,
-          fixed: "right",
-          slot: "set",
-        }:{width:1},
+        this.$route.query.type == 1
+          ? {
+              title: "操作",
+              key: "set",
+              align: "center",
+              minWidth: 120,
+              fixed: "right",
+              slot: "set",
+            }
+          : { width: 1 },
       ],
       tableData: [],
       type: this.$route.query.type,
@@ -499,6 +528,7 @@ export default {
       tempAddCol: [],
       measureList: [],
       showKey: false,
+      cascader_list: [],
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -515,6 +545,10 @@ export default {
       this.order_area_id,
       this.order_area_product_id
     );
+    // 获取产品分类
+    this.axios.get("/api/basics_product_index").then((res) => {
+      this.cascader_list = res.data.data;
+    });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {},
@@ -568,6 +602,7 @@ export default {
         url: [],
         url_number: "",
         model: "",
+        type_id:this.formData.type_id,
         ...this.tempAddCol,
       });
       this.tableData.forEach((el, index) => {
@@ -593,6 +628,9 @@ export default {
             tempM.forEach((item) => {
               el[item.substring(0, 1)] = item.substring(1);
             });
+            if (!el.type_id) {
+              el.type_id = this.formData.type_id
+            }
           });
           let tempArr = [];
           this.measureList = res.data.measures;
@@ -602,7 +640,7 @@ export default {
               title: el.title,
               key: el.e_title,
               align: "center",
-              width: "100",
+              width: "150",
               slot: `formula_${el.e_title}`,
             });
           });

+ 6 - 2
src/views/BidSystem/DeepeningOrder/info.vue

@@ -378,7 +378,7 @@
         </div>
         <Table :columns="supTableColumns" :data="supTableData" border>
           <template slot="combine" slot-scope="{ row }">
-            {{row.order_no}}
+            {{ row.order_no }}
             <!-- <Select v-model="row.order_no" size="small">
               <Option
                 v-for="item in combineList"
@@ -1388,7 +1388,11 @@ export default {
     getListData() {
       this.axios
         .get("/api/order_area_detail_list", {
-          params: { order_no: this.$route.query.order_no, ...this.searchData },
+          params: {
+            order_no: this.$route.query.order_no,
+            ...this.searchData,
+            type: 2,
+          },
         })
         .then((res) => {
           this.listTableData = res.data.data;

+ 11 - 13
src/views/BidSystem/DeepeningOrder/list.vue

@@ -71,9 +71,9 @@
             >编辑</a
           >
           <a style="margin: 0 5px" @click="handleSet(row, index, 3)">详情</a>
-          <a
+          <!-- <a
             style="margin: 0 5px"
-            :disabled="row.sub_status != 1"
+            :disabled="row.sub_status == 1"
             @click="handleSet(row, index, 4)"
             >变更</a
           >
@@ -81,7 +81,7 @@
             style="margin: 0 5px; color: orange"
             @click="handleSet(row, index, 5)"
             >变更记录</a
-          >
+          > -->
           <a style="margin: 0 5px" @click="handleSet(row, index, 6)"
             >数据对比</a
           >
@@ -219,19 +219,17 @@ export default {
         {
           title: "深化状态",
           align: "center",
-          key: "state",
+          key: "sub_status",
           minWidth: 100,
           render: (h, params) =>
             h(
               "span",
               {},
-              params.row.state == 1
+              params.row.sub_status == 0
                 ? "未深化"
-                : params.row.state == 2
+                : params.row.sub_status == 1
                 ? "深化中"
-                : params.row.state == 3
-                ? "深化完成"
-                : ""
+                : "深化完成"
             ),
         },
         {
@@ -460,10 +458,10 @@ export default {
           serverName: "state",
           value: "",
           option: [
-            { label: "全部", value: 0 },
-            { label: "未深化", value: 1 },
-            { label: "深化中", value: 2 },
-            { label: "深化完成", value: 3 },
+            { label: "全部", value: 99 },
+            { label: "未深化", value: 0 },
+            { label: "深化中", value: 1 },
+            { label: "深化完成", value: 2 },
           ],
         },
         {

+ 7 - 7
src/views/BidSystem/ProductDeOrder/deorderdetail.vue

@@ -74,7 +74,7 @@
           "
         >
           <Dropdown>
-            <a :disabled="type == 3">选择产品分类</a>
+            <a :disabled="type == 2">选择产品分类</a>
             <DropdownMenu slot="list">
               <Downtree
                 @childByValue="handleClick"
@@ -224,7 +224,7 @@
               placeholder="请输入工艺价格"
             />
           </FormItem>
-          <FormItem label=":">
+          <FormItem label=":">
             <Input
               type="text"
               size="small"
@@ -232,7 +232,7 @@
               :disabled="type == 2"
               v-model="partsItem.long"
               style="width: 150px"
-              placeholder="请输入"
+              placeholder="请输入"
             />
           </FormItem>
           <FormItem label="宽:">
@@ -286,7 +286,7 @@
             <!-- v-show="_item.display" -->
               <!-- v-show="_item.list && _item.list.length > 0" -->
             <span
-              :class="['box-us', _item.show ? 'box-us-foc' : '']"
+              :class="['box-us']"
               @click="setBoxChange(item, _item)"
               >{{ _item.type_title }}</span
             >
@@ -399,7 +399,7 @@
               <Input
                 @on-focus="openKey(partsIndex, index, 'long', partsItem)"
                 :disabled="!partsItem.isAddPart || type == 2"
-                placeholder=""
+                placeholder=""
                 v-model="partsItem.partsWoodTableData[index].long"
               />
             </template>
@@ -928,7 +928,7 @@ export default {
         },
         { title: "单位", key: "company", align: "center", minWidth: 80 },
         {
-          title: "",
+          title: "",
           key: "long",
           align: "center",
           minWidth: 120,
@@ -1500,7 +1500,7 @@ export default {
                     url: "/api/parts_index",
                     params: {
                       bp_id: element.parts_type,
-                    },
+                    }, 
                   })
                     .then((r) => {
                       element.partsNameList = r.data.data;

+ 340 - 139
src/views/BidSystem/ProductDeOrder/detail.vue

@@ -2,50 +2,160 @@
   <div class="BidSystemProductDeOrderEdit">
     <Toptitle title="拆单页">
       <slot name="titleButton">
-        <Button @click="goback()"
-                type="primary"
-                ghost
-                style="margin-right:10px;">取消</Button>
-        <Button @click="postData()"
-                type="primary"
-                ghost
-                style="margin-right:10px;">保存</Button>
+        <Button
+          @click="showSupModal = true"
+          type="primary"
+          style="margin-right:10px;"
+          >项目辅料</Button
+        >
+        <Button
+          @click="goback()"
+          type="primary"
+          ghost
+          style="margin-right:10px;"
+          >返回</Button
+        >
+        <!-- <Button
+          @click="postData()"
+          type="primary"
+          ghost
+          style="margin-right:10px;"
+          >保存</Button
+        > -->
       </slot>
     </Toptitle>
+    <div class="top_search_info">
+      <Form inline :label-width="100">
+        <FormItem label="产品名称:">
+          <Input
+            type="text"
+            size="small"
+            v-model="searchData.title"
+            placeholder="请输入产品名称"
+          />
+        </FormItem>
+        <FormItem label="图号:">
+          <Input
+            type="text"
+            size="small"
+            v-model="searchData.url_number"
+            style="width: 150px"
+            placeholder="请输入图号"
+          />
+        </FormItem>
+        <FormItem label="拆单状态:">
+          <Select
+            v-model="searchData.state"
+            size="small"
+            clearable
+            filterable
+            style="width: 150px"
+          >
+            <Option label="未完成" :value="1"> </Option>
+            <Option label="拆单中" :value="2"> </Option>
+            <Option label="已完成" :value="3"> </Option>
+          </Select>
+        </FormItem>
+        <FormItem>
+          <Button
+            size="small"
+            type="primary"
+            @click="
+              initData(
+                formData.order_no,
+                formData.orders_area_product_detail_id
+              )
+            "
+            >搜索</Button
+          >
+        </FormItem>
+      </Form>
+    </div>
     <div class="top_search">
-      <div><span>订单号:</span>{{formData.order_no}}</div>
-      <div><span>小区名称:</span>{{formData.residential_name}}</div>
-      <div><span>客户姓名:</span>{{formData.client_name}}</div>
-      <div><span>紧急程度:</span><span v-for="_item in warningList"
-              :key="_item.id"
-              v-show="_item.id==formData.warning_state">{{_item.title}}</span></div>
-      <div><span>收款:</span>{{formData.pay_state==1?'已收款':'未收款'}}</div>
-      <div><span>详细地址:</span>{{formData.address}}</div>
-      <div><span>手机号:</span>{{formData.mobile}}</div>
-      <div><span>开始日期:</span>{{func.replaceDate(formData.start_time)}}</div>
-      <div><span>交付日期:</span>{{func.replaceDate(formData.end_time)}}</div>
-      <div><span>业务员:</span> <span v-for="item in salesmanList"
-              :key="item.id"
-              v-show="formData.salesman==item.id">{{formData.salesman}}</span>
+      <div><span>订单号:</span>{{ formData.order_no }}</div>
+      <div><span>小区名称:</span>{{ formData.residential_name }}</div>
+      <div><span>客户姓名:</span>{{ formData.client_name }}</div>
+      <div>
+        <span>紧急程度:</span
+        ><span
+          v-for="_item in warningList"
+          :key="_item.id"
+          v-show="_item.id == formData.warning_state"
+          >{{ _item.title }}</span
+        >
+      </div>
+      <div>
+        <span>收款:</span>{{ formData.pay_state == 1 ? "已收款" : "未收款" }}
+      </div>
+      <div><span>详细地址:</span>{{ formData.address }}</div>
+      <div><span>手机号:</span>{{ formData.mobile }}</div>
+      <div>
+        <span>开始日期:</span>{{ func.replaceDate(formData.start_time) }}
+      </div>
+      <div><span>交付日期:</span>{{ func.replaceDate(formData.end_time) }}</div>
+      <div>
+        <span>业务员:</span>
+        <span
+          v-for="item in salesmanList"
+          :key="item.id"
+          v-show="formData.salesman == item.id"
+          >{{ formData.salesman }}</span
+        >
       </div>
       <!-- <div><span>订单类型:</span>{{formData.renovation_type==1?"工装":"家装"}}</div> -->
-      <div><span>备注:</span>{{formData.remark}}</div>
+      <div><span>备注:</span>{{ formData.remark }}</div>
     </div>
     <div class="addArea">
       <div class="addAreaTable">
-        <Table :columns="tableColumns"
-               :data="formData.detail"
-               border>
-          <template slot="set"
-                    slot-scope="{row,index}">
-            <a style="margin:0 5px"
-               @click="handleSet(row,index,1)">拆单</a>
-            <a style="margin:0 5px"
-               @click="handleSet(row,index,2)">详情</a>
+        <Table :columns="tableColumns" :data="formData.detail" border>
+          <template slot="set" slot-scope="{ row, index }">
+            <a
+              :disabled="row.product_id != 0"
+              style="margin:0 5px"
+              @click="handleSet(row, index, 1)"
+              >拆单</a
+            >
+            <a style="margin:0 5px" @click="handleSet(row, index, 2)">详情</a>
           </template>
         </Table>
       </div>
     </div>
+    <!-- 项目辅料弹窗 -->
+    <Modal title="项目辅料" v-model="showSupModal" :width="400">
+      <div>
+        <div class="supModalBtn">
+          <!-- <Button @click="handleAddSup" type="primary">新增</Button> -->
+        </div>
+        <Table :columns="supTableColumns" :data="supTableData" border>
+          <template slot="combine" slot-scope="{ index }">
+            <Select
+              v-model="supTableData[index].id"
+              @on-change="handlechange"
+              size="small"
+            >
+              <Option
+                v-for="item in combineList"
+                :value="item.id"
+                :key="item.id"
+                :label="item.title"
+              ></Option>
+            </Select>
+          </template>
+          <template slot="supSet" slot-scope="{ row, index }">
+            <!-- <a
+              style="margin: 0 5px; color: red"
+              v-show="$route.query.type != 3"
+              @click="handleSupSet(row, index)"
+              >删除</a
+            > -->
+          </template>
+        </Table>
+      </div>
+      <div class="modal-footer" slot="footer">
+        <Button @click="showSupModal = false">取消</Button>
+        <Button type="primary" @click="showSupModal = false">确认</Button>
+      </div>
+    </Modal>
   </div>
 </template>
 
@@ -54,38 +164,36 @@
 // 例如:import 《组件名称》 from '《组件路径》';
 
 export default {
-  name: 'BidSystemProductDeOrderEdit',
-  components: {
-
-  },
+  name: "BidSystemProductDeOrderEdit",
+  components: {},
   props: {},
   // import引入的组件需要注入到对象中才能使用
-  data () {
+  data() {
     // 这里存放数据
     return {
       showSupModal: false,
       showPDTModal: false,
       formData: {
-        order_no: '',
-        orders_area_product_detail_id: '',
-        residential_name: '',
-        client_name: '',
-        address: '',
-        mobile: '',
-        pay_state: '',
-        warning_state: '',
-        salesman: '',
-        remark: '',
+        order_no: "",
+        orders_area_product_detail_id: "",
+        residential_name: "",
+        client_name: "",
+        address: "",
+        mobile: "",
+        pay_state: "",
+        warning_state: "",
+        salesman: "",
+        remark: "",
         //区域列表
         area: [
           {
-            num: '',
-            title: '',
-            unit: '',
-            quantity: '',
-            house_type: '',
-            remark: '',
-            order_no: '',
+            num: "",
+            title: "",
+            unit: "",
+            quantity: "",
+            house_type: "",
+            remark: "",
+            order_no: "",
             product: [
               // {
               //   title:'',
@@ -96,140 +204,228 @@ export default {
               //   url_number:'',
               //   remark:''
               // }
-            ]
-          }
+            ],
+          },
         ],
       },
       product: [{}],
+      searchData: {},
       tableColumns: [
-        { title: '序号', key: 'id', align: 'center', minWidth: 80 },
-        { title: '产品名称', key: 'title', align: 'center', minWidth: 120 },
-        { title: '计量单位', key: 'unit', align: 'center', minWidth: 100 },
-        { title: '图号', key: 'url_number', align: 'center', minWidth: 80 },
-        { title: '数量', key: 'num', align: 'center', minWidth: 80 },
-        { title: '价格', key: 'price', align: 'center', minWidth: 80 },
-        { title: '规格', key: 'measure', align: 'center', minWidth: 140 },
-        { title: '工艺属性', key: 'process_property', align: 'center', minWidth: 140, tooltip: true },
+        { title: "序号", type: "index", align: "center", minWidth: 80 },
+        { title: "产品名称", key: "title", align: "center", minWidth: 120 },
+        { title: "计量单位", key: "unit", align: "center", minWidth: 100 },
+        { title: "图号", key: "url_number", align: "center", minWidth: 80 },
+        { title: "数量", key: "num", align: "center", minWidth: 80 },
+        { title: "规格", key: "measure", align: "center", minWidth: 140 },
+        {
+          title: "工艺属性",
+          key: "process_property",
+          align: "center",
+          minWidth: 140,
+          tooltip: true,
+        },
         {
-          title: '图纸', key: 'url', align: 'center', minWidth: 80,
+          title: "图纸",
+          key: "url",
+          align: "center",
+          minWidth: 80,
           render: (h, params) => {
-            const { row } = params
-            return h('div', row.url.map((item, index) => {
-              return h('img', {
-                attrs: {
-                  src: this.$store.state.ip + item,
-                  style: 'max-width:50px;max-height:50px;position:relative;top:3px;'
-                },
-                on: {
-                  click: (e) => {
-                    // this.axios('/api/orders_img', { params: { id: row.id, type: 1 } }).then(res => {
-                    // if (res.code == 200) {
-                    // row.imgs = res.data
-                    let list = []
-                    row.url.forEach(el => {
-                      list.push({ 'img_url': el })
-                    });
-                    this.$previewImg({
-                      list,
-                      baseUrl: this.$store.state.ip,
-                      baseImgField: 'img_url',
-                      baseTitleField: ''
-                    })
-                    // }
-                    // })
-                  }
-                }
+            const { row } = params;
+            return h(
+              "div",
+              row.url.map((item, index) => {
+                return h("img", {
+                  attrs: {
+                    src: this.$store.state.ip + item,
+                    style:
+                      "max-width:50px;max-height:50px;position:relative;top:3px;",
+                  },
+                  on: {
+                    click: (e) => {
+                      // this.axios('/api/orders_img', { params: { id: row.id, type: 1 } }).then(res => {
+                      // if (res.code == 200) {
+                      // row.imgs = res.data
+                      let list = [];
+                      row.url.forEach((el) => {
+                        list.push({ img_url: el });
+                      });
+                      this.$previewImg({
+                        list,
+                        baseUrl: this.$store.state.ip,
+                        baseImgField: "img_url",
+                        baseTitleField: "",
+                      });
+                      // }
+                      // })
+                    },
+                  },
+                });
               })
-            }))
-          }
+            );
+          },
+        },
+        {
+          title: "左右式",
+          key: "left_right_mode",
+          align: "center",
+          minWidth: 80,
+          render: (h, params) => {
+            const { row } = params;
+            return h("span", {}, row.left_right_mode == 1 ? "左式" : "右式");
+          },
+        },
+        {
+          title: "拆单状态",
+          key: "product_id",
+          align: "center",
+          minWidth: 80,
+          render: (h, params) => {
+            const { row } = params;
+            return h("span", {}, row.product_id == 0 ? "未完成" : "已完成");
+          },
+        },
+        {
+          title: "操作",
+          key: "name",
+          align: "center",
+          width: "120",
+          slot: "set",
+          minWidth: 80,
+          fixed: "right",
         },
-        { title: '备注', key: 'remark', align: 'center', minWidth: 80 },
-        { title: '操作', key: 'name', align: 'center', width: '120', slot: 'set', minWidth: 80, fixed: 'right' },
       ],
       //产品分类列表
       PDTTypeList: [],
       //业务员列表
       salesmanList: [],
       warningList: [],
-    }
+      supTableColumns: [
+        { title: "序号", type: "index", align: "center", minWidth: 100 },
+        {
+          title: "辅料名称",
+          key: "title",
+          align: "center",
+          slot: "combine",
+          minWidth: 150,
+        },
+        { title: "操作", align: "center", slot: "supSet", minWidth: 100 },
+      ],
+      supTableData: [], //项目辅料→辅料名称列表
+      combineList: [], //项目辅料列表
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
+  created() {
+    // 获取项目辅料列表
+    this.axios("/api/material_combination").then((res) => {
+      this.combineList = res.data.data;
+    });
     // 2编辑 3详情 4变更 5变更记录
-    this.$route.query.type == 3 ? this.isChecked = true : ''
-    this.$route.query.order_no ? this.formData.order_no = this.$route.query.order_no : ''
-    this.$route.query.orders_area_product_detail_id ? this.formData.orders_area_product_detail_id = this.$route.query.orders_area_product_detail_id : ''
+    this.$route.query.type == 3 ? (this.isChecked = true) : "";
+    this.$route.query.order_no
+      ? (this.formData.order_no = this.$route.query.order_no)
+      : "";
+    this.$route.query.orders_area_product_detail_id
+      ? (this.formData.orders_area_product_detail_id = this.$route.query.orders_area_product_detail_id)
+      : "";
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
+    // 获取项目辅料
+    // this.axios
+    //   .get("/api/todo", { params: { order_no: this.formData.order_no } })
+    //   .then((res) => {
+    //     this.supTableData = res.data
+    //   });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.axios('/api/user').then(res => this.salesmanList = res.data.data)
-    this.axios('/api/parts_product_list').then(res => { this.PDTTypeList = res.data })
-    this.initData(this.formData.order_no, this.formData.orders_area_product_detail_id)
+  mounted() {
+    this.axios("/api/user").then((res) => (this.salesmanList = res.data.data));
+    this.axios("/api/parts_product_list").then((res) => {
+      this.PDTTypeList = res.data;
+    });
+    this.initData(
+      this.formData.order_no,
+      this.formData.orders_area_product_detail_id
+    );
   },
   methods: {
-    initData (order_no, orders_area_product_detail_id) {
+    //项目辅料新增
+    handleAddSup() {
+      this.supTableData.push({ id: "" });
+    },
+    //项目辅料删除
+    handleSupSet(row, index) {
+      this.supTableData.splice(index, 1);
+    },
+    handlechange(val) {
+      console.log("val :>> ", val);
+    },
+    initData(order_no, orders_area_product_detail_id) {
       this.axios({
-        method: 'get',
-        url: '/api/order_area_explode',
+        method: "get",
+        url: "/api/order_area_explode",
         params: {
           order_no,
-        }
+          ...this.searchData,
+        },
       }).then((res) => {
-        this.formData = res.data
-        this.formData.list.forEach(element => {
-          element.product.forEach((el, index) => {
-            el.index = index + 1
-          });
-        });
-      }).catch((err) => { });
+        this.formData = res.data;
+        // this.formData.list.forEach((element) => {
+        //   element.product.forEach((el, index) => {
+        //     el.index = index + 1;
+        //   });
+        // });
+      });
     },
     // 1拆单  2详情
-    handleSet (row, index, type) {
+    handleSet(row, index, type) {
       this.$router.push({
-        path: '/cms/BidSystem/ProductDeOrder/deorderdetail',
+        path: "/cms/BidSystem/ProductDeOrder/deorderdetail",
         query: {
           type,
           order_no: this.$route.query.order_no,
-          orders_area_product_detail_id: row.id
-        }
-      })
+          orders_area_product_detail_id: row.id,
+        },
+      });
     },
-    postData () {
+    postData() {
       this.axios({
-        method: 'post',
-        url: '/api/order_area_add',
+        method: "post",
+        url: "/api/order_area_add",
         data: {
-          ...this.formData
-        }
+          ...this.formData,
+        },
       }).then((res) => {
-        this.$Message.success(res.msg)
-      }).catch((err) => { });
+        this.$Message.success(res.msg);
+      });
+    },
+    goback() {
+      this.$router.go(-1);
     },
-    goback () { this.$router.go(-1) }
   },
   // 监听属性 类似于data概念
   computed: {},
   // 监控data中的数据变化
   watch: {},
-  beforeCreate () { }, // 生命周期 - 创建之前
-  beforeMount () { }, // 生命周期 - 挂载之前
-  beforeUpdate () { }, // 生命周期 - 更新之前
-  updated () { }, // 生命周期 - 更新之后
-  beforeDestroy () { }, // 生命周期 - 销毁之前
-  destroyed () { }, // 生命周期 - 销毁完成
-  activated () { }, // 如果页面有keep-alive缓存功能,这个函数会触发
-}
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
 </script>
 
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .BidSystemProductDeOrderEdit {
   overflow: hidden;
   overflow-y: auto;
   .top_search {
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     flex-wrap: wrap;
     width: 100%;
@@ -260,4 +456,9 @@ export default {
     }
   }
 }
+.supModalBtn {
+  display: flex;
+  justify-content: flex-end;
+  margin-bottom: 10px;
+}
 </style>

+ 1 - 19
src/views/OrderMannage/BusinessOrderlist/edit.vue

@@ -2240,24 +2240,6 @@
         :data="post_formSetTableData"
       >
       </Table>
-      <!-- <CheckboxGroup v-model="forms_list">
-        <Checkbox label="order_no">订单编号</Checkbox>
-        <Checkbox label="residential_name">项目名称</Checkbox>
-        <Checkbox label="warning_state">紧急程度</Checkbox>
-        <Checkbox label="front_money">项目定金</Checkbox>
-        <Checkbox label="start_time">开始日期</Checkbox>
-        <Checkbox label="client_name">客户名称</Checkbox>
-        <Checkbox label="custom_detail_name">负责人</Checkbox>
-        <Checkbox label="custom_detail_mobile">手机号</Checkbox>
-        <Checkbox label="custom_detail_id">详细地址</Checkbox>
-        <Checkbox label="service_id">专营业务员</Checkbox>
-        <Checkbox label="end_time">交付日期</Checkbox>
-        <Checkbox label="predict_price">产品总价</Checkbox>
-        <Checkbox label="order_price">订单金额</Checkbox>
-        <Checkbox label="box_id">包装</Checkbox>
-        <Checkbox label="remark">订单备注</Checkbox>
-        <Checkbox label="pay_state">收款</Checkbox>
-      </CheckboxGroup> -->
     </Modal>
   </div>
 </template>
@@ -2693,7 +2675,7 @@ export default {
         .post("/api/update/get_table", { id: "businessorderlist_detail" })
         .then((res) => {
           if (
-            res.data.length > 0 &&
+            res.data&&
             res.data.table.formSet &&
             res.data.table.formSet.length > 0
           ) {