qymljy 3 лет назад
Родитель
Сommit
3357d32f66

+ 5 - 0
src/Form/projectChange/edit.vue

@@ -222,6 +222,7 @@ export default {
         sa_brandid:"",
         tradefields:[],
         value:[],
+        tradefield:''
       },
       brandSelect:[],
       tradefieldSelect:[],
@@ -282,6 +283,7 @@ export default {
       this.form = Object.assign({},this.form,this.data)
       this.form.province = [this.form.province,this.form.city,this.form.county]
       /*this.form.grade = parseInt(this.form.grade)*/
+      this.form.tradefields = JSON.parse(this.form.tradefields)
       console.log(this.form,"项目商机内容")
     },
     /*自动查重判断*/
@@ -363,6 +365,9 @@ export default {
       }else {
         this.form.enddate_due = ''
       }
+      console.log(this.form,'form')
+      /*this.form.tradefields[0] = this.form.tradefields
+      console.log(this.form,'form')*/
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
         this.form.province = this.form.province[0]

+ 128 - 14
src/HDrpManagement/contractManage/components/addContract.vue

@@ -6,21 +6,21 @@
       <div class="container normal-panel" style="padding-bottom:0">
         <!--合作协议-->
         <el-row v-if="$route.query.type == '框架'">
-          <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
+          <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
             <el-col :span="24">
               <el-form-item label="合同标题:" prop="title">
-                <el-input type="text" size="small" v-model="form.title"></el-input>
+                <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="经销商:" prop="enterprisename">
+              <el-form-item label="经销商:" prop="enterprisename" >
                 <el-popover
                   placement="bottom"
                   trigger="manual"
                   v-model="agentVisible"
                   width="500">
                   <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
-                  <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename"></el-input>
+                  <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename" placeholder="请选择经销商"></el-input>
                 </el-popover>
               </el-form-item>
             </el-col>
@@ -30,8 +30,25 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="折扣(%):" prop="discountrate">
-                <el-input type="text" size="small" v-model="form.discountrate"></el-input>
+              <el-form-item label="折扣(%):" prop="discountrate"  >
+                <el-input type="text" size="small" v-model="form.discountrate" placeholder="请输入折扣"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="付款条件:" prop="paytype">
+                <el-select v-model="form.paytype" placeholder="请选择">
+                  <el-option
+                      v-for="item in payTypeData"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="发货日期提醒(天):" prop="reminddays"  >
+                <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -57,7 +74,7 @@
             </el-col>
             <el-col :span="24">
               <el-form-item label="合同描述:" prop="remarks">
-                <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
+                <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息"></el-input>
               </el-form-item>
             </el-col>
           </el-form>
@@ -104,6 +121,28 @@
                   <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item label="折扣(%):" prop="discountrate"  >
+                <el-input type="text" size="small" v-model="form.discountrate" placeholder="请输入折扣"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="付款条件:" prop="paytype">
+                <el-select v-model="form.paytype" placeholder="请选择">
+                  <el-option
+                      v-for="item in payTypeData"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="发货日期提醒(天):" prop="reminddays"  >
+                <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item label="合同有效期:" prop="begdate">
                 <input type="text" style="display:none" v-model="form.begdate">
@@ -139,7 +178,7 @@
         </el-row>
         <!--直销项目-->
         <el-row v-if="$route.query.type == '直销项目'">
-          <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
+          <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
             <el-col :span="24">
               <el-form-item label="合同标题:" prop="title">
                 <el-input type="text" size="small" v-model="form.title"></el-input>
@@ -179,6 +218,28 @@
                   <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item label="折扣(%):" prop="discountrate"  >
+                <el-input type="text" size="small" v-model="form.discountrate" placeholder="请输入折扣"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="付款条件:" prop="paytype">
+                <el-select v-model="form.paytype" placeholder="请选择">
+                  <el-option
+                      v-for="item in payTypeData"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="发货日期提醒(天):" prop="reminddays"  >
+                <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item label="收货人:" prop="receiptName">
                 <el-popover
@@ -231,7 +292,7 @@
         </el-row>
         <!--工具使用协议-->
         <el-row v-if="$route.query.type == '工具借用'">
