فهرست منبع

feature(项目): 项目升级提交更改

ZZH-wl 2 سال پیش
والد
کامیت
6d855b6aeb
2فایلهای تغییر یافته به همراه34 افزوده شده و 14 حذف شده
  1. 33 8
      src/views/proj/business/components/BusinessGradation.vue
  2. 1 6
      src/views/proj/business/components/ProductTable.vue

+ 33 - 8
src/views/proj/business/components/BusinessGradation.vue

@@ -1,12 +1,14 @@
 <template>
   <div style="display: inline-block; margin: 0 10px">
+    <!--未在审批中 且级别为 B、C、储备 可升级-->
     <el-button
       v-permissions="['proj:business:upgrade']"
-      :disabled="!['20', '30'].includes(businessInfo.nboType) || businessInfo.approStatus === '20'"
+      :disabled="!['20', '30', '50'].includes(businessInfo.nboType) || businessInfo.approStatus === '20'"
       type="primary"
       @click="handleClick('up')">
       升级
     </el-button>
+    <!--未在审批中 且级别为 A、B 可J降级-->
     <el-button
       v-permissions="['proj:business:downgrade']"
       :disabled="!['10', '20'].includes(businessInfo.nboType) || businessInfo.approStatus === '20'"
@@ -55,7 +57,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="20">
+        <el-row v-if="!(type === 'up' && form.nboType === '30')" :gutter="20">
           <el-col :span="8">
             <el-form-item label="技术支持人员" prop="technicalSupportName" :required="type === 'up'">
               <el-input v-model="form.technicalSupportName" />
@@ -96,14 +98,14 @@
         <!--    B-A    采购方式	采购时间	是否采纳大数技术参数(上传附件)	决策部门	决策人员	经销商与客户历史成交信息	经销商销售人员	维护部门及人员-->
         <el-row v-if="type === 'up' && form.nboType === '10'" :gutter="20">
           <el-col :span="8">
-            <el-form-item label="采购方式" prop="purchasingWay">
+            <el-form-item label="采购方式" prop="purchasingWay" :required="type === 'up' && form.nboType === '10'">
               <el-select v-model="form.purchasingWay" placeholder="请选择" style="width: 100%">
                 <el-option v-for="item in purchasingWayOptions" :key="item.key" :label="item.value" :value="item.key" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="采购时间" prop="purchasingTime">
+            <el-form-item label="采购时间" prop="purchasingTime" :required="type === 'up' && form.nboType === '10'">
               <el-date-picker
                 v-model="form.purchasingTime"
                 placeholder="选择日期"
@@ -137,7 +139,10 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="是否采纳大数技术参数   " prop="isAdoptDashoo">
+            <el-form-item
+              label="是否采纳大数技术参数   "
+              prop="isAdoptDashoo"
+              :required="type === 'up' && form.nboType === '10'">
               <el-radio-group v-model="form.isAdoptDashoo" style="width: 100%">
                 <el-radio label="10">是</el-radio>
                 <el-radio label="20">否</el-radio>
@@ -146,7 +151,16 @@
           </el-col>
         </el-row>
 
-        <el-form-item :label="title + '原因'" prop="remark">
+        <el-form-item v-if="type === 'up' && form.nboType === '30'" label="转化原因" prop="projConversionReason">
+          <el-input
+            v-model="form.projConversionReason"
+            maxlength="300"
+            placeholder="请输入转化原因"
+            rows="3"
+            show-word-limit
+            type="textarea" />
+        </el-form-item>
+        <el-form-item v-else :label="title + '原因'" prop="remark">
           <el-input
             v-model="form.remark"
             maxlength="300"
@@ -203,6 +217,10 @@
         if (!value && this.type === 'up') callback(new Error('不能为空'))
         else callback()
       }
+      const validateUpgradeA = (rule, value, callback) => {
+        if (!value && this.type === 'up' && this.form.nboType === '10') callback(new Error('不能为空'))
+        else callback()
+      }
       return {
         title: '项目',
         type: '',
@@ -238,7 +256,7 @@
         rules: {
           nboType: [{ required: true, trigger: ['blur', 'change'], message: '请选择项目级别' }],
           nboBudget: [{ required: true, trigger: ['blur', 'change'], message: '请输入项目预算' }],
-          distributorName: [{ required: true, trigger: ['blur', 'change'], message: '请选择经销商/代理商' }],
+          // distributorName: [{ required: true, trigger: ['blur', 'change'], message: '请选择经销商/代理商' }],
           technicalSupportName: [
             { validator: validateTechnicalSupport, trigger: ['blur', 'change'], message: '请输入技术支持人员' },
           ],
@@ -248,7 +266,13 @@
           technicalSupportTime: [
             { validator: validateTechnicalSupport, trigger: ['blur', 'change'], message: '请选择技术支持时间' },
           ],
-          remark: [{ required: true, trigger: ['blur', 'change'], message: '请输入原因' }],
+
+          purchasingTime: [{ validator: validateUpgradeA, trigger: ['blur', 'change'], message: '请选择采购时间' }],
+          purchasingWay: [{ validator: validateUpgradeA, trigger: ['blur', 'change'], message: '请选择采购方式' }],
+          isAdoptDashoo: [{ validator: validateUpgradeA, trigger: ['blur', 'change'], message: '请选择是或否' }],
+
+          // remark: [{ required: true, trigger: ['blur', 'change'], message: '请输入原因' }],
+          projConversionReason: [{ required: true, trigger: ['blur', 'change'], message: '请输入转化原因' }],
         },
         dialogFormVisible: false,
         yesOrNoOptions: [],
@@ -305,6 +329,7 @@
         this.form.technicalSupportContent = undefined
         this.form.technicalSupportTime = undefined
         this.form.remark = undefined
+        this.form.isAdoptDashoo = '20'
         this.customerInfo = { custId: this.form.custId, custName: this.form.custName }
         this.queryContact = { custId: this.form.custId, isDecision: '10' }
         this.dialogFormVisible = true

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

@@ -25,12 +25,7 @@
               @change="handleChange(row)" />
           </span>
           <span v-else-if="item.prop == 'prodNum'">
-            <el-input
-              v-model.trim="row.prodNum"
-              :min="1"
-              onkeyup="value=value.replace(/[^\d]/g,'')"
-              size="mini"
-              @change="handleChange(row)" />
+            <el-input v-model.number.trim="row.prodNum" :min="1" size="mini" @change="handleChange(row)" />
           </span>
           <span v-else-if="item.label == '合计'">
             {{ calculatedDiscount(row.prodPrice, row.prodNum) }}