Andy hace 3 años
padre
commit
7bbb4b83f5

+ 353 - 246
src/views/BasicSettings/CustomerFiles/detail.vue

@@ -1,121 +1,152 @@
 <template>
   <div>
-    <Toptitle :title="type==1?'新增客户':type==2?'编辑客户':'查看客户'">
+    <Toptitle
+      :title="type == 1 ? '新增客户' : type == 2 ? '编辑客户' : '查看客户'"
+    >
       <slot name="titleButton">
-        <Button @click="goBack"
-                type="primary"
-                ghost
-                style="margin-right:10px;">返回</Button>
-        <Button @click="postData"
-                :disabled="isChecked"
-                type="primary"
-                style="margin-right:10px;">保存</Button>
+        <Button @click="goBack" type="primary" ghost style="margin-right:10px;"
+          >返回</Button
+        >
+        <Button
+          @click="postData"
+          :disabled="isChecked"
+          type="primary"
+          style="margin-right:10px;"
+          >保存</Button
+        >
       </slot>
     </Toptitle>
     <div class="top_search">
-      <Form :model="formData"
-            :label-width="100"
-            class="top_search_form">
+      <Form :model="formData" :label-width="100" class="top_search_form">
         <FormItem label="客户编码:">
-          <Input type="text"
-                 size="small"
-                 v-model="formData.code"
-                 :disabled="isChecked"
-                 placeholder="请输入客户编码"
-                 style="width: 200px" />
+          <Input
+            type="text"
+            size="small"
+            v-model="formData.code"
+            :disabled="isChecked"
+            placeholder="请输入客户编码"
+            style="width: 200px"
+          />
         </FormItem>
         <FormItem label="客户分类:">
-          <el-cascader v-model="formData.basics_custom_id"
-                       size="small"
-                       :show-all-levels="false"
-                       :disabled="isChecked"
-                       :options="cascader_list"
-                       :props="{ expandTrigger: 'hover',children:'sub',value:'id',label:'title',checkStrictly: true,emitPath:false }"
-                       @change="handleCascaderChange"></el-cascader>
+          <el-cascader
+            v-model="formData.basics_custom_id"
+            size="small"
+            :show-all-levels="false"
+            :disabled="isChecked"
+            :options="cascader_list"
+            :props="{
+              expandTrigger: 'hover',
+              children: 'sub',
+              value: 'id',
+              label: 'title',
+              checkStrictly: true,
+              emitPath: false,
+            }"
+            @change="handleCascaderChange"
+          ></el-cascader>
         </FormItem>
         <FormItem label="客户名称:">
-          <Input type="text"
-                 size="small"
-                 v-model="formData.title"
-                 :disabled="isChecked"
-                 placeholder="请输入客户名称"
-                 style="width: 200px" />
+          <Input
+            type="text"
+            size="small"
+            v-model="formData.title"
+            :disabled="isChecked"
+            placeholder="请输入客户名称"
+            style="width: 200px"
+          />
         </FormItem>
         <FormItem label="折扣率(%):">
-          <Input type="text"
-                 size="small"
-                 :disabled="isChecked"
-                 v-model="formData.fax"
-                 placeholder="请输入折扣率"
-                 style="width: 200px">
+          <Input
+            type="text"
+            size="small"
+            :disabled="isChecked"
+            v-model="formData.fax"
+            placeholder="请输入折扣率"
+            style="width: 200px"
+          >
           </Input>
         </FormItem>
         <FormItem label="专营业务员:">
-          <Select v-model="formData.service_id"
-                  filterable
-                  clearable
-                  :disabled="isChecked">
-            <Option v-for="item of userList"
-                    :key="item.id"
-                    :value="item.id"
-                    :label="item.nickname"></Option>
+          <Select
+            v-model="formData.service_id"
+            filterable
+            clearable
+            :disabled="isChecked"
+          >
+            <Option
+              v-for="item of userList"
+              :key="item.id"
+              :value="item.id"
+              :label="item.nickname"
+            ></Option>
           </Select>
         </FormItem>
         <FormItem label="超标方案:">
-          <Select v-model="formData.overdraft_plan_id"
-                  filterable
-                  clearable
-                  :disabled="isChecked">
-            <Option v-for="item of overStandardList"
-                    :key="item.id"
-                    :value="item.id"
-                    :label="item.title"></Option>
+          <Select
+            v-model="formData.overdraft_plan_id"
+            filterable
+            clearable
+            :disabled="isChecked"
+          >
+            <Option
+              v-for="item of overStandardList"
+              :key="item.id"
+              :value="item.id"
+              :label="item.title"
+            ></Option>
           </Select>
         </FormItem>
         <FormItem label="是否启用:">
-          <i-switch v-model="formData.lockState"
-                    :disabled="isChecked" />
+          <i-switch v-model="formData.lockState" :disabled="isChecked" />
         </FormItem>
       </Form>
     </div>
     <div class="addBtn">
-      <Button @click="handleRuleAdd()"
-              :disabled="isChecked"
-              type="primary">新增</Button>
+      <Button @click="handleRuleAdd()" :disabled="isChecked" type="primary"
+        >新增</Button
+      >
     </div>
-    <Table :columns="tableColumns"
-           max-height="600"
-           :data="tableData"
-           border>
-      <template slot="priceSet"
-                slot-scope="{index}">
-        <Input :disabled='type == 3'
-               @on-focus="openKey(index)"
-               clearable
-               placeholder="请输入公式"
-               v-model="tableData[index].formula"></Input>
+    <Table :columns="tableColumns" max-height="600" :data="tableData" border>
+      <template slot="priceSet" slot-scope="{ index }">
+        <Input
+          :disabled="type == 3"
+          @on-focus="openKey(index)"
+          clearable
+          placeholder="请输入公式"
+          v-model="tableData[index].formula"
+        ></Input>
       </template>
-      <template slot="set"
-                slot-scope="{index}">
-        <a style="margin:0 5px"
-           :disabled="isChecked"
-           @click="handleSet(tableData[index],index,4)">删除</a>
-        <a style="margin:0 5px"
-           :disabled="isChecked"
-           @click="handleSet(tableData[index],index,5)">设为默认</a>
+      <template slot="set" slot-scope="{ index }">
+        <a
+          style="margin:0 5px"
+          :disabled="isChecked"
+          @click="handleSet(tableData[index], index, 4)"
+          >删除</a
+        >
+        <a
+          style="margin:0 5px"
+          :disabled="isChecked"
+          @click="handleSet(tableData[index], index, 5)"
+          >设为默认</a
+        >
       </template>
     </Table>
-    <Modal v-model="showModal"
-           title="选择地区"
-           @on-ok="handleModalOk"
-           @on-cancel="showModal = false">
+    <Modal
+      v-model="showModal"
+      title="选择地区"
+      @on-ok="handleModalOk"
+      @on-cancel="showModal = false"
+    >
       <div class="modal_content">
-        <Tree :data="treeData"
-              @on-select-change="handleSelectChange"
-              @on-toggle-expand="handleToggleExpand"
-              children-key='sub'
-              style="width:100%;"
-              class="demo-tree-render"></Tree>
+        <Tree
+          :data="treeData"
+          @on-select-change="handleSelectChange"
+          @on-toggle-expand="handleToggleExpand"
+          children-key="sub"
+          style="width:100%;"
+          class="demo-tree-render"
+        ></Tree>
       </div>
     </Modal>
   </div>
@@ -124,14 +155,14 @@
 <script>
 // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 // 例如:import 《组件名称》 from '《组件路径》';
-import KeyBoard from '../../../components/keyboard/index'
+import KeyBoard from "../../../components/keyboard/index";
 
 export default {
-  name: '',
+  name: "",
   components: { KeyBoard },
   props: {},
   // import引入的组件需要注入到对象中才能使用
-  data () {
+  data() {
     // 这里存放数据
     return {
       type: this.$route.query.type || null,
@@ -143,118 +174,161 @@ export default {
       total: 0,
       page_size: 10,
       formData: {
-        lockState: true
+        lockState: true,
       },
       keyModal: false,
       tableColumns: [
         {
-          title: '地区', key: 'area_title', align: 'center', minWidth: 120,
+          title: "负责人",
+          key: "service_name",
+          align: "center",
+          minWidth: 140,
           render: (h, params) => {
-            const { row, index } = params
-            const currencyRow = this.tableData[index]
-            return currencyRow.area_title ? h('span', {}, currencyRow.area_title) : h('a', {
-              on: {
-                click: () => {
-                  console.log('123 :>> ', 123);
-                  this.handleAreaSet(currencyRow, index)
-                }
-              }
-            }, '选择地区')
-          }
+            const { row, index } = params;
+            const currencyRow = this.tableData[index];
+            return this.type != 3
+              ? h(
+                  "Input",
+                  {
+                    props: {
+                      value: currencyRow.service_name,
+                      placeholder: "请输入负责人",
+                    },
+                    on: {
+                      "on-change": (e) => {
+                        currencyRow.service_name = e.target.value;
+                      },
+                    },
+                  },
+                  currencyRow.service_name
+                )
+              : h("span", {}, currencyRow.service_name);
+          },
         },
         {
-          title: '详细地址', key: 'part_id', align: 'center', minWidth: 200,
+          title: "手机号",
+          key: "mobile",
+          align: "center",
+          minWidth: 140,
           render: (h, params) => {
-            const { row, index } = params
-            const currencyRow = this.tableData[index]
-            return this.type != 3 ? h('Input', {
-              props: {
-                value: currencyRow.address,
-                placeholder: '请输入详细地址'
-              },
-              on: {
-                'on-change': (e) => {
-                  currencyRow.address = e.target.value
-                }
-              }
-            }, currencyRow.address) : h('span', {}, currencyRow.address)
-          }
+            const { row, index } = params;
+            const currencyRow = this.tableData[index];
+            return this.type != 3
+              ? h(
+                  "Input",
+                  {
+                    props: {
+                      value: currencyRow.mobile,
+                      placeholder: "请输入手机号",
+                    },
+                    on: {
+                      "on-change": (e) => {
+                        currencyRow.mobile = e.target.value;
+                      },
+                    },
+                  },
+                  currencyRow.mobile
+                )
+              : h("span", {}, currencyRow.mobile);
+          },
         },
         {
-          title: '负责人', key: 'service_name', align: 'center', minWidth: 140,
+          title: "地区",
+          key: "area_title",
+          align: "center",
+          minWidth: 120,
           render: (h, params) => {
-            const { row, index } = params
-            const currencyRow = this.tableData[index]
-            return this.type != 3 ? h('Input', {
-              props: {
-                value: currencyRow.service_name,
-                placeholder: '请输入负责人'
-              },
-              on: {
-                'on-change': (e) => {
-                  currencyRow.service_name = e.target.value
-                }
-              }
-            }, currencyRow.service_name) : h('span', {}, currencyRow.service_name)
-          }
+            const { row, index } = params;
+            const currencyRow = this.tableData[index];
+            return currencyRow.area_title
+              ? h("span", {}, currencyRow.area_title)
+              : h(
+                  "a",
+                  {
+                    on: {
+                      click: () => {
+                        console.log("123 :>> ", 123);
+                        this.handleAreaSet(currencyRow, index);
+                      },
+                    },
+                  },
+                  "选择地区"
+                );
+          },
         },
         {
-          title: '手机号', key: 'mobile', align: 'center', minWidth: 140,
+          title: "详细地址",
+          key: "part_id",
+          align: "center",
+          minWidth: 200,
           render: (h, params) => {
-            const { row, index } = params
-            const currencyRow = this.tableData[index]
-            return this.type != 3 ? h('Input', {
-              props: {
-                value: currencyRow.mobile,
-                placeholder: '请输入手机号'
-              },
-              on: {
-                'on-change': (e) => {
-                  currencyRow.mobile = e.target.value
-                }
-              }
-            }, currencyRow.mobile) : h('span', {}, currencyRow.mobile)
-          }
+            const { row, index } = params;
+            const currencyRow = this.tableData[index];
+            return this.type != 3
+              ? h(
+                  "Input",
+                  {
+                    props: {
+                      value: currencyRow.address,
+                      placeholder: "请输入详细地址",
+                    },
+                    on: {
+                      "on-change": (e) => {
+                        currencyRow.address = e.target.value;
+                      },
+                    },
+                  },
+                  currencyRow.address
+                )
+              : h("span", {}, currencyRow.address);
+          },
         },
-        { title: '操作', key: '', align: 'center', slot: 'set', width: 200 },
+
+        { title: "操作", key: "", align: "center", slot: "set", width: 200 },
       ],
       treeData: [
         {
-          title: '地区分类',
+          title: "地区分类",
           expand: 1,
           contextmenu: 1,
           id: 0,
-          sub: [
-
-          ],
+          sub: [],
           render: (h, { root, node, data }) => {
-            return h('span', {
-              style: {
-                display: 'inline-block',
-                width: '100%'
-              }
-            }, [
-              h('span', [
-                h('Icon', {
-                  props: {
-                    type: 'ios-folder-outline'
-                  },
-                  style: {
-                    marginRight: '8px'
-                  }
-                }),
-                h('span', data.title)
-              ]),
-              h('span', {
+            return h(
+              "span",
+              {
                 style: {
-                  display: 'inline-block',
-                  float: 'right',
-                  marginRight: '32px'
-                }
-              }, [])
-            ]);
+                  display: "inline-block",
+                  width: "100%",
+                },
+              },
+              [
+                h("span", [
+                  h("Icon", {
+                    props: {
+                      type: "ios-folder-outline",
+                    },
+                    style: {
+                      marginRight: "8px",
+                    },
+                  }),
+                  h("span", data.title),
+                ]),
+                h(
+                  "span",
+                  {
+                    style: {
+                      display: "inline-block",
+                      float: "right",
+                      marginRight: "32px",
+                    },
+                  },
+                  []
+                ),
+              ]
+            );
           },
-        }
+        },
       ],
       tableData: [],
       productTypeList: [],