-          <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
+          <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
             <el-col :span="24">
               <el-form-item label="合同标题:" prop="title">
                 <el-input type="text" size="small" v-model="form.title"></el-input>
@@ -410,8 +471,8 @@ export default {
       callback()
     }
     var NumberSize = (rule, value, callback) => {
-      if (+value > 100 || +value < 1 && value) {
-        return callback(new Error('折扣范围(1-100)'));
+      if (+value > 100 || +value < 0 && value) {
+        return callback(new Error('折扣范围(0-100)'));
       }
       callback()
     }
@@ -422,7 +483,13 @@ export default {
         return callback(new Error('签约日期必须在合同有效期内'));
       }
     }
-
+    var discountrate = (rule,value,callback) =>{
+      if (this.form.discountrate < 0 || this.form.discountrate > 100){
+        callback(new Error('请输入0-100%'))
+      } else {
+        callback();
+      }
+    }
     return {
       agentVisible:false,
       salerVisible:false,
@@ -434,6 +501,7 @@ export default {
       modelList:[],
       /* 新建居间项目时 所关联的居间商 */
       centerEnterpriseList:[],
+      payTypeData:[],
       address:'',
       form: {
         "sa_contractid": 0,
@@ -464,7 +532,8 @@ export default {
         'receiptName':'',
         "rec_contactsid":'',//收货联系人
         'phonenumber':'',
-        'paytype':'123'
+        'paytype':'',
+        'reminddays':''
 
       },
       rules: {
@@ -495,6 +564,12 @@ export default {
         signdate: [
           { required: true, message: '请填写签约时间', trigger: 'change' },
         ],
+        paytype: [
+          { required: true, message: '请选择付款条件', trigger: 'change' },
+        ],
+        reminddays: [
+          { required: true, message: '请设置发货日期提醒天数', trigger: 'blur' },
+        ],
         productdiscount: [
           { message: '必须为数字', type:'number', trigger: 'change' },
           { required: true, message: '请填写折扣', trigger: 'blur' },
@@ -592,8 +667,10 @@ export default {
       'receiptName':'',
       "rec_contactsid":'',//收货联系人
       'phonenumber':'',
-      'paytype':'123'
+      'paytype':'',
+      'reminddays':''
     }
+    this.payTypeList()
   },
   methods: {
     async onSubmit () {
@@ -800,8 +877,45 @@ export default {
       })
       this.modelList = res.data
       console.log(this.modelList);
+    },
+    /*获取付款条件*/
+    async payTypeList(){
+      const res = await this.$api.requested({
+        id: "20230110100103",
+        content: {
+          pageNumber: 1,
+          pageSize:50,
+          where: {condition: ""},
+        }
+      })
+      console.log(res,'res')
+      this.payTypeData = res.data.map((item,index)=>{
+        if (item.point === '订单审核'){
+          return {
+            label:item.ruleno +  '\xa0  \xa0 \xa0 \xa0' + item.point + '\xa0  \xa0 \xa0 \xa0' + "立账额度" + (item.amountrate * 100) +'% ' + '\xa0  \xa0 \xa0 \xa0' + '后置天数' + item.days + '天',
+            value:item.ruleno +  '' + item.point + '' + "立账额度" + (item.amountrate * 100) +'% ' + '' + '后置天数' + item.days + '天',
+          }
+        }else {
+          return {
+            label:item.ruleno + '\xa0  \xa0 \xa0 \xa0' + item.point + '\xa0  \xa0 \xa0 \xa0' +  '后置天数' + item.days + '天',
+            value:item.ruleno + '' + item.point + '' +  '后置天数' + item.days + '天',
+          }
+        }
+
+      })
+     /* res.data.forEach((item,index)=>{
+        if (item.point === '订单审核'){
+          this.payTypeData[index] = item.ruleno + ' ' + item.point + ' ' + "立账额度" + (item.amountrate * 100) +'% ' + '后置天数' + item.days
+        }else {
+          this.payTypeData[index] = item.ruleno + ' ' + item.point + ' ' +  '后置天数' + item.days
+        }
+      })*/
+      console.log(this.payTypeData,'处理后数据')
     }
   },
+  mounted() {
+    this.payTypeList()
+  }
 };
 </script>
 

+ 16 - 0
src/HDrpManagement/contractManage/modules/detail.vue

@@ -890,6 +890,22 @@ export default {
                     label:'签约金额(元)',
                     value:this.mainData.signamount?this.mainData.signamount:0
                   },
+                  {
+                    label:'折扣(%)',
+                    value:this.mainData.discountrate * 100
+                  },
+                  {
+                    label:'领域',
+                    value:this.mainData.tradefields ? this.mainData.tradefields[0] : '--'
+                  },
+                  {
+                    label:'品牌',
+                    value:this.mainData.brandname
+                  },
+                  {
+                    label:'付款条件',
+                    value:this.mainData.paytype
+                  },
                   {
                     label:'业务员',
                     value:this.mainData.salername

+ 1 - 1
src/HDrpManagement/projectChange/index.vue

@@ -137,7 +137,7 @@
         </div>
         <div v-else-if="scope.data.column.columnname === 'tradefields'">
 
-          {{scope.data.column.data.tradefields?JSON.parse(scope.data.column.data.tradefields)[0]:'--'}}
+          {{scope.data.column.data.tradefields?scope.data.column.data.tradefields[0]:'--'}}
         </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}

+ 1 - 1
src/HDrpManagement/projectChange/modules/detail.vue

@@ -323,7 +323,7 @@ export default {
           {label:'预计签约时间',value:this.mainData.signdate_due ? this.mainData.signdate_due : '--'},
           {label:'预计签约金额(元)',value:this.mainData.signamount_due ? this.mainData.signamount_due : '--'},
           {label:'赢率',value:this.mainData.winrate ? this.mainData.winrate : '--'},
-          {label:'领域',value:this.mainData.tradefields ? JSON.parse(this.mainData.tradefields)[0] : '--'},
+          {label:'领域',value:this.mainData.tradefields ? this.mainData.tradefields[0] : '--'},
           {label:'品牌',value:this.mainData.brandname ? this.mainData.brandname : '--'},
           // {label:'项目等级',value:this.projectLead.find(item => item.rowindex == this.mainData.grade).value},
 

+ 36 - 20
src/HDrpManagement/projectChange/modules/modules/quotation/modules/add.vue

@@ -4,7 +4,7 @@
     <el-drawer
         title="新建项目报价单"
         :visible.sync="dialogFormVisible"
-        size="93%"
+        size="600px"
         direction="rtl"
         append-to-body
         :show-close="false"
@@ -12,17 +12,17 @@
       <div class="drawer__panel" style="margin-bottom: 0px">
         <el-row style="margin-top: 10px" :gutter="10">
           <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
-            <el-col :span="8">
+            <el-col :span="24">
               <el-form-item label="报价类型:" label-width="100px" >
                 <el-input v-model="form.type" autocomplete="off" placeholder="报价类型" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col  :span="8">
+<!--            <el-col  :span="8">
               <el-form-item label="是否特价:" label-width="100px" >
                 <el-input  v-model="form.specialOffer" autocomplete="off" placeholder="是否特价" disabled></el-input>
               </el-form-item>
-            </el-col>
-            <el-col  :span="8" >
+            </el-col>-->
+            <el-col  :span="24" >
               <el-form-item label="项目名称:" label-width="100px" prop="projectname">
                 <el-popover
                     placement="bottom"
@@ -80,12 +80,12 @@
 
               </el-form-item>
             </el-col>
-            <el-col  :span="8" >
+            <el-col  :span="24" >
               <el-form-item label="项目编号:" label-width="100px" >
                 <el-input  v-model="form.projectnum" autocomplete="off" placeholder="项目编号" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col  :span="8">
+            <el-col  :span="24">
               <el-form-item label="客户名称:" label-width="100px" prop="enterprisename">
                 <el-popover
                     placement="bottom"
@@ -142,12 +142,12 @@
                 </el-popover>
               </el-form-item>
             </el-col>
-            <el-col  :span="8">
+            <el-col  :span="24">
               <el-form-item label="电话:" label-width="100px" >
                 <el-input  v-model="form.telephone" autocomplete="off" placeholder="电话" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col   :span="8">
+            <el-col   :span="24">
               <el-form-item label="联系人:" label-width="100px" >
                 <el-popover
                     placement="bottom"
@@ -211,12 +211,12 @@
                 </el-popover>
               </el-form-item>
             </el-col>
-            <el-col  :span="8">
+            <el-col  :span="24">
               <el-form-item label="联系人手机号:" label-width="100px" >
                 <el-input  v-model="form.phonenumber" autocomplete="off" placeholder="手机号" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col  :span="8">
+            <el-col  :span="24">
               <el-form-item label="报价日期:" label-width="100px">
                 <el-date-picker
                     v-model="form.billdate"
@@ -228,7 +228,7 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
-            <el-col :span="8">
+            <el-col :span="24">
               <el-form-item label="有效期:" label-width="100px" prop="date">
                 <el-date-picker
                     v-model="form.date"
@@ -242,7 +242,7 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
-            <el-col  :span="8" >
+            <el-col  :span="24" >
               <el-form-item label="产品系列:" label-width="100px" prop="itemtype">
                 <el-select
                     ref="sle"
@@ -264,7 +264,12 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col  :span="8">
+            <el-col  :span="24">
+              <el-form-item label="折扣:" label-width="100px" prop="discountrate">
+                <el-input  v-model="form.discountrate" autocomplete="off" placeholder="请输入折扣" type="textarea" autosize></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col  :span="24">
               <el-form-item label="备注:" label-width="100px" prop="remarks">
                 <el-input  v-model="form.remarks" autocomplete="off" placeholder="请输入备注信息" type="textarea" autosize></el-input>
               </el-form-item>
@@ -272,15 +277,15 @@
           </el-form>
         </el-row>
       </div>
-      <div >
+<!--      <div >
         <el-divider></el-divider>
       </div>
       <div style="margin:30px 20px 20px 20px">
         <quotedPriceProduct :sa_projectid="form.sa_projectid" :type="form.type" ref="quoterPrice" @checkFormImport="onCheckFormImport" @checkForm="onSubmit" @checkFormProject="onSubmit" @productData="productDataChange"></quotedPriceProduct>
-      </div>
+      </div>-->
       <div class="fixed__btn__panel">
         <el-button size="small" @click="onClose" class="normal-btn-width">取 消</el-button>
-        <el-button :disabled="form.sa_quotedpriceid === 0" size="small" type="primary" @click="getSubmit" class="normal-btn-width">确 定</el-button>
+        <el-button  size="small" type="primary" @click="getSubmit" class="normal-btn-width">确 定</el-button>
       </div>
     </el-drawer>
   </div>
@@ -293,6 +298,13 @@ export default {
   props:["data"],
   components:{quotedPriceProduct},
   data(){
+    var discountrate = (rule,value,callback) =>{
+      if (this.form.discountrate < 0 || this.form.discountrate > 100){
+        callback(new Error('请输入0-100%'))
+      } else {
+        callback();
+      }
+    }
     return {
       dialogFormVisible:false,
       projectShow:false,
@@ -378,7 +390,7 @@ export default {
         sys_enterpriseid: "",
         contactsid:8,
         sa_projectid: "0",
-        discountrate: 0,
+        discountrate: '',
         remarks: "",
         invaliddate: "",
         projectname: "",
@@ -405,6 +417,9 @@ export default {
         itemtype:[
           { required: true, message: '请选择产品系列', trigger: 'change'},
         ],
+        discountrate:[
+          { required: false, validator: discountrate, trigger: 'change'},
+        ],
       },
       itemtype:[]
     }
@@ -475,13 +490,14 @@ export default {
       }
       this.$refs.form.validate(async (valid) => {
         if (!valid) return false
+        this.form.discountrate = this.form.discountrate / 100
         const res = await this.$api.requested({
           "id": 20221020164803,
-          "version":1,
           "content": this.form
         })
         this.tool.showMessage(res,() => {
-          this.changeData(this.productObj)
+          /*this.changeData(this.productObj)*/
+          this.$emit('addSuccess')
         })
       })
     },

+ 0 - 1
src/SDrpManagement/QuotedPrice/components/productTableProject.vue

@@ -171,7 +171,6 @@ export default {
       selectTotal:0,
       params:{
         "id": 20221020164903,
-        "version":1,
         "content": {
           "sa_projectid":'',
           "sa_quotedpriceid":"",

+ 10 - 5
src/SDrpManagement/QuotedPrice/detail/index.vue

@@ -12,7 +12,7 @@
         ownertable="sa_quotedprice"
         :statusCheck="[{key:'status',value:'审核'},{key:'status',value:'提交'}]"
         :tags="[]"
-        :tabs="['产品明细折扣','详细信息','其他费用','历史报价']"
+        :tabs="['产品明细折扣','产品类别折扣','详细信息','其他费用','历史报价']"
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
       <div slot="tags">
@@ -28,18 +28,21 @@
         <copyTo class="inline-16" v-if="tool.checkAuth($route.name,'copyTo') " :data="mainData.sa_quotedpriceid" :disabled="mainData.disabled"></copyTo>
         <toVoid class="inline-16" v-if="tool.checkAuth($route.name,'toVoid') && mainData.status === '新建'" :disabled="mainData.disabled" :data="mainData.sa_quotedpriceid" ></toVoid>
       </div>
-      <div slot="slot1" class=" normal-panel">
+      <div slot="slot2" class=" normal-panel">
         <detailed :data="mainData"  v-if="flag"></detailed>
       </div>
       <div slot="slot0" class=" normal-panel">
         <productInventory ref="productList" :data="mainData" v-if="flag"></productInventory>
       </div>
-      <div slot="slot2" class=" normal-panel">
+      <div slot="slot3" class=" normal-panel">
         <otherExpenses :status="mainData.status" :data="mainData" v-if="flag"></otherExpenses>
       </div>
-      <div slot="slot3" class=" normal-panel">
+      <div slot="slot4" class=" normal-panel">
         <historicalQuotation :data="mainData" v-if="flag"></historicalQuotation>
       </div>
+      <div slot="slot1" class=" normal-panel">
+        <itemClass></itemClass>
+      </div>
     </basicDetails>
   </div>
 </template>
@@ -59,6 +62,7 @@ import historicalQuotation from './modules/historicalQuotation/index'
 import copyTo from "@/SDrpManagement/QuotedPrice/detail/components/copyTo";
 import deApprove from './components/deApprove'
 import otherExpenses from './modules/otherExpenses/index'
+import itemClass from './modules/itemClass/index'
 export default {
   name: "index",
   data(){
@@ -87,7 +91,8 @@ export default {
     copyTo,
     deApprove,
     revoke,
-    otherExpenses
+    otherExpenses,
+    itemClass
   },
   watch:{
     mainData(val) {

+ 224 - 0
src/SDrpManagement/QuotedPrice/detail/modules/itemClass/add.vue

@@ -0,0 +1,224 @@
+<template>
+  <div>
+    <el-button size="small"  type="primary" icon="el-icon-plus" @click="onShow">添加</el-button>
+    <el-drawer
+        title="自项目产品添加"
+        :visible.sync="dialogProductVisible"
+        append-to-body
+        size="80%"
+        :show-close="false"
+        direction="rtl"
+        @close="onColes">
+      <div class="drawer__panel">
+        <div class="flex-align-center flex-between ">
+          <slot name="operation"></slot>
+          <div class="flex-align-center">
+            <el-input size="small"  suffix-icon="el-icon-search" v-model="params.content.where.condition" placeholder="产品名称,编号" @keyup.enter.native="listData(params.content.pageNumber = 1)" @clear="listData(params.content.pageNumber = 1)" clearable></el-input>&nbsp;
+          </div>
+          <div style="margin-top:-10px;margin-bottom: 10px;float: right">
+            <el-button style="float: right" type="primary" size="mini" @click="batchSelect" :disabled="tableSelectData.length === 0 ">批量添加</el-button>
+          </div>
+        </div>
+        <div class="produtMag-panel">
+          <el-table
+              ref="multipleTable"
+              :data="list"
+              style="width: 100%"
+              :header-cell-style="{height:'50px',color:'#606266',fontWeight:'400'}"
+              :cell-style="{height:'50px',color:'#666666',fontWeight:'400'}"
+              @selection-change="selectionChange">
+            <el-table-column
+                type="selection"
+                width="42"
+                fixed>
+            </el-table-column>
+            <el-table-column
+                prop="itemclassfullnum"
+                label="类别编号"
+                width="180">
+            </el-table-column>
+            <el-table-column
+                prop="itemclassfullname"
+                label="类别名称"
+                width="180">
+            </el-table-column>
+<!--            <el-table-column
+                label="品牌名称"
+                width="180">
+              <template slot-scope="scope">
+                <p><span>{{scope.row.model}}</span>&nbsp;/&nbsp;<span>{{scope.row.spec}}</span></p>
+              </template>
+            </el-table-column>-->
+            <el-table-column
+                prop="upitemclassname"
+                label="上级类别"
+                width="0">
+            </el-table-column>
+<!--            <el-table-column
+                prop="discountrate"
+                label="折扣"
+                width="0">
+            </el-table-column>-->
+            <el-table-column
+                fixed="right"
+                label="操作"
+                width="80">
+              <template slot-scope="scope">
+                <el-button type="text" @click="onSelect(scope.row)">添 加</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div>
+            <div style="float: left">已选:{{selectTotal}}个商品</div>
+            <div style="margin-top:16px;text-align:right">
+              <el-pagination
+                  background
+                  small
+                  @size-change="handleSizeChange"
+                  @current-change="handleCurrentChange"
+                  :current-page="currentPage"
+                  :page-size="params.content.pageSize"
+                  layout="total, prev, pager, next, jumper"
+                  :total="total">
+              </el-pagination>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="onColes" class="normal-btn-width">取 消</el-button>
+        <!--        <el-button size="small" type="primary" @click="onSubmit"  class="normal-btn-width">确 定</el-button>-->
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  data(){
+    return {
+      dialogProductVisible:false,
+      tablecols:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      tableSelectData:[],
+      selectData:[],
+      selectTotal:0,
+      params:{
+        "id": 20230219162803,
+        "content": {
+          "sa_quotedpriceid":this.$route.query.id,
+          "where":{
+            "condition":"",
+            "istool":'',
+            "sa_brandid":''
+          }
+        }
+      },
+      timer:0
+    }
+  },
+  methods:{
+    onShow(){
+      this.dialogProductVisible = true
+      this.listData()
+    },
+    async listData(){
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      console.log(this.list,'list')
+      this.total = res.total
+    },
+    debounce (fn, wait) {
+      let that = this
+      return function () {
+        if (that.timer !== null) clearTimeout(that.timer)
+        that.timer = setTimeout(fn, wait)
+      }
+    },
+    batchSelect(){
+      this.debounce(this.onSubmit,300)()
+    },
+    async onSubmit(){
+      const res = await this.$api.requested({
+        "id": 20230219161303,
+        "content": {
+          "sa_quotedpriceid":this.$route.query.id,     //sat_notice_classid<=0时 为新增
+          "items":this.selectData
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit('itemClassAdd')
+        this.listData()
+        this.selectListData()
+      })
+
+    },
+    onSelect(val){
+      console.log(val,"选择的商品")
+      this.tableSelectData = []
+      this.tableSelectData[0] = val
+      let obj = this.tableSelectData.map(e=>{
+        return {
+          "sa_quotedprice_itemclassid":0,
+          "itemclassid":e.itemclassid,
+          "discountrate":100
+        }
+      })
+      this.selectData = obj
+      /*this.$nextTick(()=>{
+        this.onSubmit()
+      })*/
+      console.log(this.selectData,"selectData")
+      this.debounce(this.onSubmit,300)()
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.productData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.productData()
+    },
+    selectionChange(val){
+      this.tableSelectData = []
+      this.tableSelectData = val
+      let obj = this.tableSelectData.map(e=>{
+        return {
+          "sa_quotedprice_itemclassid":0,
+          "itemclassid":e.itemclassid,
+          "discountrate":100
+        }
+      })
+      this.selectData = obj
+      console.log(this.selectData,"selectData")
+    },
+    onColes(){
+
+    },
+    /*已选产品数据*/
+    async selectListData(){
+      const res = await this.$api.requested({
+        "id": 20230219161403,
+        "content": {
+          "sa_quotedpriceid":this.$route.query.id     //sat_notice_classid<=0时 为新增
+        }
+      })
+      console.log(res,"已选产品123456")
+      this.selectTotal = res.total
+      console.log(res.total,"已选产品数量")
+    },
+
+  },
+  mounted() {
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 190 - 0
src/SDrpManagement/QuotedPrice/detail/modules/itemClass/index.vue

@@ -0,0 +1,190 @@
+<template>
+  <div>
+    <div style="margin-bottom: 15px">
+      <el-input
+          size="small"
+          style="width: 200px;"
+          class="inline-16"
+          suffix-icon="el-icon-search"
+          v-model="param.content.where.condition"
+          placeholder="产品名称,编号"
+          @keyup.enter.native="listData(param.content.pageNumber = 1)"
+          @clear="listData(param.content.pageNumber = 1)"
+          clearable>
+      </el-input>&nbsp;
+      <!--      <product_table style="float: right" :data="data"  ref="quoterPrice" @productAdd="productInitialization" ></product_table>-->
+      <add class="inline-16" @itemClassAdd="listData"></add>
+    </div>
+    <div class="produtMag-panel">
+      <el-table
+          ref="multipleTable"
+          :data="list"
+          style="width: 100%"
+          :header-cell-style="{height:'50px',color:'#606266',fontWeight:'400'}"
+          :cell-style="{height:'50px',color:'#666666',fontWeight:'400'}"
+      >
+        <!--        <el-table-column
+                    type="selection"
+                    width="55">
+                </el-table-column>-->
+        <el-table-column
+            prop="itemclassfullname"
+            label="产品类别名称"
+            width="0">
+        </el-table-column>
+        <el-table-column
+            prop="brandname"
+            label="品牌"
+            width="0">
+        </el-table-column>
+        <el-table-column
+            prop="discountrate"
+            label="折扣(%)"
+            width="80"
+            fixed="right">
+          <template slot-scope="scope">
+            <div v-if=" !saveShow || index !== scope.row.rowindex">
+              <p><span >{{scope.row.discountrate}}</span></p>
+            </div>
+            <span v-else>
+              <el-input v-model="scope.row.discountrate" size="mini" placeholder="请输入折扣" @change="onChangeDiscountrate(scope.row.discountrate,scope.row,scope.$index)"></el-input>
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="operation"
+            fixed="right"
+            label="操作"
+            width="120">
+          <template slot-scope="scope">
+            <el-button  size="mini" type="text" class="inline-16" @click="onEdit(scope.row)" v-if="!saveShow">编 辑</el-button>
+            <el-popconfirm
+                title="确定删除该产品类别嘛?"
+                @confirm="deleteProduct(scope.row)"
+            >
+              <el-button class="inline-16" slot="reference" size="mini" type="text" v-if="!saveShow">删 除</el-button>
+            </el-popconfirm>
+            <el-button  size="mini" type="text" class="inline-16" @click="onSave(scope.row)" v-if="saveShow">保 存</el-button>
+            <el-button  size="mini" type="text" class="inline-16" @click="onCancel" v-if="saveShow">取 消</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div style="height: 35px;margin-top: 20px">
+<!--        <div style="float: left">总金额(元):{{ totalPrice }}</div>-->
+        <div style="float: right">
+          <el-pagination
+              background
+              small
+              style="text-align: right;"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-size="param.content.pageSize"
+              layout="total, prev, pager, next, jumper"
+              :total="total">
+          </el-pagination>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import add from './add'
+export default {
+  name: "index",
+  components:{add},
+  data(){
+    return {
+      tablecols:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      index:'',
+      saveShow:false,
+      param:{
+        "id": 20230219161403,
+        "version":1,
+        "content": {
+          "sa_quotedpriceid":this.$route.query.id,
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": ""
+          }
+        }
+      }
+    }
+  },
+  methods:{
+    async listData(){
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.productData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.productData()
+    },
+    onChangeDiscountrate(val,data,index){
+      if (val > 100){
+        data.discountrate = 100
+      }else if (val <= 0){
+        data.discountrate = 1
+      }else {
+        data.discountrate = Math.round(val * 100)/100
+      }
+      this.$set(this.list,index,data)
+    },
+    onEdit(row){
+      this.saveShow = true
+      this.index = row.rowindex
+    },
+    async onSave(row){
+      console.log(row,'保存的数据')
+      const res = await this.$api.requested({
+        "id": 20230219161303,
+        "content": {
+          "sa_quotedpriceid":this.$route.query.id,     //sat_notice_classid<=0时 为新增
+          "items":[row]
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.saveShow = false
+        this.index = ''
+        this.listData()
+      })
+    },
+    onCancel(){
+      this.saveShow = false
+      this.index = ''
+      this.listData()
+    },
+    async deleteProduct(row){
+      const res = await this.$api.requested({
+        "id": 20230219161503,
+        "content": {
+          "sa_quotedprice_itemclassids":[row.sa_quotedprice_itemclassid]
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.listData()
+      })
+    }
+  },
+  mounted() {
+    this.listData()
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 5 - 7
src/SDrpManagement/QuotedPrice/detail/modules/productInventory/index.vue

@@ -117,7 +117,7 @@
             fixed="right">
           <template slot-scope="scope">
             <span>
-              <el-input-number :disabled="!saveShow && index !== scope.row.rowIndex" v-model="scope.row.qty" size="mini"  :min="1" label="描述文字" @change="onChangeNum(scope.row.qty,scope.row,scope.$index)"></el-input-number>
+              <el-input-number :disabled="!saveShow || index !== scope.row.rowIndex" v-model="scope.row.qty" size="mini"  :min="1" label="描述文字" @change="onChangeNum(scope.row.qty,scope.row,scope.$index)"></el-input-number>
             </span>
           </template>
         </el-table-column>
@@ -136,10 +136,10 @@
             width="80"
             fixed="right">
           <template slot-scope="scope">
-            <div v-if="scope.row.discountDifferenceAmount > 0 && !saveShow && index !== scope.row.rowIndex">
+            <div v-if="(scope.row.discountDifferenceAmount > 0 && !saveShow) || index !== scope.row.rowIndex">
               <p><span :style="[setTopColor]">{{scope.row.discountrate}}</span></p>
             </div>
-            <div v-else-if="scope.row.discountDifferenceAmount < 0 && !saveShow && index !== scope.row.rowIndex">
+            <div v-else-if="(scope.row.discountDifferenceAmount < 0 && !saveShow) || index !== scope.row.rowIndex">
               <p><span :style="[setDownColor]">{{scope.row.discountrate}}</span></p>
             </div>
             <span v-else>
@@ -162,10 +162,10 @@
             width="80"
             fixed="right">
           <template slot-scope="scope">
-            <div v-if="scope.row.discountDifferenceAmount > 0 && !saveShow && index !== scope.row.rowIndex">
+            <div v-if="(scope.row.discountDifferenceAmount > 0 && !saveShow) || index !== scope.row.rowIndex">
               <p><span :style="[setTopColor]">{{scope.row.price}}</span></p>
             </div>
-            <div v-else-if="scope.row.discountDifferenceAmount < 0 && !saveShow && index !== scope.row.rowIndex" >
+            <div v-else-if="(scope.row.discountDifferenceAmount < 0 && !saveShow) || index !== scope.row.rowIndex" >
               <p><span :style="[setDownColor]">{{scope.row.price}}</span></p>
             </div>
             <span v-else>
@@ -268,7 +268,6 @@ export default {
       },
       param:{
         "id": 20221021095503,
-        "version":1,
         "content": {
           "sa_quotedpriceid":'',
           "pageNumber": 1,
@@ -276,7 +275,6 @@ export default {
           "where": {
             "condition": ""
           }
-
         }
       }
     }