Bladeren bron

feature(优化): 1、项目详情添加产品信息,2、项目编辑和合同编辑不允许修改销售工程师

ZZH-wl 2 jaren geleden
bovenliggende
commit
12e4387984

+ 1 - 0
src/views/contract/components/Edit.vue

@@ -74,6 +74,7 @@
           <el-form-item label="销售工程师" prop="inchargeName">
             <el-input
               v-model="editForm.inchargeName"
+              :disabled="editForm.id"
               placeholder="请选择销售工程师"
               readonly
               suffix-icon="el-icon-search"

+ 6 - 1
src/views/proj/business/components/BusinessEdit.vue

@@ -54,7 +54,12 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="销售工程师" prop="saleName">
-            <el-input v-model="form.saleName" readonly suffix-icon="el-icon-search" @focus="handleSelectSale" />
+            <el-input
+              v-model="form.saleName"
+              :disabled="form.id"
+              readonly
+              suffix-icon="el-icon-search"
+              @focus="handleSelectSale" />
           </el-form-item>
         </el-col>
         <el-col :span="8">

+ 16 - 6
src/views/proj/business/components/ProductTable.vue

@@ -13,13 +13,14 @@
         :key="index"
         align="center"
         :label="item.label"
-        :min-width="item.width"
         :prop="item.prop"
-        show-overflow-tooltip>
+        show-overflow-tooltip
+        :width="item.width">
         <template #default="{ row }">
           <span v-if="item.prop == 'prodPrice'">
             <amount-input
               v-model.trim="row.prodPrice"
+              :disabled="isLook"
               placeholder="请输入金额"
               :value="row.prodPrice"
               @change="handleChange(row)" />
@@ -27,6 +28,7 @@
           <span v-else-if="item.prop == 'prodNum'">
             <el-input
               v-model.trim="row.prodNum"
+              :disabled="isLook"
               :min="1"
               onkeyup="value=value.replace(/[^\d]/g,'')"
               size="mini"
@@ -38,7 +40,7 @@
           <span v-else>{{ row[item.prop] }}</span>
         </template>
       </el-table-column>
-      <el-table-column align="center" label="操作" width="68px">
+      <el-table-column v-if="!isLook" align="center" label="操作" width="68px">
         <template #default="{ row }">
           <el-button type="text" @click="handleDel(row)">删除</el-button>
         </template>
@@ -68,6 +70,7 @@
           return []
         },
       },