@@ -265,118 +339,151 @@ export default {
       showModal: false,
       selected: null,
       currencyIndex: null,
-      cascader_list: []
-    }
+      cascader_list: [],
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
-    this.axios.get('/api/basics_product_index').then(res => { this.productTypeList = res.data.data }).catch(err => { console.error(err); })
+  created() {
+    this.axios
+      .get("/api/basics_product_index")
+      .then((res) => {
+        this.productTypeList = res.data.data;
+      })
+      .catch((err) => {
+        console.error(err);
+      });
     // 获取用户列表
-    this.axios({ method: 'get', url: '/api/employee_list', }).then((res) => { this.userList = res.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/employee_list" })
+      .then((res) => {
+        this.userList = res.data;
+      })
+      .catch((err) => {});
     // 获取超标方案
-    this.axios({ method: 'get', url: '/api/overdraft_list', }).then((res) => { this.overStandardList = res.data.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/overdraft_list" })
+      .then((res) => {
+        this.overStandardList = res.data.data;
+      })
+      .catch((err) => {});
     // 获取地区分类列表
     this.axios({
-      method: 'get',
-      url: '/api/basic_area_list',
-    }).then((res) => {
-      this.treeData[0].sub = res.data
-    }).catch((err) => { });
+      method: "get",
+      url: "/api/basic_area_list",
+    })
+      .then((res) => {
+        this.treeData[0].sub = res.data;
+      })
+      .catch((err) => {});
     // 获取客户分类列表
     this.axios({
-      method: 'post',
-      url: '/api/basic_custom_list',
-    }).then((res) => {
-      this.cascader_list = res.data
-    }).catch((err) => { });
+      method: "post",
+      url: "/api/basic_custom_list",
+    })
+      .then((res) => {
+        this.cascader_list = res.data;
+      })
+      .catch((err) => {});
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.init()
+  mounted() {
+    this.init();
   },
   methods: {
-    init () {
-      (this.id) &&
-        this.axios.get('/api/custom_detail', { params: { id: this.id } }).then(res => {
-          this.tableData = res.data.list
-          this.formData = res.data.detail
-          this.formData.lockState = this.formData.lock == 1 ? true : false
-        }).catch(err => {
-          console.error(err);
-        })
+    init() {
+      this.id &&
+        this.axios
+          .get("/api/custom_detail", { params: { id: this.id } })
+          .then((res) => {
+            this.tableData = res.data.list;
+            this.formData = res.data.detail;
+            this.formData.lockState = this.formData.lock == 1 ? true : false;
+          })
+          .catch((err) => {
+            console.error(err);
+          });
+    },
+    goBack() {
+      this.$router.go(-1);
     },
-    goBack () { this.$router.go(-1) },
-    handleSet (row, index, type) {
+    handleSet(row, index, type) {
       switch (type) {
         case 4:
-          this.tableData.splice(index, 1)
+          this.tableData.splice(index, 1);
           break;
         //设为默认  todo
         case 5:
           break;
       }
     },
-    handleAreaSet (row, index) {
-      this.showModal = true
-      this.currencyIndex = index
+    handleAreaSet(row, index) {
+      this.showModal = true;
+      this.currencyIndex = index;
     },
-    postData () {
+    postData() {
       this.axios({
-        method: 'post',
-        url: '/api/custom_edit',
+        method: "post",
+        url: "/api/custom_edit",
         data: {
           ...this.formData,
           lock: this.formData.lockState ? 1 : 0,
-          detail: this.tableData
-        }
+          detail: this.tableData,
+        },
       }).then((res) => {
         if (res.code == 200) {
-          this.$Message.success(res.msg)
-          this.goBack()
+          this.$Message.success(res.msg);
+          this.goBack();
         }
-      })
-    },
-    handleRuleAdd () {
-      const obj = { min: null, max: null, formula: null }
-      this.tableData.push({})
+      });
     },
-    changeProduct (row, index) {
-      this.axios.get('/api/get_part_by_basic_product', { params: { basic_product_id: row.basic_product_id } })
-        .then(res => {
-          this.partsList = res.data
-        }).catch(err => { console.error(err); })
+    handleRuleAdd() {
+      const obj = { min: null, max: null, formula: null };
+      this.tableData.push({});
     },
-    handleToggleExpand (row) {
+    changeProduct(row, index) {
+      this.axios
+        .get("/api/get_part_by_basic_product", {
+          params: { basic_product_id: row.basic_product_id },
+        })
+        .then((res) => {
+          this.partsList = res.data;
+        })
+        .catch((err) => {
+          console.error(err);
+        });
     },
-    handleModalOk () {
-      this.tableData[this.currencyIndex].area_title = this.selected.title || ''
-      this.tableData[this.currencyIndex].basic_area_id = this.selected.id || ''
-      this.tableData.splice(this.currencyIndex, 1, this.tableData[this.currencyIndex])
+    handleToggleExpand(row) {},
+    handleModalOk() {
+      this.tableData[this.currencyIndex].area_title = this.selected.title || "";
+      this.tableData[this.currencyIndex].basic_area_id = this.selected.id || "";
+      this.tableData.splice(
+        this.currencyIndex,
+        1,
+        this.tableData[this.currencyIndex]
+      );
     },
-    handleSelectChange (arr, row) {
+    handleSelectChange(arr, row) {
       if (row.sub.length > 0) {
-        this.selected = []
+        this.selected = [];
       } else {
-        this.selected = row
+        this.selected = row;
       }
     },
-    handleCascaderChange (value) { },
+    handleCascaderChange(value) {},
   },
   // 监听属性 类似于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>
 .top_search {
   padding: 20px 0;
   width: 100%;

+ 311 - 219
src/views/BasicSettings/CustomerFiles/list.vue

@@ -5,77 +5,95 @@
         <!-- <Button @click="handleSet()"
                 type="primary"
                 style="margin-right:10px;">新增分类</Button> -->
-        <Upload style="display:inline"
-                name='your_file'
-                :show-upload-list='false'
-                :headers='headers'
-                :on-error='uploadError'
-                :on-success='uploadSuccess'
-                :action="$store.state.ip+'/api/material_import'">
-          <Button type="success"
-                  ghost
-                  icon='md-exit'
-                  style="margin-right:10px;">导入</Button>
+
+        <Upload
+          style="display:inline"
+          name="your_file"
+          :show-upload-list="false"
+          :headers="headers"
+          :on-error="uploadError"
+          :on-success="uploadSuccess"
+          :action="$store.state.ip + '/api/custom_import'"
+        >
+          <Button type="success" ghost icon="md-exit" style="margin-right:10px;"
+            >导入</Button
+          >
         </Upload>
-        <Button type="primary"
-                @click="handleGoPage(1,'')"
-                style="margin-right:10px;">新增</Button>
+        <Button
+          type="primary"
+          @click="handleGoPage(1, '')"
+          style="margin-right:10px;"
+          >新增</Button
+        >
       </slot>
     </Toptitle>
     <div class="content">
       <div class="content_left">
-        <Tree :data="treeData"
-              select-node
-              children-key='sub'
-              style="width:100%;"
-              @on-select-change="handleTreeSelect"
-              class="demo-tree-render"></Tree>
+        <Tree
+          :data="treeData"
+          select-node
+          children-key="sub"
+          style="width:100%;"
+          @on-select-change="handleTreeSelect"
+          class="demo-tree-render"
+        ></Tree>
       </div>
       <div class="content_right">
         <div class="content_right_topform">
-          <Form :label-width="90"
-                :model="searchData">
+          <Form :label-width="90" :model="searchData">
             <FormItem label="客户编码:">
-              <Input type="text"
-                     size="small"
-                     clearable
-                     v-model="searchData.code"
-                     style="width: 150px"
-                     placeholder="客户编码" />
+              <Input
+                type="text"
+                size="small"
+                clearable
+                v-model="searchData.code"
+                style="width: 150px"
+                placeholder="客户编码"
+              />
             </FormItem>
             <FormItem label="客户名称:">
-              <Input type="text"
-                     size="small"
-                     clearable
-                     v-model="searchData.title"
-                     style="width: 150px"
-                     placeholder="客户名称" />
+              <Input
+                type="text"
+                size="small"
+                clearable
+                v-model="searchData.title"
+                style="width: 150px"
+                placeholder="客户名称"
+              />
             </FormItem>
             <FormItem label="专营业务员:">
-              <Select v-model="searchData.service_id"
-                      size="small"
-                      clearable
-                      filterable
-                      label-in-value
-                      style="width: 150px">
-                <Option v-for="(sitem) in userList"
-                        :key="sitem.id"
-                        :label="sitem.nickname"
-                        :value="sitem.id">
+              <Select
+                v-model="searchData.service_id"
+                size="small"
+                clearable
+                filterable
+                label-in-value
+                style="width: 150px"
+              >
+                <Option
+                  v-for="sitem in userList"
+                  :key="sitem.id"
+                  :label="sitem.nickname"
+                  :value="sitem.id"
+                >
                 </Option>
               </Select>
             </FormItem>
             <FormItem label="超标方案:">
-              <Select v-model="searchData.service_id"
-                      size="small"
-                      clearable
-                      filterable
-                      label-in-value
-                      style="width: 150px">
-                <Option v-for="(sitem) in overStandardList"
-                        :key="sitem.id"
-                        :label="sitem.title"
-                        :value="sitem.id">
+              <Select
+                v-model="searchData.plan_id"
+                size="small"
+                clearable
+                filterable
+                label-in-value
+                style="width: 150px"
+              >
+                <Option
+                  v-for="sitem in overStandardList"
+                  :key="sitem.id"
+                  :label="sitem.title"
+                  :value="sitem.id"
+                >
                 </Option>
               </Select>
             </FormItem>
@@ -91,58 +109,70 @@
               </Select>
             </FormItem> -->
             <FormItem label="创建时间:">
-              <DatePicker type="date"
-                          clearable
-                          size="small"
-                          style="width: 150px"
-                          placeholder="年/月/日"
-                          v-model="searchData.date[0]"></DatePicker>
+              <DatePicker
+                type="date"
+                clearable
+                size="small"
+                style="width: 150px"
+                placeholder="年/月/日"
+                v-model="searchData.date[0]"
+              ></DatePicker>
             </FormItem>
             <FormItem label="~">
-              <DatePicker type="date"
-                          size="small"
-                          clearable
-                          style="width: 150px"
-                          placeholder="年/月/日"
-                          v-model="searchData.date[1]"></DatePicker>
+              <DatePicker
+                type="date"
+                size="small"
+                clearable
+                style="width: 150px"
+                placeholder="年/月/日"
+                v-model="searchData.date[1]"
+              ></DatePicker>
             </FormItem>
             <FormItem>
-              <Button type="primary"
-                      size="small"
-                      @click="initData(searchData)"
-                      style="margin-right:10px;">搜索</Button>
+              <Button
+                type="primary"
+                size="small"
+                @click="initData(searchData)"
+                style="margin-right:10px;"
+                >搜索</Button
+              >
             </FormItem>
           </Form>
-          <div class="content_right_topfrom_btn">
-          </div>
+          <div class="content_right_topfrom_btn"></div>
         </div>
         <div class="content_right_content">
           <div class="content_right_content_table">
-            <Table :columns="tableColumns"
-                   border
-                   :max-height="400"
-                   :loading="tableLoading"
-                   :data="tableData">
-              <template slot="setSlot"
-                        slot-scope="{row,index}">
-                <a style="margin:0 5px"
-                   @click="handleSet(2,row,index)">编辑</a>
-                <a style="margin:0 5px"
-                   @click="handleSet(3,row,index)">查看</a>
-                <a style="margin:0 5px"
-                   @click="handleSet(4,row,index)">删除</a>
+            <Table
+              :columns="tableColumns"
+              border
+              :max-height="400"
+              :loading="tableLoading"
+              :data="tableData"
+            >
+              <template slot="setSlot" slot-scope="{ row, index }">
+                <a style="margin:0 5px" @click="handleSet(2, row, index)"
+                  >编辑</a
+                >
+                <a style="margin:0 5px" @click="handleSet(3, row, index)"
+                  >查看</a
+                >
+                <a style="margin:0 5px" @click="handleSet(4, row, index)"
+                  >删除</a
+                >
               </template>
             </Table>
             <div class="content_right_content_page">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeSize'
-                    @on-change='changePage'
-                    :current='pageIndex'
-                    show-total
-                    show-elevator
-                    :total="total"
-                    show-sizer
-                    :page-size='pageSize' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeSize"
+                @on-change="changePage"
+                :current="pageIndex"
+                show-total
+                show-elevator
+                :total="total"
+                show-sizer
+                :page-size="pageSize"
+              />
             </div>
           </div>
         </div>
@@ -156,53 +186,80 @@
 // 例如:import 《组件名称》 from '《组件路径》';
 
 export default {
-  name: 'SippliersList',
-  components: {
-
-  },
+  name: "SippliersList",
+  components: {},
   props: {},
   // import引入的组件需要注入到对象中才能使用
-  data () {
+  data() {
     // 这里存放数据
     return {
-      type: '',
+      type: "",
       treeData: [
         {
-          title: '客户分类',
+          title: "客户分类",
           expand: true,
           sub: [],
           render: (h, { root, node, data }) => {
-            return h('span', {
-              style: {
-                display: 'inline-block',
-                width: '100%'
-              }
-            }, [
-              h('span', [
-                h('Icon', {
-                  props: {
-                    type: 'ios-folder-outline'
-                  },
-                  style: {
-                    marginRight: '8px'
-                  }
-                }),
-                h('span', data.title)
-              ])]);
+            return h(
+              "span",
+              {
+                style: {
+                  display: "inline-block",
+                  width: "100%",
+                },
+              },
+              [
+                h("span", [
+                  h("Icon", {
+                    props: {
+                      type: "ios-folder-outline",
+                    },
+                    style: {
+                      marginRight: "8px",
+                    },
+                  }),
+                  h("span", data.title),
+                ]),
+              ]
+            );
           },
-        }
+        },
       ],
       buttonProps: {
-        type: 'default',
-        size: 'small',
+        type: "default",
+        size: "small",
       },
-      headers: { 'Authorization': localStorage.getItem('token') },
+      headers: { Authorization: localStorage.getItem("token") },
       overStandardList: [],
       tableColumns: [
-        { title: '客户编码', key: 'code', align: 'center', tooltip: true, minWidth: 140 },
-        { title: '客户名称', key: 'title', align: 'center', tooltip: true, minWidth: 140 },
-        { title: '折扣率(%)', key: 'fax', align: 'center', tooltip: true, minWidth: 140 },
-        { title: '专营业务员', key: 'nickname', align: 'center', tooltip: true, minWidth: 140, },
+        {
+          title: "客户编码",
+          key: "code",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
+        },
+        {
+          title: "客户名称",
+          key: "title",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
+        },
+        {
+          title: "折扣率(%)",
+          key: "fax",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
+        },
+        {
+          title: "专营业务员",
+          key: "nickname",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
+        },
         // {
         //   title: '专营业务员', key: 'service_id', align: 'center', tooltip: true, minWidth: 140,
         //   render: (h, params) => {
@@ -215,7 +272,11 @@ export default {
         //   }
         // },
         {
-          title: '超标方案', key: 'plan_title', align: 'center', tooltip: true, minWidth: 140,
+          title: "超标方案",
+          key: "plan_title",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
           // render: (h, params) => {
           //   const { row } = params
           //   let text
@@ -226,17 +287,24 @@ export default {
           // }
         },
         {
-          title: '是否启用', key: 'lock', align: 'center', minWidth: 100,
+          title: "是否启用",
+          key: "lock",
+          align: "center",
+          minWidth: 100,
           render: (h, params) => {
-            const { row } = params
-            return h('span', {}, row.lock == 1 ? '是' : '否')
-          }
+            const { row } = params;
+            return h("span", {}, row.lock == 1 ? "是" : "否");
+          },
         },
         {
-          title: '创建时间', key: 'crt_time', align: 'center', tooltip: true, minWidth: 140,
+          title: "创建时间",
+          key: "crt_time",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
           render: (h, params) => {
-            return h('span', {}, this.func.replaceDate(params.row.crt_time))
-          }
+            return h("span", {}, this.func.replaceDate(params.row.crt_time));
+          },
         },
         // {
         //   title: '添加时间', key: 'crt_time', align: 'center', minWidth: 120,
@@ -245,7 +313,13 @@ export default {
         //     return h('span', {}, this.func.replaceDate(row.crt_time))
         //   }
         // },
-        { title: '操作', key: 'code', align: 'center', minWidth: 170, slot: 'setSlot' },
+        {
+          title: "操作",
+          key: "code",
+          align: "center",
+          minWidth: 170,
+          slot: "setSlot",
+        },
       ],
       tableData: [],
       tableLoading: false,
@@ -253,166 +327,184 @@ export default {
       pageSize: 10,
       total: 0,
       searchData: {
-        title: '',
-        code: '',
-        service_id: '',
-        lock: '',
+        title: "",
+        code: "",
+        service_id: "",
+        lock: "",
         date: [],
         // start_time: '',
         // end_time: '',
       },
-      suppliersTypeTitle: '',
-      suppliersTypeId: '',
+      suppliersTypeTitle: "",
+      suppliersTypeId: "",
       userList: [],
-    }
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
+  created() {
     // 获取超标方案
-    this.axios({ method: 'get', url: '/api/overdraft_list', }).then((res) => { this.overStandardList = res.data.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/overdraft_list" }).then((res) => {
+      this.overStandardList = res.data.data;
+    });
     // 获取用户列表
-    this.axios({ method: 'get', url: '/api/user', }).then((res) => { this.userList = res.data.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/employee_list" }).then((res) => {
+      this.userList = res.data.data;
+    });
     // 获取客户分类列表
     this.axios({
-      method: 'post',
-      url: '/api/basic_custom_list',
-    }).then((res) => { this.treeData[0].sub = res.data }).catch((err) => { });
+      method: "post",
+      url: "/api/basic_custom_list",
+    }).then((res) => {
+      this.treeData[0].sub = res.data;
+    });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.initData(this.searchData)
+  mounted() {
+    this.initData(this.searchData);
   },
   methods: {
-    initData (row) {
-      this.searchData.date[0] ? this.searchData.start_time = this.func.replaceDateNoHMS(this.searchData.date[0]) : ''
-      this.searchData.date[1] ? this.searchData.end_time = this.func.replaceDateNoHMS(this.searchData.date[1]) : ''
+    initData(row) {
+      this.searchData.date[0]
+        ? (this.searchData.start_time = this.func.replaceDateNoHMS(
+            this.searchData.date[0]
+          ))
+        : "";
+      this.searchData.date[1]
+        ? (this.searchData.end_time = this.func.replaceDateNoHMS(
+            this.searchData.date[1]
+          ))
+        : "";
       const subForm = {
-        start_time: this.func.replaceDateNoHMS(this.searchData.date[0]) || '',
-        end_time: this.func.replaceDateNoHMS(this.searchData.date[1]) || '',
+        start_time: this.func.replaceDateNoHMS(this.searchData.date[0]) || "",
+        end_time: this.func.replaceDateNoHMS(this.searchData.date[1]) || "",
         title: row.title,
         code: row.code,
         service_id: row.service_id,
-      }
-      this.tableLoading = true
+      };
+      this.tableLoading = true;
       this.axios({
-        method: 'get',
-        url: '/api/custom_list',
+        method: "get",
+        url: "/api/custom_list",
         params: {
           ...subForm,
           page_index: this.pageIndex,
-          page_size: this.pageSize
-        }
-      }).then((res) => {
-        this.tableLoading = false
-        this.total = res.data.total
-        this.tableData = res.data.data
-      }).catch((err) => { });
+          page_size: this.pageSize,
+        },
+      })
+        .then((res) => {
+          this.tableLoading = false;
+          this.total = res.data.total;
+          this.tableData = res.data.data;
+        })
+        .catch((err) => {});
     },
-    handleSet (type, row, index) {
+    handleSet(type, row, index) {
       // 2编辑 3查看 4删除
       switch (type) {
         case 2:
         case 3:
-          this.handleGoPage(type, row.id)
+          this.handleGoPage(type, row.id);
           break;
         case 4:
           this.$Modal.confirm({
-            title: '确认删除?',
-            content: '此操作无法恢复,请确认!',
+            title: "确认删除?",
+            content: "此操作无法恢复,请确认!",
             onOk: () => {
               this.axios({
-                method: 'post',
-                url: '/api/custom_del',
+                method: "post",
+                url: "/api/custom_del",
                 data: {
-                  id: row.id
-                }
-              }).then((res) => {
-                this.$Message.success(res.msg)
-                this.initData(this.searchData)
-              }).catch((err) => { });
+                  id: row.id,
+                },
+              })
+                .then((res) => {
+                  this.$Message.success(res.msg);
+                  this.initData(this.searchData);
+                })
+                .catch((err) => {});
             },
-            onCancel: () => { }
-          })
+            onCancel: () => {},
+          });
           break;
       }
     },
-    append (data) {
+    append(data) {
       const children = data.children || [];
       children.push({
         code: this.form.code,
         title: this.form.title,
-        expand: true
+        expand: true,
       });
-      this.$set(data, 'children', children);
+      this.$set(data, "children", children);
     },
-    remove (root, node, data) {
+    remove(root, node, data) {
       if (node.children && node.children.length > 0) {
-        this.$Message.error('有子集时不可删除')
+        this.$Message.error("有子集时不可删除");
       } else {
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
+        const parentKey = root.find((el) => el === node).parent;
+        const parent = root.find((el) => el.nodeKey === parentKey).node;
         const index = parent.children.indexOf(data);
         parent.children.splice(index, 1);
       }
     },
-    handleModalOk () {
-      this.append(this.treeData[0])
+    handleModalOk() {
+      this.append(this.treeData[0]);
     },
-    handleTreeSelect (arr, row) {
-      console.log('row :>> ', row);
-      this.searchData.code = row.code
-      this.suppliersTypeTitle = row.title
-      this.suppliersTypeId = row.id
-      this.initData(this.searchData)
+    handleTreeSelect(arr, row) {
+      console.log("row :>> ", row);
+      this.searchData.code = row.code;
+      this.suppliersTypeTitle = row.title;
+      this.suppliersTypeId = row.id;
+      this.initData(this.searchData);
     },
-    uploadSuccess (res) {
+    uploadSuccess(res) {
       if (res.code == 200) {
-        this.$Message.success(res.msg || '上传成功')
+        this.$Message.success(res.msg || "上传成功");
       } else {
-        this.$Message.warning(res.msg || '上传失败')
+        this.$Message.warning(res.msg || "上传失败");
       }
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    uploadError (err) {
-      this.$Message.error(err.msg || '上传失败')
+    uploadError(err) {
+      this.$Message.error(err.msg || "上传失败");
     },
-    changeSize (e) {
+    changeSize(e) {
       this.pageSize = e;
-      this.initData(this.searchData)
+      this.initData(this.searchData);
     },
-    changePage (e) {
+    changePage(e) {
       this.pageIndex = e;
-      this.initData(this.searchData)
+      this.initData(this.searchData);
     },
-    handleGoPage (type, id) {
+    handleGoPage(type, id) {
       // if (type == 1 && this.suppliersTypeTitle == '') {
       //   this.$Message.warning('新增请先选择左侧客户分类!')
       // } else {
       this.$router.push({
-        path: '/cms/BasicSettings/CustomerFiles/detail',
+        path: "/cms/BasicSettings/CustomerFiles/detail",
         query: {
           type,
           id,
-        }
-      })
+        },
+      });
       // }
-    }
+    },
   },
   // 监听属性 类似于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>
 .content {
   width: 100%;
   display: flex;

+ 5 - 2
src/views/BasicSettings/CustomerProductPrice/list.vue

@@ -130,16 +130,19 @@ export default {
       .then((res) => {
         this.userList = res.data.data;
       })
-      .catch((err) => {});
     // 获取超标方案
     this.axios({ method: "get", url: "/api/overdraft_list" })
       .then((res) => {
         this.overStandardList = res.data.data;
       })
-      .catch((err) => {});
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {},
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      vm.init(vm.proxyObj);
+    });
+  },
   methods: {
     init(row) {
       this.proxyObj = row;

+ 227 - 44
src/views/BidSystem/ContractList/info.vue

@@ -12,12 +12,19 @@
         </Button> -->
         <Button
           @click="handleOpenModal"
-          type="primary"
           v-show="currencyTab == 'name2'"
+          type="primary"
           style="margin-right: 10px"
           >批量下深化</Button
         >
         <Button
+          @click="handleOpenModal"
+          v-show="currencyTab != 'name2'"
+          type="primary"
+          style="margin-right: 10px"
+          >下深化</Button
+        >
+        <Button
           @click="showSupModal = true"
           type="primary"
           style="margin-right: 10px"
@@ -131,8 +138,17 @@
               ghost
               size="small"
               type="primary"
+              v-show="!(areaItem.product && areaItem.product.length > 0)"
               >展示产品</Button
             >
+            <Button
+              @click="handleOpenModal"
+              ghost
+              size="small"
+              type="primary"
+              v-show="areaItem.product && areaItem.product.length > 0"
+              >下深化</Button
+            >
           </div>
           <div class="addAreaForm">
             <Form :label-width="100" :model="areaItem" style="width: 60%">
@@ -165,11 +181,20 @@
           </div>
           <div class="addAreaTable">
             <Table
+              v-show="areaItem.product && areaItem.product.length > 0"
               :columns="tableColumns"
+              @on-selection-change="handleSelection"
               :data="areaItem.product"
               max-height="600"
               border
             >
+              <template slot="set" slot-scope="{ row, index }">
+                <a
+                  :disabled="row.sub_state == 1"
+                  @click="handleRowDeep(row, index)"
+                  >下深化</a
+                >
+              </template>
             </Table>
           </div>
         </div>
@@ -181,6 +206,70 @@
         style="overflow: hidden; overflow-y: auto"
       >
         <div class="top_search">
+          <div class="top_search_content">
+            <Form
+              :model="searchData"
+              :label-width="100"
+              class="top_search_form"
+            >
+              <FormItem label="区域编码:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.area_code"
+                  placeholder="请输入区域编码"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="区域名称:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.area_title"
+                  placeholder="请输入区域名称"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="产品名称:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.title"
+                  placeholder="请输入产品名称"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="图号:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.url_number"
+                  placeholder="请输入图号"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="深化状态:">
+                <Select
+                  clearable
+                  v-model="searchData.sub_state"
+                  size="small"
+                  style="width:120px"
+                >
+                  <Option label="已下深化" :value="1"></Option>
+                  <Option label="未下深化" :value="0"></Option>
+                </Select>
+              </FormItem>
+              <FormItem>
+                <Button @click="getListData" type="primary" size="small"
+                  >搜索</Button
+                >
+              </FormItem>
+            </Form>
+          </div>
           <Form :model="formData" :label-width="100" class="top_search_form">
             <FormItem label="订单号:">
               {{ formData.order_no }}
@@ -270,6 +359,13 @@
             :max-height="500"
             border
           >
+            <template slot="set" slot-scope="{ row, index }">
+              <a
+                :disabled="row.sub_state == 1"
+                @click="handleRowDeep(row, index)"
+                >下深化</a
+              >
+            </template>
           </Table>
         </div>
         <div ref="footercenter" class="footer-center">
@@ -539,6 +635,7 @@ export default {
         ],
       },
       tableColumns: [
+        { type: "selection", align: "center", minWidth: 100 },
         { title: "序号", key: "index", align: "center", minWidth: 80 },
         {
           title: "产品名称",
@@ -605,6 +702,22 @@ export default {
           minWidth: 80,
         },
         { title: "备注", key: "remark", align: "center", minWidth: 80 },
+        {
+          title: "是否下深化",
+          key: "sub_state",
+          align: "center",
+          minWidth: 80,
+          render: (h, params) => {
+            return h("span", {}, params.row.sub_state == 1 ? "是" : "否");
+          },
+        },
+        {
+          title: "操作",
+          key: "set",
+          align: "center",
+          minWidth: 100,
+          slot: "set",
+        },
       ],
       supTableColumns: [
         { title: "序号", key: "index", align: "center" },
@@ -683,6 +796,27 @@ export default {
         { title: "左右式", key: "title", align: "center", minWidth: 100 },
         { title: "图号", key: "url_number", align: "center", minWidth: 100 },
         { title: "备注", key: "remark", align: "center", minWidth: 100 },
+        { title: "备注", key: "remark", align: "center", minWidth: 100 },
+        {
+          title: "深化状态",
+          key: "sub_state",
+          align: "center",
+          minWidth: 100,
+          render: (h, params) => {
+            return h(
+              "span",
+              {},
+              params.row.sub_state == 1 ? "已下深化" : "未下深化"
+            );
+          },
+        },
+        {
+          title: "操作",
+          key: "set",
+          align: "center",
+          minWidth: 100,
+          slot: "set",
+        },
       ],
       listTableData: [],
       supTableData: [],
@@ -713,6 +847,7 @@ export default {
       page_index: 1,
       page_size: 10,
       total: 0,
+      searchData: {},
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -820,6 +955,7 @@ export default {
               });
             });
           this.tableColumns = [
+            { type: "selection", align: "center", minWidth: 100 },
             { title: "序号", key: "index", align: "center", minWidth: 80 },
             {
               title: "产品名称",
@@ -887,6 +1023,22 @@ export default {
             },
             ...arr,
             { title: "备注", key: "remark", align: "center", minWidth: 80 },
+            {
+              title: "是否下深化",
+              key: "sub_state",
+              align: "center",
+              minWidth: 80,
+              render: (h, params) => {
+                return h("span", {}, params.row.sub_state == 1 ? "是" : "否");
+              },
+            },
+            {
+              title: "操作",
+              key: "set",
+              align: "center",
+              minWidth: 100,
+              slot: "set",
+            },
           ];
           // 订单特殊字段
           this.formData.special &&
@@ -910,46 +1062,46 @@ export default {
                   }
                 });
               });
-            if (index == 0) {
-              element.isCurrencyArea = true;
-              //编辑进入页面是展示第一条区域的产品
-              element.id &&
-                this.axios
-                  .get("/api/order_area_list_product", {
-                    params: {
-                      order_no: this.$route.query.order_no,
-                      area_id: element.id,
-                    },
-                  })
-                  .then((res) => {
-                    if (res.code == 200) {
-                      if (!element.product) {
-                        element.product = [];
-                      }
-                      element.product = res.data;
-                      element.product.forEach((pdt, index) => {
-                        if (!pdt.url) {
-                          pdt.url = [];
-                        }
-                        pdt.index = index + 1;
-                        pdt.special &&
-                          pdt.special.length > 0 &&
-                          pdt.special.forEach((_pdt) => {
-                            this.formData.head[3].forEach((element) => {
-                              if (_pdt.head_id == element.id) {
-                                _pdt = Object.assign(_pdt, element);
-                                pdt[_pdt.key] = _pdt.value;
-                                this.productSpecValueList.push(_pdt);
-                              }
-                            });
-                          });
-                      });
-                      this.$forceUpdate();
-                    }
-                  });
-            } else {
-              element.isCurrencyArea = false;
-            }
+            // if (index == 0) {
+            //   element.isCurrencyArea = true;
+            //   //编辑进入页面是展示第一条区域的产品
+            //   element.id &&
+            //     this.axios
+            //       .get("/api/order_area_list_product", {
+            //         params: {
+            //           order_no: this.$route.query.order_no,
+            //           area_id: element.id,
+            //         },
+            //       })
+            //       .then((res) => {
+            //         if (res.code == 200) {
+            //           if (!element.product) {
+            //             element.product = [];
+            //           }
+            //           element.product = res.data;
+            //           element.product.forEach((pdt, index) => {
+            //             if (!pdt.url) {
+            //               pdt.url = [];
+            //             }
+            //             pdt.index = index + 1;
+            //             pdt.special &&
+            //               pdt.special.length > 0 &&
+            //               pdt.special.forEach((_pdt) => {
+            //                 this.formData.head[3].forEach((element) => {
+            //                   if (_pdt.head_id == element.id) {
+            //                     _pdt = Object.assign(_pdt, element);
+            //                     pdt[_pdt.key] = _pdt.value;
+            //                     this.productSpecValueList.push(_pdt);
+            //                   }
+            //                 });
+            //               });
+            //           });
+            //           this.$forceUpdate();
+            //         }
+            //       });
+            // } else {
+            //   element.isCurrencyArea = false;
+            // }
           });
           this.areaSpecValueList = this.formData.head[2]
             ? this.formData.head[2]
@@ -1018,6 +1170,7 @@ export default {
         });
       });
       this.tableColumns = [
+        { type: "selection", align: "center", minWidth: 100 },
         { title: "序号", key: "index", align: "center", minWidth: 80 },
         {
           title: "产品名称",
@@ -1085,6 +1238,22 @@ export default {
         },
         ...arr,
         { title: "备注", key: "remark", align: "center", minWidth: 80 },
+        {
+          title: "是否下深化",
+          key: "sub_state",
+          align: "center",
+          minWidth: 80,
+          render: (h, params) => {
+            return h("span", {}, params.row.sub_state == 1 ? "是" : "否");
+          },
+        },
+        {
+          title: "操作",
+          key: "set",
+          align: "center",
+          minWidth: 100,
+          slot: "set",
+        },
       ];
       this.showAddInputModal = false;
     },
@@ -1119,7 +1288,7 @@ export default {
     getListData() {
       this.axios
         .get("/api/order_area_detail_list?", {
-          params: { order_no: this.$route.query.order_no },
+          params: { order_no: this.$route.query.order_no, ...this.searchData },
         })
         .then((res) => {
           this.listTableData = res.data.data;
@@ -1151,9 +1320,12 @@ export default {
         this.processModal = true;
       }
     },
+    handleRowDeep(row) {
+      (this.selected = [row]), (this.processModal = true);
+    },
     handleProcess() {
       const order_area_product_id = this.selected.map(
-        (item) => item.order_area_product_id
+        (item) => item.order_area_product_id || item.id
       );
       this.axios({
         method: "get",
@@ -1161,6 +1333,7 @@ export default {
         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
@@ -1173,7 +1346,9 @@ export default {
       }).then((res) => {
         if (res.code == 200) {
           this.$Message.success(res.msg);
+          this.selected = [];
           this.getListData();
+          this.initData(this.$route.query.order_no);
         }
       });
     },
@@ -1187,9 +1362,17 @@ export default {
     },
     // 展示区域产品
     handleShowCurrencyArea(item, index) {
+      console.log("item :>> ", item);
       const preObj = this.formData.list.filter((item) => item.isCurrencyArea);
+      console.log("preObj :>> ", preObj);
+      console.log(
+        "preObj.length>0?preObj[0].id != item.id:true :>> ",
+        preObj.length > 0 ? preObj[0].id != item.id : true
+      );
       // 判断当前打开是否与上一个是否一致
-      if (preObj[0].id != item.id) {
+      if (preObj.length > 0) {
+        // }
+        // if (preObj[0].id != item.id) {
         // 1.保存上一个展开的区域及产品
         this.axios
           .post("/api/order_area_product_edit", {

+ 5 - 0
src/views/BidSystem/ContractList/list.vue

@@ -773,6 +773,11 @@ export default {
     }
     next();
   },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      vm.getData(vm.proxyObj);
+    });
+  },
   // 监控data中的数据变化
   watch: {},
   beforeCreate() {}, // 生命周期 - 创建之前

+ 218 - 90
src/views/BidSystem/DeepeningOrder/info.vue

@@ -15,7 +15,6 @@
         <Button
           @click="handleOpenModal"
           type="primary"
-          v-show="currencyTab == 'name2'"
           style="margin-right: 10px"
           >批量下拆单</Button
         >
@@ -34,7 +33,7 @@
         name="name1"
         style="overflow: hidden; overflow-y: auto"
       >
-        <div class="top_search">
+        <div class="top_search_name1">
           <div>
             <span>订单号:</span
             ><span style="font-weight:bold">{{ formData.order_no }}</span>
@@ -124,6 +123,14 @@
               type="primary"
               >展示产品
             </Button>
+            <Button
+              @click="handleOpenModal"
+              ghost
+              size="small"
+              v-show="!(type != 1 && item.id && !item.isCurrencyArea)"
+              type="primary"
+              >下拆单
+            </Button>
           </div>
           <div class="addAreaForm">
             <div class="addFormInfo">
@@ -142,6 +149,7 @@
                 :columns="tableColumns"
                 max-height="500"
                 :data="item.product"
+                @on-selection-change="handleSelection"
                 border
               >
                 <template slot="urlSet" slot-scope="{ row }">
@@ -158,7 +166,7 @@
                   </span>
                 </template>
                 <template slot="statusSlot" slot-scope="{ row }">
-                  {{ row.status == 0 ? "已完成" : "未完成" }}
+                  {{ row.sub_state == 2 ? "已完成" : "未完成" }}
                 </template>
                 <template slot="set" slot-scope="{ row, index }">
                   <a
@@ -178,6 +186,70 @@
         style="overflow: hidden; overflow-y: auto"
       >
         <div class="top_search">
+          <div class="top_search_content">
+            <Form
+              :model="searchData"
+              :label-width="100"
+              class="top_search_form"
+            >
+              <FormItem label="区域编码:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.area_code"
+                  placeholder="请输入区域编码"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="区域名称:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.area_title"
+                  placeholder="请输入区域名称"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="产品名称:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.title"
+                  placeholder="请输入产品名称"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="图号:">
+                <Input
+                  type="text"
+                  size="small"
+                  clearable
+                  v-model="searchData.url_number"
+                  placeholder="请输入图号"
+                  style="width: 120px"
+                />
+              </FormItem>
+              <FormItem label="状态:">
+                <Select
+                  clearable
+                  v-model="searchData.sub_state"
+                  size="small"
+                  style="width:120px"
+                >
+                  <Option label="已完成" :value="1"></Option>
+                  <Option label="未完成" :value="0"></Option>
+                </Select>
+              </FormItem>
+              <FormItem>
+                <Button @click="getListData" type="primary" size="small"
+                  >搜索</Button
+                >
+              </FormItem>
+            </Form>
+          </div>
           <Form :model="formData" :label-width="100" class="top_search_form">
             <FormItem label="订单号:">
               {{ formData.order_no }}
@@ -267,6 +339,16 @@
             :max-height="500"
             border
           >
+            <template slot="statusSlot" slot-scope="{ row }">
+              {{ row.sub_state == 2 ? "已完成" : "未完成" }}
+            </template>
+            <template slot="set" slot-scope="{ row, index }">
+              <a
+                style="margin: 0 5px"
+                @click="handleSet(row, index, 4, formData)"
+                >详情</a
+              >
+            </template>
           </Table>
         </div>
         <div ref="footercenter" class="footer-center">
@@ -535,16 +617,16 @@
         <Button type="primary" @click="handleAddPDTConfirm">确认</Button>
       </div>
     </Modal>
-    <!-- 批量下深化 -->
+    <!-- 批量下拆单 -->
     <Modal
       v-model="processModal"
-      title="下深化"
+      title="下拆单"
       @on-ok="handleProcess"
       @on-cancel="processModal = false"
     >
       <div>
         <div class="process_modal">
-          <span>深化人员:</span>
+          <span>拆单人员:</span>
           <Select v-model="process_man" style="width: 150px">
             <Option
               v-for="item in processManList"
@@ -663,6 +745,7 @@ export default {
         ],
       },
       tableColumns: [
+        { type: "selection", align: "center", minWidth: 60 },
         { title: "序号", key: "index", align: "center", minWidth: 80 },
         { title: "产品名称", key: "title", align: "center", minWidth: 140 },
         { title: "数量", key: "num", align: "center", minWidth: 80 },
@@ -681,38 +764,8 @@ export default {
           key: "url",
           minWidth: 80,
           slot: "urlSet",
-          // 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: ''
-          //           })
-          //           // }
-          //           // })
-          //         }
-          //       }
-          //     })
-          //   }))
-          // }
         },
-        { title: "左右式", key: "url_number", align: "center", minWidth: 90 },
+        // { title: "左右式", key: "url_number", align: "center", minWidth: 90 },
         { title: "图号", key: "url_number", align: "center", minWidth: 90 },
         // { title: '型号', key: 'model', align: 'center', minWidth: 80 },
         { title: "备注", key: "remark", align: "center", minWidth: 80 },
@@ -740,9 +793,19 @@ export default {
       listTableColumns: [
         { type: "selection", align: "center", minWidth: 100 },
         { title: "区域编码", key: "area_num", align: "center", minWidth: 100 },
-        { title: "区域名称", key: "area_title", align: "center", minWidth: 100 },
+        {
+          title: "区域名称",
+          key: "area_title",
+          align: "center",
+          minWidth: 100,
+        },
         { title: "单位", key: "area_unit", align: "center", minWidth: 100 },
-        { title: "工程量", key: "area_quantity", align: "center", minWidth: 100 },
+        {
+          title: "工程量",
+          key: "area_quantity",
+          align: "center",
+          minWidth: 100,
+        },
         { title: "户型", key: "house_type", align: "center", minWidth: 100 },
         { title: "备注", key: "remark", align: "center", minWidth: 100 },
         { title: "产品名称", key: "title", align: "center", minWidth: 100 },
@@ -792,6 +855,20 @@ export default {
         { title: "左右式", key: "title", align: "center", minWidth: 100 },
         { title: "图号", key: "url_number", align: "center", minWidth: 100 },
         { title: "备注", key: "remark", align: "center", minWidth: 100 },
+        {
+          title: "状态",
+          key: "status",
+          align: "center",
+          minWidth: 80,
+          slot: "statusSlot",
+        },
+        {
+          title: "操作",
+          key: "remark",
+          align: "center",
+          width: "120",
+          slot: "set",
+        },
       ],
       listTableData: [],
       //是否查看
@@ -819,6 +896,7 @@ export default {
       page_index: 1,
       page_size: 10,
       total: 0,
+      searchData: {},
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -894,6 +972,7 @@ export default {
             });
           });
         this.tableColumns = [
+          { type: "selection", align: "center", minWidth: 60 },
           { title: "序号", key: "index", align: "center", minWidth: 80 },
           {
             title: "产品名称",
@@ -962,6 +1041,13 @@ export default {
           ...arr,
           { title: "备注", key: "remark", align: "center", minWidth: 80 },
           {
+            title: "状态",
+            key: "status",
+            align: "center",
+            minWidth: 80,
+            slot: "statusSlot",
+          },
+          {
             title: "操作",
             key: "remark",
             align: "center",
@@ -1047,54 +1133,54 @@ export default {
     handleSelection(selection) {
       this.selected = selection;
     },
-    postData() {
-      this.axios({
-        method: "post",
-        url: "/api/order_area_product_save",
-        data: {
-          order_no: this.formData.order_no,
-          order_area_id: "",
-          order_area_product_id: "",
-          list: "",
-        },
-      })
-        .then((res) => {
-          this.$Message.success(res.msg);
-        })
-        .catch((err) => {});
-    },
-    // 1深化 2详情
+    // 1拆单 2详情
     handleSet(row, index, type, item) {
-      if (type == 3) {
-        this.$Modal.confirm({
-          title: "确认删除?",
-          content: "此操作确认后不可恢复,请确认!",
-          onOk: () => {
-            this.axios({
-              method: "post",
-              url: "/api/order_area_deep_del",
-              data: {
-                id: row.id,
-              },
-            })
-              .then((res) => {
-                this.$Message.success(res.msg);
-                this.initData(this.formData.order_no);
-              })
-              .catch((err) => {});
-          },
-          onCancel: () => {},
-        });
-      } else {
-        this.$router.push({
-          path: "/cms/BidSystem/DeepeningOrder/edit",
-          query: {
-            type,
-            order_no: this.formData.order_no,
-            order_area_id: item.id,
-            order_area_product_id: row.id,
-          },
-        });
+      switch (type) {
+        case 1:
+          break;
+        case 2:
+          this.$router.push({
+            path: "/cms/BidSystem/DeepeningOrder/edit",
+            query: {
+              type,
+              order_no: this.formData.order_no,
+              // order_area_id: item.id,
+              order_area_product_id: row.id,
+            },
+          });
+          break;
+        case 3:
+          this.$Modal.confirm({
+            title: "确认删除?",
+            content: "此操作确认后不可恢复,请确认!",
+            onOk: () => {
+              this.axios({
+                method: "post",
+                url: "/api/order_area_deep_del",
+                data: {
+                  id: row.id,
+                },
+              }).then((res) => {
+                if (res.doce == 200) {
+                  this.$Message.success(res.msg);
+                  this.initData(this.formData.order_no);
+                }
+              });
+            },
+            onCancel: () => {},
+          });
+          break;
+        case 4:
+          this.$router.push({
+            path: "/cms/BidSystem/DeepeningOrder/edit",
+            query: {
+              type,
+              order_no: this.formData.order_no,
+              order_area_id: item.id,
+              order_area_product_id: row.order_area_product_id,
+            },
+          });
+          break;
       }
     },
     // 删除工艺属性
@@ -1247,7 +1333,7 @@ export default {
     },
     handleProcess() {
       const order_area_product_id = this.selected.map(
-        (item) => item.order_area_product_id
+        (item) => item.order_area_product_id || item.id
       );
       this.axios({
         method: "get",
@@ -1255,6 +1341,7 @@ export default {
         params: {
           order_no: this.order_no,
           type: 2,
+          sub_state: 2,
           order_area_product_id,
           process_man: this.process_man,
           process_start_time: this.process_start_time
@@ -1268,6 +1355,7 @@ export default {
         if (res.code == 200) {
           this.$Message.success(res.msg);
           this.getListData();
+          this.initData(this.formData.order_no);
         }
       });
     },
@@ -1287,7 +1375,7 @@ export default {
     getListData() {
       this.axios
         .get("/api/order_area_detail_list", {
-          params: { order_no: this.$route.query.order_no },
+          params: { order_no: this.$route.query.order_no, ...this.searchData },
         })
         .then((res) => {
           this.listTableData = res.data.data;
@@ -1423,7 +1511,7 @@ export default {
   top: 20px;
   height: 85%;
   padding-bottom: 20px;
-  .top_search {
+  .top_search_name1 {
     display: flex;
     justify-content: flex-start;
     align-items: center;
@@ -1432,9 +1520,49 @@ export default {
     padding: 10px 0;
     font-size: 14px;
     div {
-      width: 200px;
+      width: 220px;
       padding: 5px;
+      span {
+        display: inline-block;
+        min-width: 40px;
+        max-width: 150px;
+        text-align: justify;
+        text-justify: newspaper;
+        word-break: break-all;
+        vertical-align: middle;
+      }
+    }
+    .top_search_content {
+      display: flex;
+      justify-content: space-between;
+    }
+    .top_search_form {
+      // width: 800px;
+      // display: flex;
+      // justify-content: space-around;
+      /deep/ .ivu-form-item {
+        display: inline-block;
+        width: 300px;
+      }
     }
+  }
+  .top_search {
+    padding: 20px 0;
+    width: 100%;
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
+    flex-wrap: wrap;
+    width: 100%;
+    padding: 10px 0;
+    font-size: 14px;
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
+    flex-wrap: wrap;
+    width: 100%;
+    padding: 10px 0;
+    font-size: 14px;
     .top_search_form {
       // width: 800px;
       // display: flex;

+ 0 - 1
src/views/BidSystem/DeepeningOrder/list.vue

@@ -249,7 +249,6 @@ export default {
           slot: "set",
           fixed: "right",
           minWidth: 350,
-          fixed: "right",
         },
       ],
       tableData: [],

+ 182 - 99
src/views/OrderMannage/BusinessOrderlist/edit.vue

@@ -111,7 +111,23 @@
             ></Option>
           </Select>
         </FormItem>
-        <FormItem label="详细地址:" prop="address">
+        <FormItem label="负责人:">
+          <Select
+            placeholder="请选择负责人"
+            :disabled="type == 3"
+            @on-change="handleClientDetailChange"
+            v-model="info.custom_detail_id"
+            class="auto-width"
+          >
+            <Option
+              v-for="item of clientDetailList"
+              :key="item.id"
+              :label="item.service_name"
+              :value="item.id"
+            ></Option>
+          </Select>
+        </FormItem>
+        <FormItem label="详细地址:">
           <Select
             clearable
             filterable
@@ -128,7 +144,7 @@
             ></Option>
           </Select>
         </FormItem>
-        <FormItem label="手机号:" prop="mobile">
+        <FormItem label="手机号:">
           <Select
             clearable
             filterable
@@ -160,6 +176,7 @@
             ></Option>
           </Select>
         </FormItem>
+
         <FormItem v-if="formObjs.end_time" label="交付日期:">
           <DatePicker
             :options="options"
@@ -457,6 +474,12 @@
           >
             <template #default="{ row, rowIndex }">
               <a
+                @click="handleSet(row, rowIndex, 5)"
+                v-show="type == 3"
+                style="margin: 0 5px"
+                >详情</a
+              >
+              <a
                 @click="handleSet(row, rowIndex, 4)"
                 v-if="type != 3"
                 v-show="rowIndex >= 0"
@@ -470,12 +493,7 @@
                 style="margin: 0 5px"
                 >编辑</a
               >
-              <a
-                @click="handleSet(row, rowIndex, 2)"
-                v-show="rowIndex >= 0"
-                style="margin: 0 5px"
-                >详情</a
-              >
+
               <a
                 @click="handleSet(row, rowIndex, 3)"
                 v-if="type != 3"
@@ -514,7 +532,6 @@
           <Button
             @click="handleProductCopy"
             size="small"
-            v-show="!isEdit"
             type="primary"
             style="margin-right: 5px"
             slot="extra"
@@ -523,7 +540,6 @@
           <Button
             @click="handleTabsAdd"
             size="small"
-            v-show="!isEdit"
             type="warning"
             style="margin-right: 5px"
             slot="extra"
@@ -532,16 +548,13 @@
           <Button
             @click="handleProductDele"
             size="small"
-            v-show="!isEdit"
             type="primary"
             slot="extra"
             >删除</Button
           >
           <TabPane
             :label="
-              (item.position == '' ? '位置' : item.position) +
-                '-' +
-                item.type_name
+              (item.position ? item.position : '位置') + '-' + item.type_name
             "
             v-for="(item, index) in modalArray"
             :key="item.id"
@@ -1267,7 +1280,7 @@
         <Tabs value="name">
           <TabPane
             :label="
-              (modalData.position == '' ? '位置' : modalData.position) +
+              (modalData.position ? modalData.position : '位置') +
                 '-' +
                 modalData.type_name
             "
@@ -1292,6 +1305,7 @@
                         clearable
                         transfer
                         label-in-value
+                        :disabled="isCheck"
                         size="small"
                         v-model="modalData.product_id"
                         @on-change="changeEditProduct($event)"
@@ -1315,6 +1329,7 @@
                       <Input
                         size="small"
                         v-model="modalData.position"
+                        :disabled="isCheck"
                         @on-change="
                           (e) => handleProductPositionChange(modalData, e)
                         "
@@ -1335,7 +1350,7 @@
                   <!-- 工艺属性 -->
                   <FormItem
                     v-for="(ele, idx) in modalData.process"
-                    :key="ele.key + '333' + modalData.id"
+                    :key="idx + '333' + modalData.id"
                     :label="ele.title + ':'"
                   >
                     <Tooltip style="width: 120px" transfer>
@@ -1353,6 +1368,7 @@
                         clearable
                         transfer
                         label-in-value
+                        :disabled="isCheck"
                         @on-open-change="
                           (e) => handleGetProductMeasure(e, idx, modalData, ele)
                         "
@@ -1383,6 +1399,7 @@
                       size="small"
                       type="text"
                       clearable
+                      :disabled="isCheck"
                       :placeholder="ele.e_title"
                       v-model="ele.value"
                       @on-change="
@@ -1399,6 +1416,7 @@
                       size="small"
                       @on-change="(e) => handleProductNumChange(e, modalData)"
                       v-model="modalData.total_num"
+                      :disabled="isCheck"
                       style="width: 120px"
                       placeholder="请输入产品数量"
                     />
@@ -1407,6 +1425,7 @@
                     <Input
                       size="small"
                       v-model="modalData.num"
+                      :disabled="isCheck"
                       style="width: 120px"
                       placeholder="自动带出"
                     />
@@ -1414,6 +1433,7 @@
                   <FormItem label="单价:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="modalData.unit_price"
                       @on-change="
                         (e) => handleProductUnit_priceChange(e, modalData)
@@ -1425,6 +1445,7 @@
                   <FormItem label="附加金额:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="modalData.ext_price"
                       @on-change="
                         (e) => handleProductExt_priceChange(e, modalData)
@@ -1435,6 +1456,7 @@
                   </FormItem>
                   <FormItem label="超标金额:">
                     <Input
+                      :disabled="isCheck"
                       size="small"
                       @on-change="
                         (e) => handleProductOver_priceChange(e, modalData)
@@ -1446,6 +1468,7 @@
                   </FormItem>
                   <FormItem label="金额:">
                     <Input
+                      :disabled="isCheck"
                       size="small"
                       v-model="modalData.price"
                       style="width: 120px"
@@ -1455,6 +1478,7 @@
                   <FormItem label="图号:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="modalData.url_number"
                       style="width: 120px"
                       placeholder="自动带出"
@@ -1467,6 +1491,7 @@
                   >
                     <Input
                       v-show="_customize.type == 1"
+                      :disabled="isCheck"
                       size="small"
                       type="text"
                       v-model="_customize.value"
@@ -1477,6 +1502,7 @@
                     <Select
                       v-show="_customize.type == 2"
                       style="width: 120px"
+                      :disabled="isCheck"
                       filterable
                       clearable
                       v-model="_customize.value"
@@ -1542,6 +1568,7 @@
                     <Input
                       size="small"
                       type="textarea"
+                      :disabled="isCheck"
                       v-model="modalData.remark"
                       style="width: 120px"
                       placeholder="请输入备注"
@@ -1580,6 +1607,7 @@
                   <FormItem :label-width="element.isBP ? 1 : 50">
                     <Radio
                       v-show="element.isBP"
+                      :disabled="isCheck"
                       @click.native.prevent="handleRadioClick(element)"
                       v-model="element.isChoosed"
                     ></Radio>
@@ -1590,6 +1618,7 @@
                       filterable
                       clearable
                       transfer
+                      :disabled="isCheck"
                       label-in-value
                       size="small"
                       @on-change="handlePartChange(element, modalData.measure)"
@@ -1608,6 +1637,7 @@
                     <Input
                       size="small"
                       clearable
+                      :disabled="isCheck"
                       v-model="element.long"
                       style="width: 50px"
                       placeholder="请输入厚"
@@ -1617,6 +1647,7 @@
                     <Input
                       size="small"
                       clearable
+                      :disabled="isCheck"
                       v-model="element.wide"
                       style="width: 50px"
                       placeholder="请输入宽"
@@ -1626,6 +1657,7 @@
                     <Input
                       size="small"
                       clearable
+                      :disabled="isCheck"
                       v-model="element.high"
                       style="width: 50px"
                       placeholder="请输入高"
@@ -1633,7 +1665,7 @@
                   </FormItem>
                   <FormItem
                     v-for="(process_detail, idx) in element.process"
-                    :key="process_detail.name + '555' + element.part_id"
+                    :key="idx + '555' + element.part_id"
                     :label="process_detail.name + ':'"
                   >
                     <Tooltip style="width: 120px" transfer>
@@ -1650,6 +1682,7 @@
                         filterable
                         clearable
                         label-in-value
+                        :disabled="isCheck"
                         @on-change="
                           (e) => handlePartProcessChange(e, idx, element)
                         "
@@ -1669,6 +1702,7 @@
                     <Button
                       @click="handlePartsApart(element, idx, modalData.part)"
                       type="primary"
+                      v-show="!isCheck"
                       v-if="element.isBP"
                       style="margin-right: 5px"
                       size="small"
@@ -1678,6 +1712,7 @@
                       @click="handlePartsDele(element, idx, modalData.part)"
                       type="primary"
                       v-else
+                      v-show="!isCheck"
                       style="margin-right: 5px"
                       size="small"
                       >删除</Button
@@ -1688,7 +1723,11 @@
                       style="margin-right: 5px"
                       size="small"
                       >{{
-                        element.isShowPartDetail ? "收起" : "修改原材料"
+                        element.isShowPartDetail
+                          ? "收起"
+                          : isCheck
+                          ? "查看"
+                          : "修改原材料"
                       }}</Button
                     >
                   </FormItem>
@@ -1764,6 +1803,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                :disabled="isCheck"
                                 v-model="ele.material_detail_id"
                                 @on-change="(e) => handleMaterialChange(e, ele)"
                                 placeholder="请选择厚"
@@ -1782,6 +1822,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                :disabled="isCheck"
                                 v-model="ele.material_detail_id"
                                 placeholder="请选择厚"
                                 size="small"
@@ -1799,6 +1840,7 @@
                                 style="width: 80px"
                                 filterable
                                 clearable
+                                :disabled="isCheck"
                                 v-model="ele.material_detail_id"
                                 placeholder="请选择厚"
                                 size="small"
@@ -1814,6 +1856,7 @@
                             <FormItem label="数量" :label-width="40">
                               <Input
                                 size="small"
+                                :disabled="isCheck"
                                 v-model="ele.material_detail_num"
                                 style="width: 80px"
                                 placeholder="请输入数量"
@@ -1834,12 +1877,14 @@
                   @click="handleExtraAdd(modalData.metalArray, 1)"
                   type="primary"
                   style="margin-right: 5px"
+                  v-show="!isCheck"
                   size="small"
                   >新增五金</Button
                 >
                 <Button
                   @click="handleExtraAdd(modalData.extArray, 2)"
                   type="primary"
+                  v-show="!isCheck"
                   size="small"
                   >新增附加项目</Button
                 >
@@ -1858,6 +1903,7 @@
                       transfer
                       label-in-value
                       size="small"
+                      :disabled="isCheck"
                       @on-change="
                         (e) =>
                           handleMetalChange(
@@ -1881,6 +1927,7 @@
                   <FormItem label="数量:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.num"
                       @on-change="handleTotalPriceCalc(element, modalData)"
                       style="width: 100px"
@@ -1890,6 +1937,7 @@
                   <FormItem label="单价:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.price"
                       @on-change="handleTotalPriceCalc(element, modalData)"
                       style="width: 100px"
@@ -1899,6 +1947,7 @@
                   <FormItem label="金额:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.total_price"
                       style="width: 100px"
                       placeholder="请输入金额"
@@ -1907,6 +1956,7 @@
                   <FormItem label="备注:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.remark"
                       style="width: 100px"
                       placeholder="请输入备注"
@@ -1914,6 +1964,7 @@
                   </FormItem>
                   <FormItem>
                     <a
+                      v-show="isCheck"
                       style="color: red"
                       @click="
                         handleExtraDele(modalData.metalArray, element, idx)
@@ -1934,6 +1985,7 @@
                       clearable
                       transfer
                       label-in-value
+                      :disabled="isCheck"
                       size="small"
                       v-model="element.id"
                       @on-change="(e) => handleExtChange(element, e, modalData)"
@@ -1950,6 +2002,7 @@
                   <FormItem label="数量:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.num"
                       @on-change="handleTotalPriceCalc(element, modalData)"
                       style="width: 100px"
@@ -1959,6 +2012,7 @@
                   <FormItem label="单价:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.price"
                       @on-change="handleTotalPriceCalc(element, modalData)"
                       style="width: 100px"
@@ -1968,6 +2022,7 @@
                   <FormItem label="金额:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.total_price"
                       style="width: 100px"
                       placeholder="请输入金额"
@@ -1976,6 +2031,7 @@
                   <FormItem label="备注:">
                     <Input
                       size="small"
+                      :disabled="isCheck"
                       v-model="element.remark"
                       style="width: 100px"
                       placeholder="请输入备注"
@@ -1984,6 +2040,7 @@
                   <FormItem>
                     <a
                       style="color: red"
+                      v-show="isCheck"
                       @click="handleExtraDele(modalData.extArray, element, idx)"
                       >删除</a
                     >
@@ -1996,7 +2053,12 @@
       </div>
       <div slot="footer">
         <Button @click="cancelModal">取消</Button>
-        <Button @click="handleEditProductSubmit" type="primary">确定</Button>
+        <Button
+          @click="handleEditProductSubmit"
+          v-show="!isCheck"
+          type="primary"
+          >确定</Button
+        >
       </div>
     </Modal>
     <Modal
@@ -2167,7 +2229,7 @@ export default {
       currentTabIndex: "0",
       parts_title_count: [],
       wood_title_count: [],
-      isEdit: false,
+      isCheck: false,
       warningList: [],
       process_Select_match_list: [], //选中的list
       originalTableColumns: [
@@ -2352,7 +2414,6 @@ export default {
     },
     handleProductCopy() {
       let idx = this.$refs.tabsRef.activeKey;
-      console.log("idx :>> ", idx);
       let obj = JSON.parse(JSON.stringify(this.modalArray[idx]));
       obj.index = JSON.parse(JSON.stringify(this.modalArray.length));
       this.modalArray.push(obj);
@@ -2639,6 +2700,7 @@ export default {
       this.modalData.metalArray.map((item) => {
         const obj = {
           total_num: item.num,
+          title: item.title,
           unit_price: item.price,
           ext_price: item.num * item.price,
           is_metal: false,
@@ -2712,7 +2774,8 @@ export default {
                         v.title == el.material_detail_title &&
                           v.measure_str.map((item) => {
                             item.id == el.material_detail_id &&
-                              (item.num = item.num + el.num);
+                              (item.num =
+                                item.num * 1 + el.material_detail_num * 1);
                           });
                       });
                     } else {
@@ -2725,7 +2788,7 @@ export default {
                         v.title == el.material_detail_title &&
                           ((v.unit = __temp[0].unit),
                           v.measure_str.push({
-                            num: el.num,
+                            num: el.material_detail_num,
                             id: __temp[0].material_detail_id,
                             measure: `${__temp[0].long || 0}*${__temp[0].wide ||
                               0}*${__temp[0].high || 0}`,
@@ -2748,7 +2811,7 @@ export default {
                         unit: total_line_unit,
                         measure_str: [
                           {
-                            num: el.num,
+                            num: el.material_detail_num,
                             id: _temp[0].material_detail_id,
                             measure: `${_temp[0].long || 0}*${_temp[0].wide ||
                               0}*${_temp[0].high || 0}`,
@@ -2790,7 +2853,15 @@ export default {
       this.axios("/api/employee_list").then((res) => (this.users = res.data));
     },
     handleExtraAdd(array, type) {
-      array.push({ num: 0, price: 0, total_price: 0, type, remark: "" });
+      array.push({
+        num: 0,
+        price: 0,
+        total_price: 0,
+        type,
+        remark: "",
+        title: "",
+        is_metal: true,
+      });
       this.$forceUpdate();
     },
     handleExtraDele(array, row, index) {
@@ -2875,20 +2946,21 @@ export default {
       return sums;
     },
     handleMetalChange(e, row, n, arr) {
-      row.ext_id = e.value;
-      row.title = e.label;
+      arr[n].ext_id = e.value;
+      arr[n].title = e.label;
     },
     handleClientDetailChange(value) {
       if (value) {
         let row = this.clientDetailList.filter((item) => item.id == value);
         this.info.address = row[0].address;
+        this.info.address = row[0].address;
         this.info.mobile = row[0].mobile;
         this.$forceUpdate();
       }
     },
     getEditData(modalData, curData) {
-      // console.log('modalData :>> ', modalData);
-      // console.log('curData :>> ', curData);
+      // console.log("modalData :>> ", modalData);
+      // console.log("curData :>> ", curData);
       modalData.ext_price = curData.ext_price * 1 || 0;
       modalData.model = curData.model;
       modalData.num = curData.num || 1;
@@ -2949,7 +3021,6 @@ export default {
         curData.ext = curData.ext_list;
       }
       curData.ext.forEach((element) => {
-        console.log("element :>> ", element);
         element.type == 1 && modalData.metalArray.push(element);
         element.type == 2 && modalData.extArray.push(element);
       });
@@ -2962,47 +3033,47 @@ export default {
         element.total_price = (element.price * element.num).toFixed(2);
       });
       // 同步 curData 、 modalData
-      for (
-        let _modal_idx = 0;
-        _modal_idx < modalData.part.length;
-        _modal_idx++
-      ) {
-        const _modal = modalData.part[_modal_idx];
-        //匹配次数
-        let match_idx = -1;
-        // 相同次数
-        let same_idx = 0;
-        for (let _cur_idx = 0; _cur_idx < curData.part.length; _cur_idx++) {
-          const _cur = curData.part[_cur_idx];
-          if (
-            _modal.part_id == _cur.part_id ||
-            _modal.change_id == _cur.change_id
-          ) {
-            match_idx++;
-          }
-          if (match_idx == 1) {
-            _modal.splice(
-              _modal_idx,
-              same_idx,
-              JSON.parse(JSON.stringify(_cur))
-            );
-            match_idx--;
-            same_idx++;
-            _modal_idx++;
-          }
-        }
-        if (match_idx == -1) {
-          //modal存在但是cur不存在数据
-          curData.part.splice(
-            _modal_idx,
-            0,
-            JSON.parse(JSON.stringify(_modal))
-          );
-          modalData.isChoosed = false;
-        } else if (match_idx == 0) {
-          // modal 与 cur数量一致
-        }
-      }
+      // for (
+      //   let _modal_idx = 0;
+      //   _modal_idx < modalData.part.length;
+      //   _modal_idx++
+      // ) {
+      //   const _modal = modalData.part[_modal_idx];
+      //   //匹配次数
+      //   let match_idx = -1;
+      //   // 相同次数
+      //   let same_idx = 0;
+      //   for (let _cur_idx = 0; _cur_idx < curData.part.length; _cur_idx++) {
+      //     const _cur = curData.part[_cur_idx];
+      //     if (
+      //       _modal.part_id == _cur.part_id ||
+      //       _modal.change_id == _cur.change_id
+      //     ) {
+      //       match_idx++;
+      //     }
+      //     if (match_idx == 1) {
+      //       _modal.splice(
+      //         _modal_idx,
+      //         same_idx,
+      //         JSON.parse(JSON.stringify(_cur))
+      //       );
+      //       match_idx--;
+      //       same_idx++;
+      //       _modal_idx++;
+      //     }
+      //   }
+      //   if (match_idx == -1) {
+      //     //modal存在但是cur不存在数据
+      //     curData.part.splice(
+      //       _modal_idx,
+      //       0,
+      //       JSON.parse(JSON.stringify(_modal))
+      //     );
+      //     modalData.isChoosed = false;
+      //   } else if (match_idx == 0) {
+      //     // modal 与 cur数量一致
+      //   }
+      // }
       // 处理部件
       curData.part.forEach((element, index) => {
         if (!element.is_metal) {
@@ -3048,7 +3119,7 @@ export default {
     },
     handleSet(row, index, type) {
       let obj;
-      // 1 新增 2 编辑 3 删除 4复制
+      // 1 新增 2 编辑 3 删除 4复制  5详情
       switch (type) {
         case 1:
           this.title_state = 1;
@@ -3065,19 +3136,18 @@ export default {
             ];
             this.currentTabIndex = "0";
             this.showAddProduct = true;
-            this.isEdit = false;
           } else {
             this.$Message.warning("请先选择客户");
           }
           break;
         case 2:
           this.title_state = 2;
-          this.isEdit = true;
+          this.isCheck = false;
           if (this.type == 1) {
+            this.showEditProduct = true;
             this.modalData = JSON.parse(JSON.stringify(row));
             this.currencyIndex = index;
           } else if (this.type == 2) {
-            console.log("row :>> ", row);
             if (row.get_first_data) {
               this.axios
                 .get("/api/order_product_detail_new", {
@@ -3085,7 +3155,6 @@ export default {
                 })
                 .then((res) => {
                   if (res.code == 200) {
-                    res.data.value = res.data.product_id;
                     this.currencyIndex = index;
                     this.modalData = JSON.parse(JSON.stringify(row));
                     this.editForm = res.data;
@@ -3109,7 +3178,27 @@ export default {
           this.tableData.splice(index, 0, obj);
           this.handleCalcCount();
           break;
-        default:
+        case 5:
+          this.title_state = 3;
+          this.isCheck = true;
+          if (row.get_first_data) {
+            this.axios
+              .get("/api/order_product_detail_new", {
+                params: { order_product_id: row.order_product_id },
+              })
+              .then((res) => {
+                if (res.code == 200) {
+                  this.currencyIndex = index;
+                  this.modalData = JSON.parse(JSON.stringify(row));
+                  this.editForm = res.data;
+                  this.changeProductOnEdit(res.data, 0);
+                }
+              });
+          } else {
+            this.modalData = JSON.parse(JSON.stringify(row));
+            this.currencyIndex = index;
+            this.showEditProduct = true;
+          }
           break;
       }
     },
@@ -3212,7 +3301,7 @@ export default {
       item.position = e.target.value;
       this.$forceUpdate();
     },
-    changeAddProduct(row, n, ext) {
+    changeAddProduct(row, n) {
       if (row) {
         let id = row ? row.value : this.productList[0].id;
         this.modalArray[n].type_name = row.label;
@@ -3268,14 +3357,6 @@ export default {
             // modalData.model = res.data.model || ''
             // modalData.same_process_compare = JSON.parse(JSON.stringify(res.data.intermediate.same_process || []))
             modalData.selected_ids = [];
-            if (!ext) {
-              if (row) {
-                modalData.title = row.label || "";
-              }
-              modalData.measuring = res.data.measuring;
-              modalData.customize = res.data.customize;
-              modalData.product_remake = res.data.product_remake;
-            }
             modalData.part = res.data.part;
             modalData.part.forEach((element, index) => {
               if (!element.is_metal) {
@@ -3554,14 +3635,17 @@ export default {
           }
         }
       });
+      this.$forceUpdate();
     },
-    changeProductOnEdit(row, n, ext) {
+    changeProductOnEdit(row, n) {
       if (row) {
-        let id = row ? row.value : this.productList[0].id;
         this.modalData.type_name = row.label;
         this.modalData.title = row.label;
         this.axios("/api/order_get_product_detail_new", {
-          params: { product_id: id, custom_id: 8 },
+          params: {
+            product_id: row.product_id,
+            custom_id: this.info.custom_id,
+          },
         }).then((res) => {
           if (res.code == 200) {
             this.process_match_list = res.data.process.list;
@@ -3571,7 +3655,7 @@ export default {
             this.modalData.unit_price = res.data.price || 0;
             this.modalData.num = res.data.num || 1;
             this.modalData.over_price = res.data.over_price || 0;
-            this.modalData.position = res.data.position || "";
+            this.modalData.position = res.data.position | "";
             this.modalData.unit = res.data.unit || "";
             this.modalData.remark = res.data.remark || "";
             this.modalData.url = res.data.url || [];
@@ -3579,13 +3663,6 @@ export default {
             this.modalData.overdraft = res.data.overdraft;
             // this.modalData.same_process_compare = JSON.parse(JSON.stringify(res.data.intermediate.same_process || []))
             this.modalData.selected_ids = [];
-            if (!ext) {
-              if (row) {
-                this.modalData.title = row.label || "";
-              }
-              this.modalData.measuring = res.data.measuring;
-              this.modalData.product_remake = res.data.product_remake;
-            }
             this.modalData.customize = row.customize;
             this.modalData.get_first_data = false;
             this.modalData.part = res.data.part;
@@ -3657,7 +3734,8 @@ export default {
                   }
                 }
               });
-              this.type == 2 && this.getEditData(this.modalData, this.editForm);
+              (this.type == 2 || this.type == 3) &&
+                this.getEditData(this.modalData, this.editForm);
               this.showEditProduct = true;
               this.$forceUpdate();
             });
@@ -3765,6 +3843,11 @@ export default {
       }
     },
     handleProductNumChange(e, product) {
+      product.part.map((element) => {
+        element.part_detail.map((elem) => {
+          elem.material_detail_num *= e.target.value;
+        });
+      });
       product.num = product.total_num = e.target.value;
       product.price =
         (product.unit_price * 1 || 0) * (product.num * 1 || 1) +
@@ -4055,7 +4138,7 @@ export default {
     //修改材质/颜/工艺的disbled
     handleProductProcessChange(e, n, modelData, ele) {
       if (e) {
-        this.pre_process_obj[n] = e.value;
+        this.pre_process_obj[n + 1] = e.value;
         if (!modelData.procedure_properties_str) {
           modelData.procedure_properties_str = [];
         }

+ 83 - 28
src/views/OrderMannage/BusinessOrderlist/list.vue

@@ -238,7 +238,11 @@
                 v-for="item of headerList"
                 :key="item.key"
                 :label="item.title"
-                :disabled="item.title=='操作'||item.title=='已收款'||item.title=='未收款'"
+                :disabled="
+                  item.title == '操作' ||
+                    item.title == '已收款' ||
+                    item.title == '未收款'
+                "
                 :value="item.key"
               ></Option>
             </Select>
@@ -319,6 +323,12 @@ export default {
         },
         { title: "业务员", align: "center", key: "nickname", minWidth: 150 },
         {
+          title: "负责人",
+          align: "center",
+          key: "leading_name",
+          minWidth: 150,
+        },
+        {
           title: "客户姓名",
           align: "center",
           key: "client_name",
@@ -586,10 +596,22 @@ export default {
         { is_show: true, key: "crt_id", value: "制单人", title: "制单人" },
         {
           is_show: true,
+          key: "leading_name",
+          value: "负责人",
+          title: "负责人",
+        },
+        {
+          is_show: true,
           key: "warning_state",
           value: "紧急程度",
           title: "紧急程度",
         },
+        {
+          is_show: true,
+          key: "",
+          value: "订单创建时间",
+          title: "订单创建时间",
+        },
       ],
       formSet: [],
       tableModalColumns: [
@@ -673,6 +695,12 @@ export default {
         { is_show: true, key: "address", value: "客户地址", title: "客户地址" },
         {
           is_show: true,
+          key: "leading_name",
+          value: "负责人",
+          title: "负责人",
+        },
+        {
+          is_show: true,
           key: "warning_state",
           value: "紧急程度",
           title: "紧急程度",
@@ -713,12 +741,6 @@ export default {
         },
         { is_show: true, key: "state", value: "订单状态", title: "订单状态" },
         { is_show: true, key: "crt_name", value: "制单人", title: "制单人" },
-        {
-          is_show: true,
-          key: "crt_time",
-          value: "订单创建时间",
-          title: "订单创建时间",
-        },
         { is_show: true, key: "set", value: "操作", title: "操作" },
       ],
       sub_tableModalTableData: [],
@@ -735,6 +757,7 @@ export default {
       showSortModal: false,
       sortList: [{ sort: null, level: 1, value: "" }],
       headerList: [],
+      leadingList: [],
     };
   },
   computed: {
@@ -828,6 +851,28 @@ export default {
           optionValue: "id",
           option: this.users,
         },
+        {
+          title: "负责人",
+          name: "Select",
+          placeholder: "请选择负责人",
+          filterable: true,
+          value: "",
+          serverName: "leading_name",
+          optionName: "leading_name",
+          optionValue: "leading_name",
+          option: this.leadingList,
+        },
+        {
+          title: "订单创建时间",
+          start_server: "start_time",
+          end_server: "end_time",
+          name: "Input",
+          start_value: "",
+          end_value: "",
+          isDate: true,
+          start_placeholder: "开始日期",
+          end_placeholder: "结束日期",
+        },
       ];
     },
     computedTable() {
@@ -855,6 +900,10 @@ export default {
     this.axios.get("/api/warning_list").then((res) => {
       this.warningList = res.data.data;
     });
+    // 获取负责人
+    this.axios.get("/api/custom__detail_list").then((res) => {
+      this.leadingList = res.data;
+    });
     this.axios("/api/user", { params: { type: 1 } }).then(
       (res) => (this.users = res.data.data)
     );
@@ -867,7 +916,12 @@ export default {
     } else {
       this.$route.meta.keepAlive = true;
     }
-    next();
+    next()
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm=>{
+      vm.getData(vm.proxyObj)
+    })
   },
   methods: {
     init(row) {
@@ -889,23 +943,26 @@ export default {
           }
           this.tableData = res.data.data;
           this.total = res.data.total;
-          this.tableModalTableData =
-            res.data.tableSet.tableSet.length < 1
-              ? this.tableModalTableData
-              : res.data.tableSet.tableSet;
-          this.formModalTableData =
-            res.data.tableSet.formSet.length < 1
-              ? this.formModalTableData
-              : res.data.tableSet.formSet;
-          this.sub_formModalTableData = JSON.parse(
-            JSON.stringify(this.formModalTableData)
-          );
-          this.sub_tableModalTableData = JSON.parse(
-            JSON.stringify(this.tableModalTableData)
-          );
+          this.handleSetHeader(res);
         }
       });
     },
+    handleSetHeader(res) {
+      this.tableModalTableData =
+        res.data.tableSet.tableSet.length < 1
+          ? this.tableModalTableData
+          : res.data.tableSet.tableSet;
+      this.formModalTableData =
+        res.data.tableSet.formSet.length < 1
+          ? this.formModalTableData
+          : res.data.tableSet.formSet;
+      this.sub_formModalTableData = JSON.parse(
+        JSON.stringify(this.formModalTableData)
+      );
+      this.sub_tableModalTableData = JSON.parse(
+        JSON.stringify(this.tableModalTableData)
+      );
+    },
     changePage(e) {
       this.page_index = e;
       this.proxyObj.page_index = this.page_index;
@@ -1092,12 +1149,10 @@ export default {
             tableSet: this.tableModalTableData,
           },
         },
-      })
-        .then((res) => {
-          this.$Message.success(res.msg);
-          this.init(this.proxyObj);
-        })
-        .catch((err) => {});
+      }).then((res) => {
+        this.$Message.success(res.msg);
+        this.init(this.proxyObj);
+      });
     },
   },
 };

+ 1 - 1
vue.config.js

@@ -2,7 +2,7 @@ const axios_default_ip =
     process.env.NODE_ENV == 'dev' ?
     'http://121.41.102.225:82' :
     process.env.NODE_ENV == 'test-prd' ?
-    'http://121.41.102.225:82' //测试服
+    'http://124.71.176.88:882' //测试服
     :
     process.env.NODE_ENV == 'prd_other' ?
     'http://121.37.173.82:82' //森兰九鼎