cz il y a 1 an
Parent
commit
159bdd1eeb

+ 91 - 68
src/components/process/EHSD/Purchase.vue

@@ -319,7 +319,7 @@
                   width: 100%;
                   font-weight: 700;
                   background: #eee;
-                 padding: 10px 0px;
+                  padding: 10px 0px;
                 "
                 :gutter="5"
                 type="flex"
@@ -1431,6 +1431,19 @@ defineExpose({
   handleSubmit,
 });
 onMounted(() => {
+  if (route.query && route.query.dataResourceId && !route.query.processType) {
+    proxy
+      .post("/contract/detail", { id: route.query.dataResourceId })
+      .then((res) => {
+        contractData.value = [
+          {
+            contractCode: res.code,
+            claimTime: res.createTime,
+          },
+        ];
+        getAuxiliaryData();
+      });
+  }
   if (props.queryData.ids) {
     proxy.post("/delivery/page", { ids: props.queryData.ids }).then((res) => {
       formData.data.dataResource = props.queryData.type;
@@ -1521,7 +1534,20 @@ onMounted(() => {
       for (const key in res) {
         formData.data[key] = res[key];
       }
-
+      // 回显关联销售合同
+      if (formData.data.dataResourceId) {
+        proxy
+          .post("/contract/detail", { id: formData.data.dataResourceId })
+          .then((res) => {
+            contractData.value = [
+              {
+                contractCode: res.code,
+                claimTime: res.createTime,
+              },
+            ];
+            getAuxiliaryData();
+          });
+      }
       proxy
         .post("/fileInfo/getList", {
           businessIdList: [businessId],
@@ -1751,6 +1777,10 @@ const getStyle = (text) => {
 const emit = defineEmits(["auxiliaryChange"]);
 let auxiliaryData = ref([
   {
+    label: "关联销售合同",
+    data: [],
+  },
+  {
     label: "供应商最近采购",
     data: [],
   },
@@ -1762,6 +1792,7 @@ let auxiliaryData = ref([
 const auxiliaryChange = (data) => {
   emit("auxiliaryChange", data);
 };
+const contractData = ref([]);
 
 const getAuxiliaryData = (supplyId, productIdList) => {
   if (supplyId && productIdList.length > 0) {
@@ -1771,8 +1802,6 @@ const getAuxiliaryData = (supplyId, productIdList) => {
         productIdList: productIdList,
       })
       .then((res) => {
-        // 获取数组长度
-        let dataLength = auxiliaryData.value.length;
         // 供应商最近采购
         const recentlyArr = [
           {
@@ -1792,23 +1821,21 @@ const getAuxiliaryData = (supplyId, productIdList) => {
             num: 1,
           },
         ];
-        auxiliaryData.value[dataLength - 2].data = res.purchaseList.map(
-          (x, index) => {
-            return recentlyArr.map((y, sonIndex) => {
-              let obj = { ...y };
-              let value = "";
-              if (sonIndex === 0) {
-                value = x.code;
-              } else if (sonIndex === 1) {
-                value = x.createTime;
-              } else {
-                value = x.currency + " " + proxy.moneyFormat(x.amount, 2);
-              }
-              obj.value = value;
-              return obj;
-            });
-          }
-        );
+        auxiliaryData.value[1].data = res.purchaseList.map((x, index) => {
+          return recentlyArr.map((y, sonIndex) => {
+            let obj = { ...y };
+            let value = "";
+            if (sonIndex === 0) {
+              value = x.code;
+            } else if (sonIndex === 1) {
+              value = x.createTime;
+            } else {
+              value = x.currency + " " + proxy.moneyFormat(x.amount, 2);
+            }
+            obj.value = value;
+            return obj;
+          });
+        });
         // 产品价格
         const arrConfig = [
           {
@@ -1832,57 +1859,53 @@ const getAuxiliaryData = (supplyId, productIdList) => {
             num: 1,
           },
         ];
-        auxiliaryData.value[dataLength - 1].data = res.productPriceList.map(
-          (x, index) => {
-            return arrConfig.map((y, sonIndex) => {
-              let obj = { ...y };
-              let value = "";
-              if (sonIndex === 0) {
-                value = x.name;
-              } else if (sonIndex === 1) {
-                value = x.lastPrice;
-              } else if (sonIndex === 2) {
-                value = x.maxPrice;
-              } else {
-                value = x.minPrice;
-              }
-              obj.value = value;
-              return obj;
-            });
-          }
-        );
+        auxiliaryData.value[2].data = res.productPriceList.map((x, index) => {
+          return arrConfig.map((y, sonIndex) => {
+            let obj = { ...y };
+            let value = "";
+            if (sonIndex === 0) {
+              value = x.name;
+            } else if (sonIndex === 1) {
+              value = x.lastPrice;
+            } else if (sonIndex === 2) {
+              value = x.maxPrice;
+            } else {
+              value = x.minPrice;
+            }
+            obj.value = value;
+            return obj;
+          });
+        });
         auxiliaryChange(auxiliaryData.value);
       });
   } else {
-    if (props.queryData.type === "handoverSlip" && props.queryData.arr) {
-      let arrConfig = [
-        {
-          label: "合同编号",
-          value: "",
-          fn: () => {},
-          num: 1,
-        },
-        {
-          label: "下单日期",
-          value: "",
-          num: 1,
-        },
-      ];
-      auxiliaryData.value[0].data = contractData.value.map((x, index) => {
-        return arrConfig.map((y, sonIndex) => {
-          let obj = { ...y };
-          let value = "";
-          if (sonIndex === 0) {
-            value = contractData.value[index].contractCode;
-          } else if (sonIndex === 1) {
-            value = contractData.value[index].claimTime;
-          }
-          obj.value = value;
-          return obj;
-        });
+    let arrConfig = [
+      {
+        label: "合同编号",
+        value: "",
+        fn: () => {},
+        num: 1,
+      },
+      {
+        label: "下单日期",
+        value: "",
+        num: 1,
+      },
+    ];
+    auxiliaryData.value[0].data = contractData.value.map((x, index) => {
+      return arrConfig.map((y, sonIndex) => {
+        let obj = { ...y };
+        let value = "";
+        if (sonIndex === 0) {
+          value = contractData.value[index].contractCode;
+        } else if (sonIndex === 1) {
+          value = contractData.value[index].claimTime;
+        }
+        obj.value = value;
+        return obj;
       });
-      auxiliaryChange(auxiliaryData.value);
-    }
+    });
+    auxiliaryChange(auxiliaryData.value);
   }
 };
 

+ 19 - 2
src/views/EHSD/productLibrary/companyProduct/index.vue

@@ -88,6 +88,21 @@
           :rules="rules"
           ref="byform"
         >
+          <template #nameEnglish>
+            <div style="width: 100%">
+              <!-- <el-input
+                v-model="formData.data.nameEnglish"
+                placeholder="请输入"
+                onkeyup="value = value.replace(/[^\w\.\/]/gi, '')"
+              /> -->
+              <el-input
+                v-model="formData.data.nameEnglish"
+                placeholder="请输入"
+                :formatter="(val) => val.replace(/[\u4E00-\u9FA5]/g, '')"
+                :parser="(val) => val.replace(/[\u4E00-\u9FA5]/g, '')"
+              ></el-input>
+            </div>
+          </template>
           <template #productPic>
             <div>
               <el-upload
@@ -180,6 +195,9 @@ let rules = ref({
     { required: true, message: "请选择产品分类", trigger: "change" },
   ],
   name: [{ required: true, message: "请输入产品名称", trigger: "blur" }],
+  nameEnglish: [
+    { required: true, message: "请输入产品英文名", trigger: "blur" },
+  ],
   productLong: [
     { required: true, message: "请输入长 (cm)", trigger: "blur" },
   ],
@@ -364,11 +382,10 @@ const formConfig = computed(() => {
     {
       type: "input",
       prop: "nameEnglish",
+      slotName: "nameEnglish",
       label: "英文名",
-      itemWidth: 100,
       disabled: false,
     },
-
     {
       type: "slot",
       slotName: "productPic",

+ 11 - 25
src/views/EHSD/saleContract/priceSheetEHSD/index.vue

@@ -100,9 +100,7 @@
           <div style="width: 50%">
             <div style="color: #409eff">BUYER:</div>
             <div>
-              {{
-                getLabel(printDetails.buyCorporationId, customerList, "name")
-              }}
+              {{ printDetails.buyCorporationName }}
             </div>
             <div style="padding: 16px 0">
               {{ printDetails.buyCountryName }},{{
@@ -154,7 +152,7 @@
             >
               <div style="color: #409eff">TERMS OF DELIVERY:</div>
               <div>
-                {{ dictValueLabel(printDetails.tradeMethods, tradeMethods) }}
+                {{ printDetails.remark }}
               </div>
             </div>
             <div
@@ -181,6 +179,7 @@
           <div style="display: flex; width: 100%">
             <div style="width: 33%; border-right: 1px solid black">
               <div style="color: #409eff">DELIVERY TIME:</div>
+              <div>{{ printDetails.deliveryTime }}</div>
             </div>
             <div style="width: 67%">
               <div style="color: #409eff">TERMS OF PAYMENT:</div>
@@ -358,9 +357,7 @@
           <div style="width: 50%">
             <div style="color: #409eff">CONFIRMED BY BUYER:</div>
             <div>
-              {{
-                getLabel(printDetails.buyCorporationId, customerList, "name")
-              }}
+              {{ printDetails.buyCorporationName }}
             </div>
           </div>
         </div>
@@ -383,7 +380,6 @@ import moment from "moment";
 const { proxy } = getCurrentInstance();
 const accountList = ref([]);
 const corporationList = ref([]);
-const customerList = ref([]);
 const tradeMethods = ref([]);
 const accountCurrency = ref([]);
 const shippingMethod = ref([]);
@@ -447,12 +443,9 @@ const config = computed(() => {
     {
       attrs: {
         label: "归属公司",
-        prop: "sellCorporationId",
+        prop: "sellCorporationName",
         "min-width": 220,
       },
-      render(type) {
-        return proxy.dictValueLabel(type, corporationList.value);
-      },
     },
     {
       attrs: {
@@ -471,12 +464,9 @@ const config = computed(() => {
     {
       attrs: {
         label: "客户名称",
-        prop: "buyCorporationId",
+        prop: "buyCorporationName",
         "min-width": 220,
       },
-      render(type) {
-        return proxy.dictValueLabel(type, customerList.value);
-      },
     },
     {
       attrs: {
@@ -558,15 +548,7 @@ const getDict = () => {
       };
     });
   });
-  proxy.post("/customer/page", { pageNum: 1, pageSize: 999 }).then((res) => {
-    customerList.value = res.rows.map((item) => {
-      return {
-        ...item,
-        label: item.name,
-        value: item.id,
-      };
-    });
-  });
+
   proxy
     .getDictOne(["trade_mode", "account_currency", "shipping_method"])
     .then((res) => {
@@ -668,6 +650,10 @@ const clickPrint = (row) => {
   openPrint.value = true;
   proxy.post("/saleQuotation/detail", { id: row.id }).then((res) => {
     printDetails.value = res;
+    if (printDetails.value.ehsdJson) {
+      let ehsdJson = JSON.parse(printDetails.value.ehsdJson);
+      printDetails.value.deliveryTime = ehsdJson.deliveryTime;
+    }
   });
 };
 const clickDownload = () => {

+ 17 - 7
src/views/index.vue

@@ -2,7 +2,7 @@
   <div class="app-container home">
     <div class="stat-warp">
       <ul>
-        <li class="theme1" @click="toUrl('DealWith', 1)">
+        <li class="theme1" @click="toUrl('Backlog', 1)">
           <div class="num">{{ toBeProcessedData.total }}</div>
           <div class="label">我的待审批</div>
           <div class="icon-box">
@@ -163,16 +163,15 @@ const pushProcessApprovalOne = (row) => {
 const { proxy } = getCurrentInstance();
 const getData = () => {
   proxy
-    .post("flowExample/getToBeProcessedPage", {
+    .post("/flowExample/getToBeProcessedPage", {
       pageNum: 1,
       pageSize: 4,
-      status: "1",
     })
     .then((res) => {
       toBeProcessedData.value = res;
     });
   proxy
-    .post("flowExample/getHaveInitiatedPage", {
+    .post("/flowExample/getHaveInitiatedPage", {
       pageNum: 1,
       pageSize: 4,
       status: "1",
@@ -191,9 +190,20 @@ const getData = () => {
 };
 const toUrl = (name, type) => {
   //获取name为name的路由的基础信息
-  const route = proxy.$router.resolve({ name: name, params: {} });
-  console.log(route);
-  proxy.$router.push(route.path + "?type=" + type);
+  // const route = proxy.$router.resolve({ name: name, params: {} });
+  if (type === 1) {
+    proxy.$router.push({
+      name,
+      query: {},
+    });
+  } else if (type === 2) {
+    proxy.$router.push({
+      name,
+      query: {
+        type: 1,
+      },
+    });
+  }
 };
 getData();
 // ​

+ 28 - 202
src/views/process/dealWith/index.vue

@@ -11,7 +11,6 @@
         :selectConfig="selectConfig"
         :table-events="{
           //element talbe事件都能传
-          select: select,
         }"
         @get-list="getList"
       >
@@ -20,63 +19,23 @@
         </template>
       </byTable>
     </div>
-    <el-dialog
-      :title="modalType == 'add' ? '新增' : '编辑'"
-      v-model="dialogVisible"
-      width="400"
-      v-loading="loading"
-    >
-      <byForm
-        :formConfig="formConfig"
-        :formOption="formOption"
-        v-model="formData.data"
-        :rules="rules"
-        ref="byform"
-      >
-      </byForm>
-      <template #footer>
-        <el-button @click="dialogVisible = false" size="large">取 消</el-button>
-        <el-button
-          type="primary"
-          @click="submitForm('byform')"
-          size="large"
-          :loading="submitLoading"
-        >
-          确 定
-        </el-button>
-      </template>
-    </el-dialog>
   </div>
 </template>
     
-  <script setup name="DealWith">
-/* eslint-disable vue/no-unused-components */
-import { ElMessage, ElMessageBox } from "element-plus";
+<script setup name="DealWith">
 import byTable from "@/components/byTable/index";
-import byForm from "@/components/byForm/index";
 import { computed, defineComponent, ref } from "vue";
 const loading = ref(false);
-const submitLoading = ref(false);
-const dictCommonModal = ref(false);
 const sourceList = ref({
   data: [],
   pagination: {
     total: 3,
     pageNum: 1,
     pageSize: 10,
-    status: 2,
+    status: 3,
   },
 });
-let dialogVisible = ref(false);
-let roomDialogVisible = ref(false);
-let modalType = ref("add");
-let rules = ref({
-  classifyName: [
-    { required: true, message: "请输入功能模块", trigger: "blur" },
-  ],
-  flowKey: [{ required: true, message: "请输入流程标识", trigger: "blur" }],
-  flowName: [{ required: true, message: "请输入流程名称", trigger: "blur" }],
-});
+
 const { proxy } = getCurrentInstance();
 const selectConfig = computed(() => {
   return [
@@ -88,9 +47,14 @@ const selectConfig = computed(() => {
     {
       label: "流程状态",
       prop: "status",
+      isShowAll: false,
       data: [
         {
-          label: "已发起",
+          label: "已发起(待办理)",
+          value: "1",
+        },
+        {
+          label: "已发起(已办理)",
           value: "2",
         },
         {
@@ -153,7 +117,7 @@ const config = computed(() => {
         return [
           {
             attrs: {
-              label: row.status == 0 || row.status == 1 ? "办理" : "查看",
+              label: "查看",
               type: "primary",
               text: true,
               bg: true,
@@ -161,44 +125,17 @@ const config = computed(() => {
             },
             el: "button",
             click() {
-              if (row.status != 1 && row.status != 0) {
-                proxy.$router.push({
-                  path: "/platform_manage/process/processApproval",
-                  query: {
-                    flowKey: row.flowKey,
-                    id: row.id,
-                    processType: 20,
-                    version: row.version,
-                    businessId: row.businessId,
-                    submitType: "10",
-                  },
-                });
-                return;
-              }
-              proxy
-                .post("flowExample/getApprovalRecord", { id: row.id })
-                .then((res) => {
-                  if (res.recordList.length > 0) {
-                    let data = res.recordList.filter(
-                      (item) => item.status === 2
-                    );
-                    let nodeType = 0;
-                    if (data && data.length > 0) {
-                      nodeType = data[0].nodeType;
-                    }
-                    proxy.$router.push({
-                      path: "/platform_manage/process/processApproval",
-                      query: {
-                        flowKey: row.flowKey,
-                        id: row.id,
-                        processType: nodeType == 1 ? 30 : 10,
-                        businessId: row.businessId,
-                        version: row.version,
-                        submitType: "10",
-                      },
-                    });
-                  }
-                });
+              proxy.$router.push({
+                path: "/platform_manage/process/processApproval",
+                query: {
+                  flowKey: row.flowKey,
+                  id: row.id,
+                  processType: 20,
+                  version: row.version,
+                  businessId: row.businessId,
+                  submitType: "10",
+                },
+              });
             },
           },
         ];
@@ -206,62 +143,9 @@ const config = computed(() => {
     },
   ];
 });
-let dtlData = reactive({
-  data: {},
-});
-let formData = reactive({
-  data: {},
-  treeData: [],
-});
-const formOption = reactive({
-  inline: true,
-  labelWidth: 100,
-  itemWidth: 100,
-  rules: [],
-});
-const byform = ref(null);
-const treeData = ref([]);
-const formConfig = computed(() => {
-  return [
-    {
-      type: "input",
-      prop: "classifyName",
-      label: "功能模块",
-    },
-    {
-      type: "input",
-      prop: "flowKey",
-      label: "流程标识",
-      isHide: modalType.value == "edit",
-    },
-    {
-      type: "input",
-      prop: "flowName",
-      label: "流程名称",
-    },
-  ];
-});
-
-const flowJump = (row, type) => {
-  proxy
-    .post("/flowProcess/jump", {
-      flowId: row.id,
-      handleType: type,
-      version: row.version,
-      data: {},
-    })
-    .then((message) => {
-      console.log(message);
-      if (message) {
-        ElMessage.success("操作成功");
-        getList();
-      }
-    });
-};
 
 const getFlowType = () => {
   proxy.post("/flowExample/getFlowType").then((message) => {
-    console.log(message);
     selectConfig.value[0].data = message.map((item) => {
       return {
         label: item.flowName,
@@ -271,8 +155,9 @@ const getFlowType = () => {
   });
 };
 getFlowType();
+
 const getUrlObj = {
-  1: "/flowExample/getToBeProcessedPage",
+  1: "/flowExample/getHaveInitiatedPage",
   2: "/flowExample/getHaveInitiatedPage",
   3: "/flowExample/getProcessedPage",
 };
@@ -286,7 +171,6 @@ const getList = async (req) => {
       sourceList.value.pagination
     )
     .then((message) => {
-      console.log(message);
       sourceList.value.data = message.rows;
       sourceList.value.pagination.total = message.total;
       setTimeout(() => {
@@ -295,71 +179,13 @@ const getList = async (req) => {
     });
 };
 
-const openModal = () => {
-  dialogVisible.value = true;
-  modalType.value = "add";
-  formData.data = {};
-};
-const selection = ref({
-  data: [],
-});
-const select = (_selection, row) => {
-  selection.value.data = _selection;
-  console.log(_selection.length);
-};
-
-const tree = ref(null);
-const submitTree = () => {
-  proxy
-    .post("/tenantInfo/bindingMenu", {
-      tenantId: selection.value.data[0].tenantId,
-      menuIdList: tree.value.getCheckedKeys(),
-    })
-    .then((res) => {
-      ElMessage({
-        message: "保存成功",
-        type: "success",
-      });
-      roomDialogVisible.value = false;
-    });
-};
-
-const submitForm = () => {
-  byform.value.handleSubmit((valid) => {
-    submitLoading.value = true;
-    proxy.post("/flowInfo/" + modalType.value, formData.data).then((res) => {
-      ElMessage({
-        message: modalType.value == "add" ? "添加成功" : "编辑成功",
-        type: "success",
-      });
-      dialogVisible.value = false;
-      submitLoading.value = false;
-      getList();
-    });
-  });
-};
-
-const getDtl = (row) => {
-  formData.data = { ...row };
-  modalType.value = "edit";
-  dialogVisible.value = true;
-};
-
-const changeStatus = (row) => {
-  modalType.value = "edit";
-  proxy
-    .post("/flowInfo/edit", { ...row, status: row.status === 0 ? 1 : 0 })
-    .then((res) => {
-      ElMessage({
-        message: "操作成功",
-        type: "success",
-      });
-      getList();
-    });
-};
 onMounted(() => {
   const route = useRoute();
-  sourceList.value.pagination.status = route.query.type ? route.query.type : 1;
+  if (route.query && route.query.type) {
+    sourceList.value.pagination.status = route.query.type;
+  } else {
+    sourceList.value.pagination.status = 3;
+  }
   getList();
 });
 </script>

+ 192 - 47
src/views/salesMange/saleContract/salesDocumentary/index.vue

@@ -1,12 +1,28 @@
 <template>
   <div class="content">
-    <el-form :inline="true" :model="sourceList.pagination" class="demo-form-inline">
+    <el-form
+      :inline="true"
+      :model="sourceList.pagination"
+      class="demo-form-inline"
+    >
       <el-form-item label="销售合同号:" prop="code">
-        <el-input v-model="sourceList.pagination.code" placeholder="请输入销售合同号" />
+        <el-input
+          v-model="sourceList.pagination.code"
+          placeholder="请输入销售合同号"
+        />
       </el-form-item>
       <el-form-item label="业务员:" prop="userId">
-        <el-select v-model="sourceList.pagination.userId" placeholder="请选择业务员">
-          <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
+        <el-select
+          v-model="sourceList.pagination.userId"
+          placeholder="请选择业务员"
+        >
+          <el-option
+            v-for="item in userList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -14,23 +30,60 @@
       </el-form-item>
     </el-form>
     <div style="padding: 10px 20px; width: 100%; box-sizing: border-box">
-      <div style="width: 100%; display: flex; padding-bottom: 5px; overflow-x: auto" class="topScrollDom" @scroll="handleScroll($event, true)">
-        <div v-for="(item, index) in purchaseTrackType" :key="index" style="display: flex; align-items: center">
-          <div style="width: 200px; height: 80px; position: relative" @click="selectRegion(item)">
-            <div :class="selectRecordDocumentaryId === item.id ? 'regionSelect' : 'regionNoSelect'" style="cursor: pointer">
-              <div style="color: #333333; font-size: 13px; font-weight: 700">{{ item.count }}</div>
-              <div style="color: #333333; font-size: 12px; font-weight: 700">{{ item.name }}</div>
-              <div class="right-bottom" style="position: absolute; right: 0; bottom: 0">
+      <div
+        style="
+          width: 100%;
+          display: flex;
+          padding-bottom: 5px;
+          overflow-x: auto;
+        "
+        class="topScrollDom"
+        @scroll="handleScroll($event, true)"
+      >
+        <div
+          v-for="(item, index) in purchaseTrackType"
+          :key="index"
+          style="display: flex; align-items: center"
+        >
+          <div
+            style="width: 200px; height: 80px; position: relative"
+            @click="selectRegion(item)"
+          >
+            <div
+              :class="
+                selectRecordDocumentaryId === item.id
+                  ? 'regionSelect'
+                  : 'regionNoSelect'
+              "
+              style="cursor: pointer"
+            >
+              <div style="color: #333333; font-size: 13px; font-weight: 700">
+                {{ item.count }}
+              </div>
+              <div style="color: #333333; font-size: 12px; font-weight: 700">
+                {{ item.name }}
+              </div>
+              <div
+                class="right-bottom"
+                style="position: absolute; right: 0; bottom: 0"
+              >
                 {{ index + 1 }}
               </div>
             </div>
-            <el-icon class="beacon" v-if="index < purchaseTrackType.length - 1"><CaretRight /></el-icon>
+            <el-icon class="beacon" v-if="index < purchaseTrackType.length - 1"
+              ><CaretRight
+            /></el-icon>
           </div>
         </div>
       </div>
     </div>
     <div class="main-content" v-loading="loading">
-      <el-card class="box-card" v-for="(item, index) in sourceList.data" :key="index" style="margin-bottom: 20px">
+      <el-card
+        class="box-card"
+        v-for="(item, index) in sourceList.data"
+        :key="index"
+        style="margin-bottom: 20px"
+      >
         <template #header>
           <el-row>
             <el-col :span="4">
@@ -40,7 +93,7 @@
               </span>
             </el-col>
             <el-col :span="4">
-              <span>业务员: {{ item.userName }}</span>
+              <span>业务员: {{ item.nickName }}</span>
             </el-col>
             <el-col :span="4">
               <span>客户名称: {{ item.customerName }}</span>
@@ -50,31 +103,79 @@
             </el-col>
           </el-row>
         </template>
-        <div style="overflow-x: auto; width: 100%" class="scrollDom" @scroll="handleScroll($event, false, index)">
+        <div
+          style="overflow-x: auto; width: 100%"
+          class="scrollDom"
+          @scroll="handleScroll($event, false, index)"
+        >
           <el-steps :space="200" align-center>
-            <el-step v-for="(itemType, key) in purchaseTrackType" :key="key" :title="itemType.name" :status="getStatus(itemType, item)" />
+            <el-step
+              v-for="(itemType, key) in purchaseTrackType"
+              :key="key"
+              :title="itemType.name"
+              :status="getStatus(itemType, item)"
+            />
           </el-steps>
           <div style="display: flex">
-            <div v-for="(itemType, key) in purchaseTrackType" :key="key" style="width: 200px !important; min-width: 200px !important">
+            <div
+              v-for="(itemType, key) in purchaseTrackType"
+              :key="key"
+              style="width: 200px !important; min-width: 200px !important"
+            >
               <div style="padding: 8px 0; text-align: center">
-                <el-icon style="color: #409eff; cursor: pointer" @click="clickAdd(item, itemType)"><EditPen /></el-icon>
+                <el-icon
+                  style="color: #409eff; cursor: pointer"
+                  @click="clickAdd(item, itemType)"
+                  ><EditPen
+                /></el-icon>
               </div>
-              <div style="text-align: center" v-if="item.documentaryRecord && item.documentaryRecord[itemType.id]">
+              <div
+                style="text-align: center"
+                v-if="
+                  item.documentaryRecord && item.documentaryRecord[itemType.id]
+                "
+              >
                 <el-tooltip class="box-item" effect="light" placement="bottom">
                   <template #content>
-                    <div style="max-width: 400px; max-height: 50vh; overflow-y: auto">
+                    <div
+                      style="
+                        max-width: 400px;
+                        max-height: 50vh;
+                        overflow-y: auto;
+                      "
+                    >
                       <el-timeline>
                         <el-timeline-item
-                          v-for="(activity, index) in item.documentaryRecord[itemType.id]"
+                          v-for="(activity, index) in item.documentaryRecord[
+                            itemType.id
+                          ]"
                           :key="index"
                           :timestamp="activity.createTime"
-                          :hide-timestamp="true">
+                          :hide-timestamp="true"
+                        >
                           <div style="background-color: #e2fbe8; padding: 8px">
-                            <div style="font-size: 12px">{{ activity.createTime }}</div>
-                            <div style="font-size: 12px" v-html="getStyle(activity.remark)"></div>
-                            <div v-if="activity.fileList && activity.fileList.length > 0">
-                              <div v-for="(file, index) in activity.fileList" :key="index">
-                                <a style="color: #409eff; cursor: pointer" @click="openFile(file.fileUrl)">{{ file.fileName }}</a>
+                            <div style="font-size: 12px">
+                              {{ activity.createTime }}
+                            </div>
+                            <div
+                              style="font-size: 12px"
+                              v-html="getStyle(activity.remark)"
+                            ></div>
+                            <div
+                              v-if="
+                                activity.fileList &&
+                                activity.fileList.length > 0
+                              "
+                            >
+                              <div
+                                v-for="(file, index) in activity.fileList"
+                                :key="index"
+                              >
+                                <a
+                                  style="color: #409eff; cursor: pointer"
+                                  @click="openFile(file.fileUrl)"
+                                  >{{ file.fileName }}</a
+                                >
                               </div>
                             </div>
                           </div>
@@ -82,7 +183,15 @@
                       </el-timeline>
                     </div>
                   </template>
-                  <span style="color: #409eff; cursor: pointer; padding: 8px 0; font-size: 12px">跟单详情</span>
+                  <span
+                    style="
+                      color: #409eff;
+                      cursor: pointer;
+                      padding: 8px 0;
+                      font-size: 12px;
+                    "
+                    >跟单详情</span
+                  >
                 </el-tooltip>
               </div>
             </div>
@@ -99,14 +208,32 @@
         :page-size="sourceList.pagination.pageSize"
         :total="sourceList.pagination.total"
         @size-change="handleSizeChange"
-        @current-change="handlePageChange" />
+        @current-change="handlePageChange"
+      />
     </el-row>
 
-    <el-dialog :title="title" v-if="dialogVisible" v-model="dialogVisible" width="600" v-loading="loadingDialog">
-      <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit">
+    <el-dialog
+      :title="title"
+      v-if="dialogVisible"
+      v-model="dialogVisible"
+      width="600"
+      v-loading="loadingDialog"
+    >
+      <byForm
+        :formConfig="formConfig"
+        :formOption="formOption"
+        v-model="formData.data"
+        :rules="rules"
+        ref="submit"
+      >
         <template #completionTime>
           <div>
-            <el-date-picker v-model="formData.data.completionTime" type="datetime" placeholder="请选择完成时间" value-format="YYYY-MM-DD HH:mm:ss" />
+            <el-date-picker
+              v-model="formData.data.completionTime"
+              type="datetime"
+              placeholder="请选择完成时间"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            />
           </div>
         </template>
         <template #file>
@@ -117,7 +244,8 @@
               :data="uploadData"
               multiple
               :before-upload="uploadFile"
-              :on-preview="onPreviewFile">
+              :on-preview="onPreviewFile"
+            >
               <el-button>选择</el-button>
             </el-upload>
           </div>
@@ -125,7 +253,9 @@
       </byForm>
       <template #footer>
         <el-button @click="dialogVisible = false" size="large">取 消</el-button>
-        <el-button type="primary" @click="submitForm()" size="large">确 定</el-button>
+        <el-button type="primary" @click="submitForm()" size="large"
+          >确 定</el-button
+        >
       </template>
     </el-dialog>
   </div>
@@ -182,16 +312,22 @@ const handleScroll = (event, flag, index) => {
   }
 };
 const getDict = () => {
-  proxy.get("/tenantUser/list", { pageNum: 1, pageSize: 10000, tenantId: useUserStore().user.tenantId }).then((res) => {
-    if (res.rows && res.rows.length > 0) {
-      userList.value = res.rows.map((item) => {
-        return {
-          label: item.nickName,
-          value: item.userId,
-        };
-      });
-    }
-  });
+  proxy
+    .get("/tenantUser/list", {
+      pageNum: 1,
+      pageSize: 10000,
+      tenantId: useUserStore().user.tenantId,
+    })
+    .then((res) => {
+      if (res.rows && res.rows.length > 0) {
+        userList.value = res.rows.map((item) => {
+          return {
+            label: item.nickName,
+            value: item.userId,
+          };
+        });
+      }
+    });
 };
 const selectRecordDocumentaryId = ref("");
 const getList = () => {
@@ -235,7 +371,10 @@ const handlePageChange = (val) => {
 };
 const selectRegion = (item) => {
   sourceList.value.pagination.pageNum = 1;
-  if (selectRecordDocumentaryId.value && selectRecordDocumentaryId.value === item.id) {
+  if (
+    selectRecordDocumentaryId.value &&
+    selectRecordDocumentaryId.value === item.id
+  ) {
     selectRecordDocumentaryId.value = "";
   } else {
     selectRecordDocumentaryId.value = item.id;
@@ -243,7 +382,11 @@ const selectRegion = (item) => {
   getList();
 };
 const getStatus = (typeItem, row) => {
-  if (row.documentaryRecord && row.documentaryRecord[typeItem.id] && row.documentaryRecord[typeItem.id].length > 0) {
+  if (
+    row.documentaryRecord &&
+    row.documentaryRecord[typeItem.id] &&
+    row.documentaryRecord[typeItem.id].length > 0
+  ) {
     return "success";
   }
   return "process";
@@ -288,7 +431,9 @@ const formConfig = computed(() => {
   ];
 });
 const rules = ref({
-  completionTime: [{ required: true, message: "请选择完成时间", trigger: "change" }],
+  completionTime: [
+    { required: true, message: "请选择完成时间", trigger: "change" },
+  ],
 });
 const clickAdd = (item, row) => {
   title.value = "编辑: " + row.name;