qymljy 1 год назад
Родитель
Сommit
253c6ccfcc

+ 6 - 3
src/SDrpManagement/QuotedPrice/detail/index.vue

@@ -20,9 +20,12 @@
         <!-- 此区域提供了自定义操作按钮 -->
         <submit_to class="inline-16" v-if="tool.checkAuth($route.name,'submit') && mainData.status === '新建'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onSubmit="onSuccess"></submit_to>
         <revoke class="inline-16" v-if="tool.checkAuth($route.name,'revoke') && mainData.status === '提交'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onRevoke="onSuccess"></revoke>
-        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '复核' && mainData.specialoffer == '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
-        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交' && mainData.specialoffer != '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
-        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'  && quotedpricerecheck != '1'" :disabled="disabledFlag.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
+        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '复核' && mainData.specialoffer == '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled"
+                    :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
+        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交' && mainData.specialoffer != '1' && quotedpricerecheck == '1'" :disabled="disabledFlag.disabled"
+                    :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
+        <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'  && quotedpricerecheck != '1'" :disabled="disabledFlag.disabled"
+                    :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
         <deApprove class="inline-16" v-if="tool.checkAuth($route.name,'deApprove') && mainData.status === '审核'" :disabled="disabledFlag.disabled" :data="mainData" @onDeApprove="onSuccess"></deApprove>
         <check class="inline-16" v-if="tool.checkAuth($route.name,'check') && mainData.specialoffer == '1' &&  mainData.status === '提交' && quotedpricerecheck == '1'" :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onCheck="onSuccess"></check>
         <recheck class="inline-16" v-if="tool.checkAuth($route.name,'recheck') && mainData.specialoffer == '1' && mainData.status === '复核' && quotedpricerecheck == '1'"  :status="mainData.status" :quotedpricerecheck="quotedpricerecheck" @onReCheck="onSuccess"></recheck>

+ 7 - 7
src/SDrpManagement/invoicePrediction/detail/customDetail.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="height: calc(100vh - 245px)">
-    <addCustom v-if="!isDisabled && tool.checkAuth($route.name,'custom')" ref="addCustom" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加客户'" class="inline-16" @add="addCustom"
+    <addCustom v-if="!isDisabled && tool.checkAuth($route.name,'custom') && disabled" ref="addCustom" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加客户'" class="inline-16" @add="addCustom"
                @adds="addCustoms" @uploadData="uploadData" @onSuccess="onSuccess" :dataType="'客户'" ></addCustom>
-    <el-button @click="delAll" :type="list.length === 0 ? '' : 'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :disabled="list.length === 0">一键删除</el-button>
-    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :type="items.length > 0?'primary':''" size="small" @click="delCustoms" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+    <el-button @click="delAll" :type="list.length === 0 || !disabled ? '' : 'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'custom')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delCustoms" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
     <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
     </el-input>
     <tableList height="calc(100vh - 335px)" ref="projectRef" style="margin-top: 10px" :checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation"