+      isLook: Boolean,
     },
     data() {
       return {
@@ -75,7 +78,7 @@
         columns: [
           {
             label: '产品编码',
-            width: 'auto',
+            width: '160px',
             prop: 'prodCode',
           },
           {
@@ -85,7 +88,7 @@
           },
           {
             label: '产品类别',
-            width: 'auto',
+            width: '100px',
             prop: 'prodClass',
           },
           {
@@ -95,7 +98,7 @@
           },
           {
             label: '数量',
-            width: 'auto',
+            width: '120px',
             prop: 'prodNum',
           },
         ],
@@ -115,6 +118,13 @@
       this.data = this.productData.map((item) => {
         return { ...item, prodPrice: item['prodPrice'] }
       })
+      if (this.isLook) {
+        this.columns.push({
+          label: '合计',
+          width: 'auto',
+          prop: 'total',
+        })
+      }
     },
     methods: {
       // input修改

+ 15 - 2
src/views/proj/business/detail.vue

@@ -174,6 +174,9 @@
               :primacy-contact-id="details.contactId"
               @fetch-data="getRecord" />
           </el-tab-pane>
+          <el-tab-pane label="产品信息" name="product">
+            <product-table ref="productTable" is-look :product-data="productData" />
+          </el-tab-pane>
           <el-tab-pane label="合同记录" name="contract">
             <details-contract ref="detailsContract" :bus-id="id" />
           </el-tab-pane>
@@ -224,6 +227,7 @@
   import Edit from './components/BusinessEdit'
   import FollowAdd from './components/FollowAdd'
   import Transfer from './components/Transfer'
+  import ProductTable from './components/ProductTable'
   import DetailsContact from './components/DetailsContact'
   import DetailsContract from './components/DetailsContract'
   import DetailsRecords from './components/DetailsRecords'
@@ -239,6 +243,7 @@
       FollowAdd,
       Transfer,
       ToReserve,
+      ProductTable,
       DetailsContact,
       DetailsContract,
       DetailsRecords,
@@ -249,7 +254,7 @@
       return {
         id: undefined,
         details: { nboType: '' },
-        product: [],
+        productData: [],
         abstract: {},
         activeName: 'details',
         selectRows: [],
@@ -291,7 +296,6 @@
           this.getDicts('sys_product_line'),
           this.getDicts('sys_yes_no'),
           this.getRecord(),
-          this.handleClick({ name: this.activeName }),
         ]).then(([details, nboType, nboSource, salesModel, productLine, yesOrNo]) => {
           if (details.data) this.details = details.data
           this.nboTypeOptions = nboType.data.values || []
@@ -314,6 +318,7 @@
 
           this.dynamicsList = records
           // console.log(this.dynamicsList)
+          await this.handleClick({ name: this.activeName })
         }
       },
       async handleClick(tab) {
@@ -321,6 +326,8 @@
           await this.$refs.follow.fetchData()
         } else if (tab.name == 'contact') {
           await this.$refs.contact.fetchData()
+        } else if (tab.name == 'product') {
+          await this.getProductData(this.id)
         } else if (tab.name == 'contract') {
           this.$refs.detailsContract.open(this.id)
         } else if (tab.name == 'worksheet') {
@@ -338,6 +345,12 @@
           return
         }
       },
+      async getProductData(busId) {
+        const { data } = await businessApi.getProductByBusinessId({ id: busId })
+        if (data) {
+          this.productData = data
+        }
+      },
       // 添加跟进记录
       handleFollow() {
         this.followup = {

+ 3 - 3
src/views/system/dict/dataList.vue

@@ -19,13 +19,13 @@
       </vab-query-form-left-panel>
       <vab-query-form-right-panel :span="19">
         <el-form :inline="true" :model="queryForm" @submit.native.prevent>
-          <el-form-item label="字典名称" prop="dictName">
+          <el-form-item prop="dictName">
             <el-input v-model.trim="queryForm.dictName" clearable placeholder="请输入字典名称" />
           </el-form-item>
-          <el-form-item label="字典标签" prop="dictLabel">
+          <el-form-item prop="dictLabel">
             <el-input v-model.trim="queryForm.dictLabel" clearable placeholder="请输入字典标签" />
           </el-form-item>
-          <el-form-item label="状态" prop="status">
+          <el-form-item prop="status">
             <el-select v-model="queryForm.status" clearable placeholder="数据状态">
               <el-option label="正常" value="10" />
               <el-option label="停用" value="20" />

+ 3 - 3
src/views/system/dict/index.vue

@@ -19,13 +19,13 @@
       </vab-query-form-left-panel>
       <vab-query-form-right-panel :span="19">
         <el-form :inline="true" :model="queryForm" @submit.native.prevent>
-          <el-form-item label="字典名称" prop="dictName">
+          <el-form-item prop="dictName">
             <el-input v-model.trim="queryForm.dictName" clearable placeholder="请输入字典名称" />
           </el-form-item>
-          <el-form-item label="字典类型" prop="dictType">
+          <el-form-item prop="dictType">
             <el-input v-model.trim="queryForm.dictType" clearable placeholder="请输入字典类型" />
           </el-form-item>
-          <el-form-item label="字典状态" prop="status">
+          <el-form-item prop="status">
             <el-select v-model="queryForm.status" clearable placeholder="字典状态">
               <el-option label="正常" value="10" />
               <el-option label="停用" value="20" />