@@ -31,13 +31,13 @@
           <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
         </div>
         <div v-else-if="scope.column.columnname === 'outamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
         </div>
         <div v-else-if="scope.column.columnname === 'invoiceamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -45,7 +45,7 @@
         <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <el-button size="mini" type="text" @click="delCustom(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+        <el-button size="mini" type="text" @click="delCustom(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
       </template>
     </tableList>
     <div class=" container "  style="text-align:left;float: left">
@@ -72,7 +72,7 @@ import addCustom from '@/template/prediction/addTemp'
 import tableList from '@/components/table/index6'
 export default {
   name: "custom",
-  props:['id','isDisabled'],
+  props:['id','isDisabled','disabled'],
   components:{addCustom,tableList},
   data(){
     return {

+ 17 - 16
src/SDrpManagement/invoicePrediction/detail/orderDetail.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="margin-bottom: -10px">
-    <addOrder v-if="!isDisabled && tool.checkAuth($route.name,'order')" ref="addOrder" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加订单'" class="inline-16" @add="addOrder"
+    <addOrder v-if="!isDisabled && tool.checkAuth($route.name,'order') && disabled" ref="addOrder" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加订单'" class="inline-16" @add="addOrder"
               @adds="addOrders" @uploadData="uploadData" @onSuccess="onSuccess" :dataType="'订单'"></addOrder>
-    <el-button @click="delAll" :type="list.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="list.length === 0">一键删除</el-button>
-    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="items.length > 0?'primary':''" size="small" @click="delOrders" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+    <el-button @click="delAll" :type="list.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delOrders" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
     <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
     </el-input>
     <tableList height="300px" ref="orderRef" style="margin-top: 10px" :checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation"
@@ -19,13 +19,13 @@
           <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
         </div>
         <div v-else-if="scope.column.columnname === 'outamount'">
-          <span v-if="isDisabled || (scope.column.data.unoutamount === 0 && scope.column.data.uninvoiceamount > 0) ">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || (scope.column.data.unoutamount === 0 && scope.column.data.uninvoiceamount > 0) || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
         </div>
         <div v-else-if="scope.column.columnname === 'invoiceamount'">
-          <span v-if="isDisabled || (scope.column.data.unoutamount > 0 && scope.column.data.uninvoiceamount === 0)">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || (scope.column.data.unoutamount > 0 && scope.column.data.uninvoiceamount === 0) || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -40,8 +40,8 @@
       </template>
       <template v-slot:opreation="scope">
 <!--        <el-button size="mini" type="text" @click="adds(scope.data)">新增产品</el-button>-->
-        <addProducts ref="addProduct" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :param="addProductsParam" :tablecols="tablecolsAddProduct" :title="'添加产品'" class="inline-16" @add="addProduct"
-                     @adds="addProducts" @uploadData="uploadDataProduct" @onSuccess="onSuccessProduct" :dataType="'产品'" btnType="text" :data="scope.data"></addProducts>
+        <addProducts ref="addProduct" v-if="tool.checkAuth($route.name,'order')" :param="addProductsParam" :tablecols="tablecolsAddProduct" :title="'添加产品'" class="inline-16" @add="addProduct"
+                     @adds="addProducts" @uploadData="uploadDataProduct" @onSuccess="onSuccessProduct" :dataType="'产品'" btnType="text" :data="scope.data" :isDisabled="isDisabled" :disabled="disabled"></addProducts>
 <!--        <el-button size="mini" type="text" @click="delOrder(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>-->
       </template>
     </tableList>
@@ -66,8 +66,8 @@
     <!-- 产品   -->
     <div style="margin-top: 10px;">
       <div >
-        <el-button @click="delAllProduct" :type="productList.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="productList.length === 0">一键删除</el-button>
-        <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="productItems.length > 0?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="productItems.length === 0">删 除</el-button>
+        <el-button @click="delAllProduct" :type="productList.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'order')" :disabled="productList.length === 0 || !disabled">一键删除</el-button>
+        <el-button v-if="!isDisabled && tool.checkAuth($route.name,'order')" :type="productItems.length > 0 && disabled?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="productItems.length === 0 || !disabled">删 除</el-button>
         <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="productsParam.content.where.condition?productsParam.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="productsParam.content.where.condition" @keyup.native.enter="listProduct(productsParam.content.pageNumber = 1)" @clear="listProduct(productsParam.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
         </el-input>
       </div>
@@ -75,7 +75,7 @@
                 @selectionChange="selectionChangeProduct"  :headerOptions="['plandeliverydate']">
         <template v-slot:header="scope">
           <div v-if="scope.column.columnname == 'plandeliverydate'">
-            <span v-if="isDisabled || unoutamountOrder === 0">计划出货日期</span>
+            <span v-if="isDisabled || unoutamountOrder === 0 || !disabled">计划出货日期</span>
             <span v-else>
               <el-date-picker
                   style="width: 130px"
@@ -105,13 +105,13 @@
             <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           </div>
           <div v-else-if="scope.column.columnname === 'outamount'">
-            <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
             <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
           </div>
           <div v-else-if="scope.column.columnname === 'invoiceamount'">
-            <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
             <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -129,7 +129,7 @@
             <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           </div>
           <div v-else-if="scope.column.columnname === 'plandeliverydate'">
-            <span v-if="isDisabled || unoutamountOrder === 0">
+            <span v-if="isDisabled || unoutamountOrder === 0 || !disabled">
               {{scope.column.data[scope.column.columnname]}}
             </span>
             <span v-else>
@@ -149,7 +149,7 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
-          <el-button v-if="tool.checkAuth($route.name,'order')" size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+          <el-button v-if="tool.checkAuth($route.name,'order')" size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
         </template>
       </tableList>
       <div style="display: flex;justify-content: space-between;margin: 10px">
@@ -178,10 +178,10 @@
 <script>
 import addOrder from '@/template/prediction/addTemp'
 import tableList from '@/components/table/index6'
-import addProducts from '@/template/prediction/addTemp'
+import addProducts from '@/template/prediction/addTemp1'
 export default {
   name: "order",
-  props:['id','isDisabled','data'],
+  props:['id','isDisabled','data','disabled'],
   components:{addOrder,tableList,addProducts},
   data(){
     let that = this
@@ -669,6 +669,7 @@ export default {
   mounted() {
     this.listData()
     this.$emit('onSuccess')
+    console.log(this.data,'data数据33333')
   },
   created() {
     this.tablecolsAdd = this.tool.tabelCol(this.$route.name).orderAddTable.tablecols

+ 7 - 7
src/SDrpManagement/invoicePrediction/detail/projectDetail.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="height: calc(100vh - 245px)">
-    <addProject v-if="!isDisabled && tool.checkAuth($route.name,'project')" ref="addProject" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加项目'" class="inline-16" @add="addProject"
+    <addProject v-if="!isDisabled && tool.checkAuth($route.name,'project') && disabled" ref="addProject" :param="paramAdd" :tablecols="tablecolsAdd" :title="'添加项目'" class="inline-16" @add="addProject"
                 @adds="addProjects" @uploadData="uploadData" @onSuccess="onSuccess" :dataType="'项目'"></addProject>
-    <el-button @click="delAll" :type="list.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'project')" :disabled="list.length === 0">一键删除</el-button>
-    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'project')" :type="items.length > 0?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+    <el-button @click="delAll" :type="list.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'project')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+    <el-button v-if="!isDisabled && tool.checkAuth($route.name,'project')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
     <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
     </el-input>
     <tableList height="calc(100vh - 335px)" ref="projectRef" style="margin-top: 10px" :checkbox="true"  :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation" @selectionChange="selectionChange"  >
@@ -15,13 +15,13 @@
           <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
         </div>
         <div v-else-if="scope.column.columnname === 'outamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.outamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
         </div>
         <div v-else-if="scope.column.columnname === 'invoiceamount'">
-          <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+          <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           <span v-else>
             <el-input size="mini" v-model="scope.column.data.invoiceamount" @change="onChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
           </span>
@@ -29,7 +29,7 @@
         <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+        <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
       </template>
     </tableList>
     <div class=" container"  style="text-align:left;float: left">
@@ -56,7 +56,7 @@ import addProject from '@/template/prediction/addTemp'
 import tableList from '@/components/table/index6'
 export default {
   name: "project",
-  props:['id','isDisabled'],
+  props:['id','isDisabled','disabled'],
   components:{addProject,tableList},
   data(){
     return {

+ 43 - 5
src/SDrpManagement/invoicePrediction/detail/subordinate.vue

@@ -13,13 +13,13 @@
         @onEditSuccess="queryMainData(id)"
        >
       <div slot="slot0" class=" normal-panel">
-        <orderList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :data="mainData"></orderList>
+        <orderList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :data="mainData" :disabled="mainData.disabled"></orderList>
       </div>
       <div slot="slot1" class=" normal-panel">
-        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess"></projectList>
+        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :disabled="mainData.disabled"></projectList>
       </div>
       <div slot="slot2" class=" normal-panel">
-        <customList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess"></customList>
+        <customList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="onSuccess" :disabled="mainData.disabled"></customList>
       </div>
     </basicDetails>
   </div>
@@ -35,8 +35,46 @@ export default {
   props:["id","isDisabled"],
   data(){
     return {
-      mainData:'',
+      mainData: {
+        disabled:false,
+      },
       mainAreaData:'',
+      userInfo:JSON.parse(window.sessionStorage.getItem('active_account')),
+    }
+  },
+  watch:{
+    async mainData(val) {
+      const res = await this.$api.requested({
+        "id": 20220930103501,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      const agent = await this.$api.requested({
+        "id":20230329122604,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      let flag = 0
+      for (var i=0;i<res.data[0].team.length;i++){
+        if (res.data[0].team[i].userid === JSON.parse(window.sessionStorage.getItem('active_account')).userid){
+          if (res.data[0].team[i].editable === 1){
+            this.mainData.disabled = true
+            flag =1
+            break
+          }else {
+            flag = 0
+            break
+          }
+        }
+      }
+      /*不是负责人*/
+      flag === 0?agent.data.editable === 0?this.mainData.disabled = false:this.mainData.disabled = true:this.mainData.disabled = true
+      this.$refs.details.$refs.group.editdataleader = agent.data.editdataleader
+      console.log(this.mainData.disabled,'权限结果')
     }
   },
   methods:{
@@ -47,7 +85,7 @@ export default {
           "sa_salesforecastbillid":this.$route.query.id
         }
       })
-      this.mainData = res.data
+      this.mainData = Object.assign({},this.mainData,res.data)
       this.changeDataStructure()
 
     },

+ 0 - 106
src/SDrpManagement/projectPrediction/detail/index.vue

@@ -1,106 +0,0 @@
-<template>
-  <div>
-    <basicDetails
-        ref="details"
-        :titleText="mainData.title"
-        :editData="mainData"
-        :mainAreaData="mainAreaData"
-        idname="sa_salesforecastbillid"
-        :pageChange="true"
-        typeTask="我的客户"
-        :tags="[]"
-        :tabs="['项目产品清单']"
-        @onEditSuccess="queryMainData(id)"
-       >
-      <div slot="slot0" class="normal-panel">
-        <projectList :id="id" :isDisabled="isDisabled" @onSuccess="onSuccess"></projectList>
-      </div>
-    </basicDetails>
-  </div>
-</template>
-
-<script>
-import projectList from '@/HDrpManagement/projectPredictionManage/details/modules/projectList'
-export default {
-  name: "subordinate",
-  components:{projectList},
-  props:["id",'isDisabled'],
-  data(){
-    return {
-      mainData:'',
-      mainAreaData:'',
-    }
-  },
-  methods:{
-    async queryMainData () {
-      const res = await this.$api.requested({
-        "id": 20230705144704,
-        "content": {
-          "sa_salesforecastbillid":this.id
-        }
-      })
-      this.mainData = res.data
-      this.changeDataStructure()
-
-    },
-    changeDataStructure () {
-      let that = this
-      this.mainAreaData = [
-        {
-          label:'标题',
-          value: this.mainData.title
-        },
-        {
-          label:'单号',
-          value: this.mainData.billnum
-        },
-        {
-          label:'提报人',
-          value: this.mainData.name
-        },
-        {
-          label:'预测时间',
-          value: this.mainData.periodstart + '至' + this.mainData.periodend,
-          style: ()=>{
-            let style = {color:'#3874f6'}
-            return style
-          }
-        },
-        {
-          label:'状态',
-          value: this.mainData.status,
-          style: ()=> {
-            let style = {}
-            switch (that.mainData.status) {
-              case '进行中':
-                style = {color:'#00B32B'}
-                break;
-              default:
-                break;
-            }
-            return style
-          }
-        },
-        {
-          label:'预测金额',
-          value: '¥'+this.tool.formatAmount(this.mainData.projectamount,2),
-          style: ()=> {
-            let style = {color:'#ff0000'}
-            return style
-          }
-        },
-      ]
-    },
-    onSuccess(){
-      this.queryMainData()
-    }
-  },
-  mounted() {
-    this.queryMainData()
-  }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 11 - 11
src/SDrpManagement/projectPrediction/detail/projectListDetail.vue

@@ -1,8 +1,8 @@
 <template>
   <div style="margin-bottom: -10px;display: inline-block;width: 100%">
-      <addProject v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" ref="addProject" :param="paramProject" class="inline-16" @add="addProject" @adds="addProjects" @uploadData="uploadData" @onSuccess="onSuccess"></addProject>
-      <el-button @click="delProjectAll" :type="list.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="list.length === 0">一键删除</el-button>
-      <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="items.length > 0?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0">删 除</el-button>
+      <addProject v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct') && disabled" ref="addProject" :param="paramProject" class="inline-16" @add="addProject" @adds="addProjects" @uploadData="uploadData" @onSuccess="onSuccess"></addProject>
+      <el-button @click="delProjectAll" :type="list.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="list.length === 0 || !disabled">一键删除</el-button>
+      <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="items.length > 0 && disabled?'primary':''" size="small" @click="delProjects" class="inline-16" :disabled="items.length === 0 || !disabled">删 除</el-button>
       <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="projectParam.content.where.condition?projectParam.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="projectParam.content.where.condition"
                  @keyup.native.enter="listData(projectParam.content.pageNumber = 1)" @clear="listData(projectParam.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
       </el-input>
@@ -18,8 +18,8 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
-          <el-button type="text" size="mini" @click="onProduct(scope.data)" :disabled="isDisabled">添加产品</el-button>
-          <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled" :loading="loading">删 除</el-button>
+          <el-button type="text" size="mini" @click="onProduct(scope.data)" :disabled="isDisabled || !disabled">添加产品</el-button>
+          <el-button size="mini" type="text" @click="delProject(scope.data)" :disabled="isDisabled || !disabled" :loading="loading">删 除</el-button>
         </template>
       </tableList>
       <div style="display: flex;justify-content: space-between;margin: 10px">
@@ -43,8 +43,8 @@
     <div style="float: left;width: 100%">
       <el-row >
         <el-col :span="15">
-          <el-button @click="delProductAll" :type="productList.length === 0?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="productList.length === 0">一键删除</el-button>
-          <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="itemsPro.length > 0?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="itemsPro.length === 0">删 除</el-button>
+          <el-button @click="delProductAll" :type="productList.length === 0 || !disabled?'':'primary'" size="small" v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :disabled="productList.length === 0 || !disabled">一键删除</el-button>
+          <el-button v-if="!isDisabled && tool.checkAuth($route.name,'projectProduct')" :type="itemsPro.length > 0 && disabled?'primary':''" size="small" @click="delProducts" class="inline-16" :disabled="itemsPro.length === 0 || !disabled">删 除</el-button>
           <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="productParam.content.where.condition?productParam.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="productParam.content.where.condition" @keyup.native.enter="listData(productParam.content.pageNumber = 1)" @clear="listData(productParam.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
           </el-input>
         </el-col>
@@ -67,13 +67,13 @@
             <span style="color: #ff0000">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
           </div>
           <div v-else-if="scope.column.columnname === 'orderqty'">
-            <span v-if="isDisabled">{{scope.column.data[scope.column.columnname]}}</span>
+            <span v-if="isDisabled || !disabled">{{scope.column.data[scope.column.columnname]}}</span>
             <span v-else>
             <el-input-number size="mini" v-model="scope.column.data.orderqty" @change="onChange(scope.column.data.orderqty,scope.$index,scope.column.data)" :min="scope.column.data.orderminqty" :step="scope.column.data.orderaddqty"></el-input-number>
           </span>
           </div>
           <div v-else-if="scope.column.columnname === 'price'">
-            <span v-if="isDisabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            <span v-if="isDisabled || !disabled">¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
             <span v-else>
               <el-input size="mini" v-model="scope.column.data.price" @change="priceChange(scope.column.data.price,scope.$index,scope.column.data)"></el-input>
             </span>
@@ -81,7 +81,7 @@
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
         <template v-slot:opreation="scope">
-          <el-button size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled" :loading="loadingProduct">删 除</el-button>
+          <el-button size="mini" type="text" @click="delProduct(scope.data)" :disabled="isDisabled || !disabled" :loading="loadingProduct">删 除</el-button>
         </template>
       </tableList>
       <div style="display: flex;justify-content: space-between;margin: 10px">
@@ -122,7 +122,7 @@ import addProject from '@/template/prediction/addProjectTemp'
 import addProduct from '@/template/prediction/addProductTemp'
 export default {
   name: "projectList",
-  props:['id','isDisabled'],
+  props:['id','isDisabled','disabled'],
   components:{tableList,addProject,addProduct},
   data(){
     return {

+ 40 - 3
src/SDrpManagement/projectPrediction/detail/subordinate.vue

@@ -13,7 +13,7 @@
         @onEditSuccess="queryMainData($route.query.id)"
        >
       <div slot="slot0" class="normal-panel" >
-        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="queryMainData"></projectList>
+        <projectList :id="$route.query.id" :isDisabled="mainData.status === '进行中'?false:true" @onSuccess="queryMainData" :disabled="mainData.disabled"></projectList>
       </div>
     </basicDetails>
   </div>
@@ -28,10 +28,47 @@ export default {
   props:["id"],
   data(){
     return {
-      mainData:'',
+      mainData: {
+        disabled:false,
+      },
       mainAreaData:'',
     }
   },
+  watch:{
+    async mainData(val) {
+      const res = await this.$api.requested({
+        "id": 20220930103501,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      const agent = await this.$api.requested({
+        "id":20230329122604,
+        "content": {
+          "ownertable":"sa_salesforecastbill",
+          "ownerid":this.$route.query.id
+        }
+      })
+      let flag = 0
+      for (var i=0;i<res.data[0].team.length;i++){
+        if (res.data[0].team[i].userid === JSON.parse(window.sessionStorage.getItem('active_account')).userid){
+          if (res.data[0].team[i].editable === 1){
+            this.mainData.disabled = true
+            flag =1
+            break
+          }else {
+            flag = 0
+            break
+          }
+        }
+      }
+      /*不是负责人*/
+      flag === 0?agent.data.editable === 0?this.mainData.disabled = false:this.mainData.disabled = true:this.mainData.disabled = true
+      this.$refs.details.$refs.group.editdataleader = agent.data.editdataleader
+      console.log(this.mainData.disabled,'权限结果')
+    }
+  },
   methods:{
     async queryMainData () {
       const res = await this.$api.requested({
@@ -40,7 +77,7 @@ export default {
           "sa_salesforecastbillid":this.$route.query.id
         }
       })
-      this.mainData = res.data
+      this.mainData = Object.assign({},this.mainData,res.data)
       this.changeDataStructure()
 
     },

+ 3 - 3
src/SDrpManagement/projectPrediction/modules/detailInfo.vue

@@ -9,18 +9,18 @@
         append-to-body
     >
       <div class="detail__panel">
-        <detailIn :id="id" ref="subordinate" :isDisabled="true"></detailIn>
+<!--        <detailIn :id="id" ref="subordinate" :isDisabled="true"></detailIn>-->
       </div>
     </el-drawer>
   </div>
 </template>
 
 <script>
-import detailIn from '../detail/index'
+/*import detailIn from '../detail/index'*/
 export default {
   name: "detailInfo",
   props:['data'],
-  components:{detailIn},
+  components:{},
   data(){
     return {
       drawer:false,

+ 3 - 3
src/SDrpManagement/projectPrediction/modules/edit.vue

@@ -9,18 +9,18 @@
         append-to-body
     >
       <div class="detail__panel">
-        <detailInfo :id="id" ref="subordinate"></detailInfo>
+<!--        <detailInfo :id="id" ref="subordinate"></detailInfo>-->
       </div>
     </el-drawer>
   </div>
 </template>
 
 <script>
-import detailInfo from '../detail/index'
+/*import detailInfo from '../detail/index'*/
 export default {
   name: "edit",
   props:['data'],
-  components:{detailInfo},
+  components:{},
   data(){
     return {
       drawer:false,

+ 0 - 72
src/SDrpManagement/projectPrediction/modules/editCopy.vue

@@ -1,72 +0,0 @@
-<template>
-  <div>
-    <el-button size="mini" type="text" @click="goDetail">编 辑</el-button>
-    <el-drawer
-        :visible.sync="drawer"
-        :with-header="false"
-        direction="rtl"
-        size="90%"
-        append-to-body
-    >
-      <div class="detail__panel">
-        <detailInfo :id="id" ref="subordinate"></detailInfo>
-      </div>
-    </el-drawer>
-  </div>
-</template>
-
-<script>
-import detailInfo from '../detail/index'
-export default {
-  name: "edit",
-  props:['data'],
-  components:{detailInfo},
-  data(){
-    return {
-      drawer:false,
-      mainAreaData:'',
-      mainData:"",
-      id:''
-    }
-  },
-  methods:{
-    goDetail(){
-
-      this.id = this.data.sa_salesforecastbillid
-      this.drawer = true
-    },
-    onShow(){
-      this.drawer = true
-      let query = {id:this.data.sa_salesforecastbillid,rowindex:this.data.rowindex}
-      this.$router.push({path:'/projectPredictionDetail',query:query})
-      this.$store.dispatch('changeDetailDrawer',true)
-      /*this.queryMainData()*/
-    },
-    async queryMainData () {
-      const res = await this.$api.requested({
-        "id": 20230705144704,
-        "content": {
-          "sa_salesforecastbillid":37
-        }
-      })
-      console.log(res.data,'1111')
-      this.mainData = res.data
-      this.changeDataStructure()
-    },
-    changeDataStructure () {
-      this.mainAreaData = [
-        {
-          label:'标题',
-          value: this.mainData.title
-        },
-      ]
-    }
-  },
-  mounted() {
-  }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 189 - 0
src/template/prediction/addTemp1.vue

@@ -0,0 +1,189 @@
+<template>
+  <div>
+    <el-button :type="btnType?btnType:'primary'" size="small" @click="onShow" :disabled="isDisabled || !disabled">{{title}}</el-button>
+    <el-drawer
+        :title="title"
+        :visible.sync="dialogVisible"
+        size="80%"
+        direction="rtl"
+        :show-close="false"
+        append-to-body
+        >
+      <div class="drawer__panel">
+        <div style="margin-bottom: 20px">
+          <uploadAllData
+              :dataType="dataType"
+              class="inline-16"
+              :total="total"
+              @handlePullApi="handlePullApi"
+              @handleUploadApi="handleUploadApi"
+              @onSuccess="onSuccess"
+          ></uploadAllData>
+          <el-button style="margin-left: -10px" :type="items.length === 0?'':'primary'" size="small" class="inline-16" @click="adds" :disabled="items.length === 0">批量添加</el-button>
+          <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
+          </el-input>
+        </div>
+
+        <el-row>
+          <el-col :span="24">
+            <tableList :checkbox="true" :data="list" :layout="tablecols" :opwidth="200" :custom="true" height="calc(100vh - 370px)" fixedName="operation" @selectionChange="checkboxCallBack">
+              <template v-slot:customcol="scope">
+                <div v-if="scope.column.columnname === 'operation'">
+                  <span>{{scope.column.data[scope.column.columnname]}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'tag'">
+                  <div v-for="item in scope.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+                    <el-tag  color="#3874F6" size="mini" type="primary" effect="dark">
+                      <span>{{item}}</span>
+                    </el-tag>
+                  </div>
+                  <div v-for="item in scope.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+                    <el-tag color="#FA8C16" size="mini" type="warning" effect="dark">
+                      <span>{{item}}</span>
+                    </el-tag>
+                  </div>
+                </div>
+                <div v-else-if="scope.column.columnname === 'defaultamount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'amount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'uninvoiceamount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'unoutamount'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'defaultprice'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <div v-else-if="scope.column.columnname === 'marketprice'">
+                  <span>¥{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+                </div>
+                <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
+              </template>
+              <template v-slot:opreation="scope">
+                <el-button size="mini" type="text" @click="add(scope.data)" :loading="loading">添 加</el-button>
+              </template>
+            </tableList>
+            <div  class="container normal-panel" style="text-align:right">
+              <el-pagination
+                  background
+                  @size-change="handleSizeChange"
+                  @current-change="handleCurrentChange"
+                  :current-page="param.content.pageNumber"
+                  :page-sizes="[20, 50, 100, 200]"
+                  :page-size="20"
+                  layout="total,sizes, prev, pager, next, jumper"
+                  :total="total">
+              </el-pagination>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import tableList from '@/components/table/index5'
+import uploadAllData from '@/components/uploadAllData/index'
+export default {
+  name: "addProjectTemp",
+  props:['param','tablecols','title','dataType','btnType','data','isDisabled','disabled'],
+  components:{tableList,uploadAllData},
+  data() {
+    return {
+      dialogVisible:false,
+      loading:false,
+      list:[],
+      items:[],
+      total:0,
+    }
+  },
+  methods:{
+    onShow(){
+      this.dialogVisible = true
+      console.log(this.param,'param')
+      this.listData()
+    },
+    async listData(){
+      console.log('列表数据执行',this.param)
+      if (this.title === '添加产品') {
+        this.param.content.sa_salesforecastprojectid = this.data.sa_salesforecastprojectid
+        this.param.content.sa_orderid = this.data.sa_orderid
+      }
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      console.log(this.list,'list')
+    },
+    add(val){
+      console.log(val)
+      this.loading = true
+      this.dialogVisible = false
+      if (this.title === '添加产品'){
+        this.$emit('add',val,this.data)
+        this.loading = false
+      }else {
+        this.$emit('add',val)
+        this.loading = false
+      }
+
+    },
+    checkboxCallBack(val){
+      console.log(val)
+      this.items = val
+    },
+    adds(){
+     /* let addItems = []
+      addItems = this.items.map(item=>{
+        return {
+          "sa_salesforecastprojectid": 0,
+          "ownerid": item.sa_projectid,
+          "discountrate":1
+        }
+      })*/
+      this.dialogVisible = false
+      if (this.title === '添加产品'){
+        this.$emit('adds',this.items,this.data)
+      }else {
+        this.$emit('adds',this.items)
+      }
+
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+    /*拉取数据*/
+    handlePullApi (pullApi) {
+      pullApi.content = JSON.parse(JSON.stringify(this.param.content))
+      pullApi.id = this.param.id
+      /*pullApi.content.sa_projectid = this.$route.query.id*/
+    },
+    /*上传数据*/
+    handleUploadApi (uploadApi,data) {
+      this.$emit('uploadData',uploadApi,data)
+    },
+    onSuccess () {
+      this.dialogVisible = false
+      this.$emit('onSuccess')
+    },
+  },
+  created() {
+
+  },
+}
+</script>
+
+<style scoped>
+
+</style>