Kaynağa Gözat

Merge remote-tracking branch 'origin/mergeBranch' into mergeBranch

qymljy 2 yıl önce
ebeveyn
işleme
8be118da82

+ 2 - 1
src/Form/projectChange/edit.vue

@@ -195,6 +195,7 @@ export default {
           this.$emit('onSuccess')
           this.$refs['form'].resetFields();
           this.dialogFormVisible = false
+          this.addChange = false
         })
       })
     },
@@ -202,7 +203,7 @@ export default {
     async getProjectAddres () {
       if (this.addChange) this.form.sa_project_addressid = ''
       let res = await this.$api.requested({
-        "id": "20221018153302",
+        "id": "20221022165503",
         "content": {
             "sys_enterpriseid": this.form.sys_enterpriseid,
             "pageNumber": 1,

+ 47 - 44
src/Form/publicManage/add.vue

@@ -5,53 +5,56 @@
       <div slot="title" style="font-size: 15px">
         新增公海池
       </div>
-      <div class="tab flex-align-center">
-        <p :class="activeName == '基本信息'?'tab-act':''" @click="tabChange('基本信息')">基本信息</p>
-        <p :class="activeName == '授权范围'?'tab-act':''" @click="tabChange('授权范围')">授权范围</p>
-      </div>
-      <div style="padding:16px 0;">
-        <el-form :model="form" v-show="activeName == '基本信息'" :rules="rules" ref="form" label-width="120px"
+      <span style="font-weight:bold">基本信息</span>
+      <el-divider></el-divider>
+      <div style="padding:16px 0;display:flex;flex-direction:column">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px"
           label-position="left" size="mini">
           <el-col :span="24">
-            <el-form-item label="名称" prop="poolname">
+            <el-form-item label="公海名称" prop="poolname">
               <el-input v-model="form.poolname" placeholder="请输入池名称"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="最大保客数" prop="countlimit">
-              <el-input v-model="form.countlimit" placeholder="成员最大保有客户数(0表示不设限)"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="跟进天数限制" prop="datafollowlimit">
-              <el-input v-model="form.datafollowlimit" placeholder="跟进天数限制(超过天数后自动退回,0表示不设限)"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="成交天数限制" prop="deallimit">
-              <el-input v-model="form.deallimit" placeholder="成交天数限制(超过天数后自动退回,0表示不限制)"></el-input>
+            <el-form-item label="公海成员">
+              <scopeOfauth :onlyread="true" :defaultData="defaultData" scrollHeight="200px"
+                obiectName="sa_customerpool" appidname="sa_customerpoolid" :dataid="dataid" @onChecked="onChecked">
+              </scopeOfauth>
             </el-form-item>
           </el-col>
+          <span style="font-weight:bold">规则设置</span>
+          <el-divider></el-divider>
           <el-col :span="24">
-            <el-form-item label="说明" prop="remarks">
-              <el-input v-model="form.remarks" type="textarea" placeholder="请输入说明"></el-input>
-            </el-form-item>
+          <el-form-item label="分配领取规则" prop="freeget">
+            <el-radio-group v-model="form.freeget">
+              <el-radio :label="1">成员可见可领取,管理员可分配</el-radio>
+              <el-radio :label="0">成员可见不可领取,管理员可分配</el-radio>
+            </el-radio-group>
+          </el-form-item>
           </el-col>
           <el-col :span="24">
-            <div style="display:flex;justify-content: space-evenly;margin-bottom:20px">
-              <div>
-                <el-checkbox :true-label="1" :false-label="0" v-model="form.freeget" checked="checked">自由领取
-                </el-checkbox>
-                <el-checkbox :true-label="1" :false-label="0" v-model="form.isused" checked="checked">是否启用</el-checkbox>
-                <el-checkbox :true-label="1" :false-label="0" v-model="form.isdefault" checked="checked">是否默认
-                </el-checkbox>
-              </div>
+          <el-form-item label="回收规则" prop="datafollowlimit">
+            <div>
+              <el-radio-group v-model="isOpen">
+                <el-radio :label="1">开启自动回收</el-radio>
+                <el-radio :label="0">关闭自动回收</el-radio>
+              </el-radio-group>
+            </div>
+            <div v-show="isOpen == 1">
+              <div><el-input size="mini" style="width:50px;margin-right:10px" v-model="form.datafollowlimit" />天,未跟进,自动回收至公海,负责人清空</div>
+              <div><el-input size="mini" style="width:50px;margin-right:10px" v-model="form.deallimit" />天,未成交,自动回收至公海,负责人清空</div>
             </div>
+          </el-form-item>
           </el-col>
         </el-form>
-        <scopeOfauth :onlyread="true" v-show="activeName == '授权范围'" :defaultData="defaultData" scrollHeight="200px"
-          obiectName="sa_customerpool" appidname="sa_customerpoolid" :dataid="dataid" @onChecked="onChecked">
-        </scopeOfauth>
+         <el-alert
+          type="warning">
+          <div slot="title">
+            <p>分享退回规则:</p>
+            <p>成员领取后可分享客户至公海(可选公海),分享不清空负责人</p>
+            <p>成员退回客户至公海(原路退回:若公海作废,则退回至默认公海),退回清空负责人</p>
+          </div>
+        </el-alert>
       </div>
       <div class="dialog-footer">
         <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
@@ -70,26 +73,26 @@ export default {
     return {
       dialogFormVisible: false,
       authData: '',
-      defaultData: [],
-      activeName: '基本信息',
+      isOpen:0,
+      defaultData: [{}],
       dataid: '',
       form: {
         "sa_customerpoolid": 0,
         "poolname": "", //池名称
-        "freeget": 1, //自由领取
+        "freeget": 0, //自由领取
         "isused": 1, //是否启用
         "remarks": "",
-        "countlimit": '', //成员最大保有客户数(0表示不设限)
-        "datafollowlimit": '', //跟进天数限制(超过天数后自动退回,0表示不设限)
-        "deallimit": '', //成交天数限制(超过天数后自动退回,0表示不限制)
+        "countlimit": 0, //成员最大保有客户数(0表示不设限)
+        "datafollowlimit": 0, //跟进天数限制(超过天数后自动退回,0表示不设限)
+        "deallimit": 0, //成交天数限制(超过天数后自动退回,0表示不限制)
         "isdefault": 1 //是否默认
       },
       rules: {
         poolname: [
           { required: true, message: '请输入名称', trigger: 'blur' },
         ],
-        countlimit: [
-          { required: true, message: '请输入数据', trigger: 'blur' }
+        freeget: [
+          { required: true, message: '请选择领取规则', trigger: 'blur' }
         ],
         datafollowlimit: [
           { required: true, message: '请输入数据', trigger: 'blur' }
@@ -165,9 +168,6 @@ export default {
 
       })
     },
-    tabChange (val) {
-      this.activeName = val
-    },
   }
 }
 </script>
@@ -188,4 +188,7 @@ export default {
   color: #3874f6 !important;
   border-bottom: 2px solid #3874f6 !important;
 }
+/deep/.el-divider {
+  margin: 15px 0;
+}
 </style>

+ 69 - 65
src/Form/publicManage/edit.vue

@@ -3,56 +3,58 @@
     <el-button size="mini" type="text" @click="editBtn">编 辑</el-button>
     <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="50%">
       <div slot="title" style="font-size: 15px">
-        编辑公海池
+        新增公海池
       </div>
-      <div class="tab flex-align-center">
-        <p :class="activeName == '基本信息'?'tab-act':''" @click="tabChange('基本信息')">基本信息</p>
-        <p :class="activeName == '授权范围'?'tab-act':''" @click="tabChange('授权范围')">授权范围</p>
-      </div>
-      <div style="padding:16px 0;">
-        <el-form :model="form" v-show="activeName == '基本信息'" :rules="rules" ref="form" label-width="120px"
+      <span style="font-weight:bold">基本信息</span>
+      <el-divider></el-divider>
+      <div style="padding:16px 0;display:flex;flex-direction:column">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px"
           label-position="left" size="mini">
           <el-col :span="24">
-            <el-form-item label="名称" prop="poolname">
+            <el-form-item label="公海名称" prop="poolname">
               <el-input v-model="form.poolname" placeholder="请输入池名称"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="最大保客数" prop="countlimit">
-              <el-input v-model="form.countlimit" placeholder="成员最大保有客户数(0表示不设限)"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="跟进天数限制" prop="datafollowlimit">
-              <el-input v-model="form.datafollowlimit" placeholder="跟进天数限制(超过天数后自动退回,0表示不设限)"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="成交天数限制" prop="deallimit">
-              <el-input v-model="form.deallimit" placeholder="成交天数限制(超过天数后自动退回,0表示不限制)"></el-input>
+            <el-form-item label="公海成员">
+              <scopeOfauth :onlyread="true" :defaultData="defaultData" scrollHeight="200px"
+                obiectName="sa_customerpool" appidname="sa_customerpoolid" :dataid="dataid" @onChecked="onChecked">
+              </scopeOfauth>
             </el-form-item>
           </el-col>
+          <span style="font-weight:bold">规则设置</span>
+          <el-divider></el-divider>
           <el-col :span="24">
-            <el-form-item label="说明" prop="remarks">
-              <el-input v-model="form.remarks" type="textarea" placeholder="请输入说明"></el-input>
-            </el-form-item>
+          <el-form-item label="分配领取规则" prop="freeget">
+            <el-radio-group v-model="form.freeget">
+              <el-radio :label="1">成员可见可领取,管理员可分配</el-radio>
+              <el-radio :label="0">成员可见不可领取,管理员可分配</el-radio>
+            </el-radio-group>
+          </el-form-item>
           </el-col>
           <el-col :span="24">
-            <div style="display:flex;justify-content: space-evenly;margin-bottom:20px">
-              <div>
-                <el-checkbox :true-label="1" :false-label="0" v-model="form.freeget" checked="checked">自由领取
-                </el-checkbox>
-                <el-checkbox :true-label="1" :false-label="0" v-model="form.isused" checked="checked">是否启用</el-checkbox>
-                <el-checkbox :true-label="1" :false-label="0" v-model="form.isdefault" checked="checked">是否默认
-                </el-checkbox>
-              </div>
+          <el-form-item label="回收规则" prop="datafollowlimit">
+            <div>
+              <el-radio-group v-model="isOpen">
+                <el-radio :label="1">开启自动回收</el-radio>
+                <el-radio :label="0">关闭自动回收</el-radio>
+              </el-radio-group>
+            </div>
+            <div v-show="isOpen == 1">
+              <div><el-input size="mini" style="width:50px;margin-right:10px" v-model="form.datafollowlimit" />天,未跟进,自动回收至公海,负责人清空</div>
+              <div><el-input size="mini" style="width:50px;margin-right:10px" v-model="form.deallimit" />天,未成交,自动回收至公海,负责人清空</div>
             </div>
+          </el-form-item>
           </el-col>
         </el-form>
-        <scopeOfauth :onlyread="true" v-show="activeName == '授权范围'" :defaultData="defaultData" scrollHeight="200px"
-          obiectName="sa_customerpool" appidname="sa_customerpoolid" :dataid="data.sa_customerpoolid"
-          @onChecked="onChecked">
-        </scopeOfauth>
+         <el-alert
+          type="warning">
+          <div slot="title">
+            <p>分享退回规则:</p>
+            <p>成员领取后可分享客户至公海(可选公海),分享不清空负责人</p>
+            <p>成员退回客户至公海(原路退回:若公海作废,则退回至默认公海),退回清空负责人</p>
+          </div>
+        </el-alert>
       </div>
       <div class="dialog-footer">
         <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
@@ -64,33 +66,34 @@
 
 <script>
 import scopeOfauth from '@/HDrpManagement/publicManage/components/scopeOfAuthority/index'
-import { log } from '@antv/g2plot/lib/utils'
 export default {
   name: "add",
+  props:['data'],
   components: { scopeOfauth },
   data () {
     return {
       dialogFormVisible: false,
       authData: '',
-      defaultData: '',
-      activeName: '基本信息',
+      isOpen:0,
+      defaultData: [],
+      dataid: '',
       form: {
         "sa_customerpoolid": 0,
         "poolname": "", //池名称
-        "freeget": 1, //自由领取
+        "freeget": 0, //自由领取
         "isused": 1, //是否启用
         "remarks": "",
-        "countlimit": '', //成员最大保有客户数(0表示不设限)
-        "datafollowlimit": '', //跟进天数限制(超过天数后自动退回,0表示不设限)
-        "deallimit": '', //成交天数限制(超过天数后自动退回,0表示不限制)
+        "countlimit": 0, //成员最大保有客户数(0表示不设限)
+        "datafollowlimit": 0, //跟进天数限制(超过天数后自动退回,0表示不设限)
+        "deallimit": 0, //成交天数限制(超过天数后自动退回,0表示不限制)
         "isdefault": 1 //是否默认
       },
       rules: {
         poolname: [
           { required: true, message: '请输入名称', trigger: 'blur' },
         ],
-        countlimit: [
-          { required: true, message: '请输入数据', trigger: 'blur' }
+        freeget: [
+          { required: true, message: '请选择领取规则', trigger: 'blur' }
         ],
         datafollowlimit: [
           { required: true, message: '请输入数据', trigger: 'blur' }
@@ -103,23 +106,35 @@ export default {
   },
   provide () {
     return {
-      rowData: () => this.data
+      rowData: () => ''
     }
   },
-  props: ['data'],
+  created () {
+  },
   methods: {
     editBtn () {
-      this.query_auth()
       this.dialogFormVisible = true
-      this.form = Object.assign({}, this.form, this.data)
+      this.form = Object.assign({},this.form,this.data)
+      if (this.form.datafollowlimit || this.form.deallimit) {
+        this.isOpen = 1
+      }
+      this.getdefaultData()
+    },
+    async getdefaultData () {
+      let res = await this.$api.requested({
+        "id": 20221022135202,
+        "content": {
+            "sa_customerpoolid":this.data.sa_customerpoolid
+        }
+      })
+      this.defaultData = res.data
     },
     // 获取保存授权范围数据
     onChecked (param) {
       this.authData = param
       console.log(this.authData);
-
     },
-    async onSubmit () {
+    onSubmit () {
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
         if (!this.authData) {
@@ -167,23 +182,9 @@ export default {
             this.dialogFormVisible = false
           })
         }
+
       })
     },
-    // 查询授权信息
-    async query_auth () {
-      const res = await this.$api.requested({
-        "accesstoken": "456ae1e802b695b996e1bb8c2c405579",
-        "id": 20221022135202,
-        "content": {
-          "sa_customerpoolid": this.data.sa_customerpoolid
-        }
-      })
-      this.defaultData = res.data
-      console.log(this.defaultData);
-    },
-    tabChange (val) {
-      this.activeName = val
-    },
   }
 }
 </script>
@@ -204,4 +205,7 @@ export default {
   color: #3874f6 !important;
   border-bottom: 2px solid #3874f6 !important;
 }
+/deep/.el-divider {
+  margin: 15px 0;
+}
 </style>

+ 1 - 1
src/HDrpManagement/projectChange/components/Locked.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="inline-16">
     <el-popconfirm :title="`确定${rowData.locked == 0 ? '锁定' : '解锁'}吗?`" @confirm="CheckRow()">
-      <el-button slot="reference" size="small" type="text">{{rowData.locked == 0 ? '锁定' : '解锁'}}</el-button>
+      <el-button slot="reference" size="small" style="width:100%">{{rowData.locked == 0 ? '锁定' : '解锁'}}</el-button>
     </el-popconfirm>
   </div>
 </template>

+ 1 - 1
src/HDrpManagement/projectChange/components/check.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="inline-16">
     <el-popconfirm title="确定通过审核吗?" @confirm="CheckRow()">
-      <el-button slot="reference" size="small" type="text">审 核</el-button>
+      <el-button slot="reference" size="small" style="width:100%">审 核</el-button>
     </el-popconfirm>
   </div>
 </template>

+ 45 - 10
src/HDrpManagement/projectChange/components/del.vue

@@ -1,8 +1,23 @@
 <template>
   <div class="inline-16">
-    <el-popconfirm title="确定作废当前商机吗?" @confirm="deleteRow()">
-      <el-button slot="reference" size="small" type="text">作 废</el-button>
-    </el-popconfirm>
+    <el-button slot="reference" size="small" type="text" @click="dialogTableVisible=true">作 废</el-button>
+    <el-dialog title="新增产品组" append-to-body :visible.sync="dialogTableVisible" width="30%">
+      <el-row :gutter="20">
+        <el-form label-position="right" ref="form" :rules="rules" inline label-width="100px" :model="form" size="small">
+          <el-col :span="24">
+            <el-form-item label="作废原因" prop="deletereason">
+              <el-input v-model="form.deletereason" placeholder="请输入商品组名称"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <div>
+          <el-button @click="dialogTableVisible = false" size="small">取 消</el-button>
+          <el-button type="primary" @click="submit" size="small">确 定</el-button>
+        </div>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -13,15 +28,27 @@ nameId:接口id
 nameKey:接口字段
  */
 export default {
-  props: ['id','nameId','nameKey'],
+  data () {
+    return {
+      dialogTableVisible:false,
+      form: {
+        "sa_projectids":[],
+        "deletereason": ""
+      },
+      rules:{
+        deletereason: [
+          { required: true, message: '请填写作废原因', trigger: 'blur' },
+        ],
+      }
+    }
+  },
+  props: ['id'],
   methods: {
-    async deleteRow() {
+    async submit() {
+      this.form.sa_projectids = [this.id]
       let res = await this.$api.requested({
-        "id":this.nameId,
-        "version":1,
-        "content": {
-            [this.nameKey]:[this.id]
-        }
+        "id": 20221020144302,
+        "content": this.form
       })
       this.tool.showMessage(res,() => {
         this.$emit('deleteSuccess')
@@ -31,3 +58,11 @@ export default {
 }
 
 </script>
+<style scoped>
+/deep/.el-form-item {
+  width: 100% !important;
+}
+/deep/.el-form-item__content {
+  width: calc(100% - 100px);
+}
+</style>

+ 2 - 2
src/HDrpManagement/projectChange/components/putPeople.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
-    <el-button size="mini" type="text" @click="btn">报 备</el-button>
-    <el-dialog title="选择报备人" :visible.sync="dialogFormVisible" width="30%">
+    <el-button size="mini" @click="btn" style="width:100%">报 备</el-button>
+    <el-dialog title="选择报备人" append-to-body :visible.sync="dialogFormVisible" width="30%">
       <el-row :gutter="20">
         <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
           <el-col :span="20">

+ 4 - 47
src/HDrpManagement/projectChange/index.vue

@@ -37,18 +37,6 @@
           class="inline-16" 
           @click="$router.push({path:'/projectChangeDetail',query:{id:scope.data.data.sa_projectid,rowindex:scope.data.data.rowindex}})">详 情
         </el-button>
-        <putPeople 
-          @onSuccess="$refs.basicLayout.listData()" 
-          v-if="!scope.data.data.reportby &&  tool.checkAuth($route.name,'put')" class="inline-16" 
-          :data="putPeople" 
-          :rowData="scope.data.data"
-        />
-        <Check 
-          v-if="!scope.data.data.reportcheckby && scope.data.data.reportby == userInfo.name && tool.checkAuth($route.name,'check')" 
-          @checkSuccess="$refs.basicLayout.listData()" 
-          :rowData="scope.data.data"
-        />
-        <Locked v-if="tool.checkAuth($route.name,'Locked')" :rowData="scope.data.data" @onSuccess="$refs.basicLayout.listData()"/>
         <Del 
           :id="scope.data.data.sa_projectid" 
           :nameId="20221020144302" 
@@ -64,12 +52,9 @@
 
 <script>
 import Del from './components/del'
-import putPeople from './components/putPeople'
-import Check from './components/check'
-import Locked from './components/Locked'
 import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
 export default {
-  components:{Del,putPeople,Check,TimeSelect,Locked},
+  components:{Del,TimeSelect},
   name: "index",
   provide () {
     return {
@@ -88,8 +73,6 @@ export default {
       projectType:'',
       projectLead:'',
       projectPanl:'',
-      putPeople:'',
-      userInfo:'',
       options:[],
       editableTabs: [{
         title: '全部',
@@ -113,8 +96,6 @@ export default {
     this.getProjectPanl()
     this.getEnterprise()
     this.getSysetms()
-    this.getPutPeople()
-    this.getUserInfo()
   },
   methods: {
     /* 获取联系人:负责人列表 */
@@ -169,32 +150,6 @@ export default {
       })
       this.projectPanl = res.data
     },
-    /* 可报备人 */
-    async getPutPeople () {
-      let res = await this.$api.requested({
-        "id": 20221021093202,
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 999999,
-          "where": {
-              "condition": ""
-          }
-        },
-      })
-      this.putPeople = res.data
-    },
-    /* 获取当前用户信息 */
-    async getUserInfo() {
-      let res = await this.$api.requested({
-        "classname": "common.usercenter.usercenter",
-        "method": "queryUserMsg",
-        "content": {
-        }
-      })
-      this.userInfo = res.data
-      console.log(this.userInfo);
-      
-    },
     queryData(id){
       console.log("执行")
       this.$refs['basicLayout'].param.content.type = id
@@ -225,5 +180,7 @@ export default {
 </script>
 
 <style scoped>
-
+/deep/.container {
+  padding-top: 0;
+}
 </style>

+ 56 - 5
src/HDrpManagement/projectChange/modules/detail.vue

@@ -16,6 +16,23 @@
     <tagPanl slot="tags" :data="tagObj" ownertable="sa_project" :id="mainData.sa_projectid" @onSuccess="queryMainData"/>
     <div slot="customOperation">
       <!-- 此区域提供了自定义操作按钮 -->
+      <el-popover placement="bottom" style="20px">
+        <putPeople 
+          @onSuccess="queryMainData" 
+          v-if="!mainData.reportby &&  tool.checkAuth($route.name,'put')" class="inline-16" 
+          :data="putPeople" 
+          :rowData="mainData"
+          style="width:100%;margin-bottom:5px"
+        />
+        <Check 
+          v-if="!mainData.reportcheckby && mainData.reportby == userInfo.name && tool.checkAuth($route.name,'check')" 
+          @checkSuccess="queryMainData" 
+          :rowData="mainData"
+          style="width:100%;margin-bottom:5px"
+        />
+        <Locked style="width:100%;margin-bottom:5px" v-if="tool.checkAuth($route.name,'Locked')" :rowData="mainData" @onSuccess="queryMainData"/>
+        <el-button size="mini" slot="reference" icon="el-icon-more"></el-button>
+      </el-popover>
     </div>
     <div slot="slot0" class="container normal-panel">
       <BaseInfo v-if="detailInfo" :detailInfo="detailInfo"/>
@@ -41,8 +58,11 @@ import ProjectSet from './modules/projectSet/index'
 import Rival from './modules/rival/index'
 import BaseInfo from './modules/baseInfo/baseInfo'
 import StageTask from './modules/stageTask/index'
+import putPeople from '../components/putPeople'
+import Check from '../components/check'
+import Locked from '../components/Locked'
 export default {
-  components:{Quotation,ProjectSet,Rival,BaseInfo,StageTask},
+  components:{Quotation,ProjectSet,Rival,BaseInfo,StageTask,putPeople,Check,Locked},
   data () {
     return {
       mainData:'',
@@ -55,7 +75,9 @@ export default {
       projectPanl:'',
       projectAddress:'',
       detailInfo:'',
-      tagObj:''
+      tagObj:'',
+      putPeople:'',
+      userInfo:''
     }
   },
   provide () {
@@ -102,6 +124,32 @@ export default {
         }
       })
     },
+    /* 获取当前用户信息 */
+    async getUserInfo() {
+      let res = await this.$api.requested({
+        "classname": "common.usercenter.usercenter",
+        "method": "queryUserMsg",
+        "content": {
+        }
+      })
+      this.userInfo = res.data
+      console.log(this.userInfo);
+      
+    },
+    /* 可报备人 */
+    async getPutPeople () {
+      let res = await this.$api.requested({
+        "id": 20221021093202,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 999999,
+          "where": {
+              "condition": ""
+          }
+        },
+      })
+      this.putPeople = res.data
+    },
     async getSysetms () {
       /* 获取项目类型 */
       let res = await this.$store.dispatch('optiontypeselect','projecttype')
@@ -138,7 +186,7 @@ export default {
     /* 获取项目地址 */
     async getProjectAddres () {
       let res = await this.$api.requested({
-        "id": "20221018153302",
+        "id": "20221022165503",
         "content": {
             "sys_enterpriseid": this.mainData.sys_enterpriseid,
             "pageNumber": 1,
@@ -149,18 +197,19 @@ export default {
         }
       })
       this.projectAddress = res.data
+      console.log(this.projectAddress);
+      
       /* 获取项目等级 */
       let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
       this.projectLead = res2.data
       this.changeDataStructure()
-      console.log(res);
     },
     changeDataStructure () {
       this.detailInfo = {
         baseInfo: [
           {label:'项目编号',value:this.mainData.projectnum ? this.mainData.projectnum : '--'},
           {label:'项目名称',value:this.mainData.projectname ? this.mainData.projectname : '--'},
-          {label:'项目地址',value:this.projectAddress.find(item => item.contactsid == this.mainData.sa_project_addressid).address},
+          {label:'项目地址',value:this.projectAddress.find(item => item.contactsid == this.mainData.sa_project_addressid) != undefined ? this.projectAddress.find(item => item.contactsid == this.mainData.sa_project_addressid).address : '--'},
           {label:'项目等级',value:this.projectLead.find(item => item.rowindex == this.mainData.grade).value},
           {label:'项目类型',value:this.mainData.projecttype ? this.mainData.projecttype : '--'},
           {label:'当前项目阶段',value:this.mainData.stagename ? this.mainData.stagename : '--'},
@@ -232,6 +281,8 @@ export default {
   },
   async created () {
     this.queryMainData(this.$route.query.id)
+    this.getUserInfo()
+    this.getPutPeople()
     this.getProjectPanl()
     this.getEnterprise()
     this.getSysetms()

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

@@ -5,7 +5,7 @@
         <el-descriptions-item label="项目编号">{{ data.projectnum ? data.projectnum : '--' }}</el-descriptions-item>
         <el-descriptions-item label="项目名称">{{ data.projectname ? data.projectname : '--' }}</el-descriptions-item>
         <el-descriptions-item label="项目地址" v-if="projectAddress()">{{ projectAddress().find(item => item.contactsid == data.sa_project_addressid).address }}</el-descriptions-item>
-        <el-descriptions-item label="项目等级" v-if="projectAddress()">{{ projectLead().find(item => item.rowindex == data.grade).value }}</el-descriptions-item>
+        <el-descriptions-item label="项目等级" v-if="projectLead()">{{ projectLead().find(item => item.rowindex == data.grade).value }}</el-descriptions-item>
         <el-descriptions-item label="项目类型">{{ data.projecttype ? data.projecttype : '--' }}</el-descriptions-item>
         <el-descriptions-item label="当前项目阶段">{{ data.stagename ? data.stagename : '--' }}</el-descriptions-item>
         <el-descriptions-item label="项目报备时间">{{ data.reportcheckdate ? data.reportcheckdate : '--' }}</el-descriptions-item>

+ 9 - 3
src/HDrpManagement/projectChange/modules/modules/stageTask/index.vue

@@ -171,12 +171,12 @@ export default {
         }
       })
       this.stageList = res.data
+      console.log(this.stageList);
+      
       /* 如果已有阶段 默认id释放 */
-      if(this.calcIndex) {
+      if(this.calcIndex != -1) {
         this.clickCurrent = null
         this.currentData = this.stageList[this.calcIndex]
-        console.log(this.currentData);
-        
       } else {
         this.currentData = this.stageList[0]
       }
@@ -319,4 +319,10 @@ export default {
   .box-card .task .content p {
     margin-bottom: 10px;
   }
+  /deep/.el-step__head {
+    max-width: 400px;
+  }
+  /deep/.el-step__main {
+    max-width: 400px;
+  }
 </style>

+ 5 - 2
src/HDrpManagement/publicManage/components/scopeOfAuthority/index.vue

@@ -1,10 +1,10 @@
 <template>
-  <div class="container normal-panel">
+  <div class="normal-panel panel">
     <div class="tab flex-align-center">
       <p :class="activeName === '组织架构'?'tab-act':''" @click="tabChange('组织架构')">组织架构</p>
       <p :class="activeName === '营销组织'?'tab-act':''" @click="tabChange('营销组织')">营销组织</p>
     </div>
-    <div style="padding:16px 0;">
+    <div style="padding-top:16px">
       <dep v-show="activeName === '组织架构'" :defaultData="defaultData" :scrollHeight="scrollHeight" :obiectName="obiectName" :obiectId="obiectId" @onParams="onParams"></dep>
       <mar v-show="activeName === '营销组织'" :defaultData="defaultData" :scrollHeight="scrollHeight" :obiectName="obiectName" :obiectId="obiectId" @onAgentParams="onAgentParams"></mar>
     </div>
@@ -89,4 +89,7 @@ export default {
   color:#3874F6 !important;
   border-bottom: 2px solid #3874F6 !important;
 }
+.panel {
+  border: 1px solid #cccccc;
+}
 </style>

+ 72 - 25
src/HDrpManagement/publicManage/components/scopeOfAuthority/modules/dep_auth.vue

@@ -1,8 +1,12 @@
 <template>
   <div>
     <el-row :gutter="20">
+      <el-col :span="24" style="padding:0 16px">
+        <el-input size="small" v-model="param.content.where.condition" class="normal-margin" placeholder="搜索人员" clearable @keyup.enter.native="searchChange"></el-input>
+      </el-col>
       <el-col :span="12">
         <div class="tree-panel">
+        <div :class="['allData',{'active':active}]" @click="allClick">全部</div>
           <el-tree
             ref="tree"
             :data="deplist"
@@ -26,23 +30,21 @@
         </div>
       </el-col>
       <el-col :span="12">
-        <div class="flex-align-center flex-between normal-margin">
-          <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全 选</el-checkbox>
-          <el-checkbox v-model="isonlymanager_dept" @change="$emit('onParams',departmentids,checkedMenbers,isonlymanager_dept)">仅组织负责人可见</el-checkbox>
-        </div>
         <div>
-          <el-input size="small" v-model="searchValue" class="normal-margin" placeholder="搜索人员" clearable></el-input>
           <div :style="{ height: scrollHeight?scrollHeight:'400px'}"  style="overflow-y:scroll">
             <el-checkbox-group :disabled="pageOnlyRead" v-model="checkedMenbers" @change="handleCheckedChange">
               <div style="margin-bottom:10px" v-for="item in menberData" :key="item.index">
-                <el-checkbox v-if="searchValue" v-show="item.name === searchValue" :label="item.hrid">{{item.name}}</el-checkbox>
-                <el-checkbox v-else :label="item.hrid">{{item.name}}</el-checkbox>
+                <!-- <el-checkbox v-if="searchValue" v-show="item.name === searchValue" :label="item.hrid">{{item.name}}</el-checkbox> -->
+                <el-checkbox :label="item.hrid">{{item.name}}</el-checkbox>
               </div>
             </el-checkbox-group>
           </div>
         </div>
       </el-col>
     </el-row>
+    <div class="footer">
+      <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">{{`已选${checkedMenbers.length}\\${allDataLength}`}}</el-checkbox>
+    </div>
   </div>
 </template>
 
@@ -62,6 +64,8 @@ export default {
   },
   data () {
     return {
+      active:true,
+      allDataLength:'',
       deplist:[], // 部门树状结构数据
       responseData:[], // 部门信息
       menberData:[], // 人员信息
@@ -73,9 +77,35 @@ export default {
       isonlymanager_dept:false,
       checkAll:false,
       isIndeterminate:false,
+      param: {
+        "classname": "webmanage.hr.hr",
+        "method": "query_hrList",
+        "content": {
+            "nocahe":true,
+            "pageNumber": 1,
+            "pageSize": 10000,
+            "departmentids":[],
+            "containssub":0,
+            "where": {
+              "condition": ""
+            }
+        }
+      }
     }
   },
   methods:{
+    searchChange () {
+      this.active = true
+      this.$refs.tree.setCurrentKey(null)
+      this.param.content.isAll = 1
+      this.menberList([])
+    },
+    allClick () {
+      this.active = true
+      this.$refs.tree.setCurrentKey(null)
+      this.param.content.isAll = 1
+      this.menberList([])
+    },
     // 查询部门
     async department () {
       console.log(this.$route.query.id,this.obiectId)
@@ -134,22 +164,11 @@ export default {
 
     // 根据组织架构范围查询人员
     async menberList (val) {
-      let param = {
-        "classname": "webmanage.hr.hr",
-        "method": "query_hrList",
-        "content": {
-            "nocahe":true,
-            "pageNumber": 1,
-            "pageSize": 10000,
-            "departmentids":val,
-            "containssub":0,
-            "where": {
-              "condition": ""
-            }
-        }
-      }
-      const res = await this.$api.requested(param)
+      this.param.content.departmentids = [val]
+      const res = await this.$api.requested(this.param)
       this.menberData = res.data
+      if(this.allDataLength == '') this.allDataLength = this.menberData.length
+      // this.allDataLength = this.menberData.length
       this.checkedmenber()
     },
     // 获取当前查询的人员范围选中的人员
@@ -169,9 +188,11 @@ export default {
     // 点击部门
     nodeClick (row,node,comp) {
       this.checkAll = false
+      this.param.content.isAll = 0
       this.clickdepid = row.departmentid
-      this.menberList([row.departmentid])
-      // this.onCheckedMenber.length === this.menberData.length?this.checkAll = true:this.checkAll = false
+      this.menberList(row.departmentid)
+      this.active = false
+      
     },
     // 勾选部门
     nodeCheck (checkedNodes,checkedKeys,halfCheckedNodes,halfCheckedKeys) {
@@ -216,7 +237,9 @@ export default {
       this.$refs.tree.setCheckedKeys(arr1)
       this.isIndeterminate = false;
       if (this.checkAll) {
-        this.checkedMenbers = this.checkedMenbers.concat(arr)
+        this.checkedMenbers = arr
+        console.log(arr);
+        
         this.$emit('onParams',this.departmentids,this.checkedMenbers,this.isonlymanager_dept)
       } else {
         let Adata = this.checkedMenbers.filter(itemF=>!arr.some(ele=>ele===itemF))
@@ -228,6 +251,7 @@ export default {
   mounted () {
     setTimeout(() => {
       this.department()
+      this.allClick()
     }, 1000);
   },
   watch:{
@@ -259,8 +283,31 @@ export default {
 <style scoped>
 .tree-panel{
   padding: 16px;
+  margin: 0 16px;
   font-size: 14px;
   /* width:300px; */
   background: #FAFAFA;
 }
+.footer {
+  padding-left:16px;
+  border-top: 1px solid #cccccc;
+}
+.allData {
+  height: 26px;
+  line-height: 26px;
+  font-size: 14px;
+  cursor: pointer;
+  padding-left: 6px;
+  margin-bottom: 6px;
+}
+.allData:hover {
+  background: #f5f7fa;
+}
+.active {
+  background: #4F7BFD !important;
+  border-radius: 3px;
+  color: #ffffff;
+  margin-bottom: 6px;
+  padding-left: 6px;
+}
 </style>

+ 64 - 19
src/HDrpManagement/publicManage/components/scopeOfAuthority/modules/mar_auth.vue

@@ -1,8 +1,12 @@
 <template>
   <div>
     <el-row :gutter="20">
+      <el-col :span="24" style="padding:0 16px">
+        <el-input size="small" v-model="param.content.where.condition" class="normal-margin" placeholder="搜索人员" clearable @keyup.enter.native="searchChange"></el-input>
+      </el-col>
       <el-col :span="12">
         <div class="tree-panel">
+          <div :class="['allData',{'active':active}]" @click="allClick">全部</div>
           <el-tree
             ref="tree"
             :data="deplist"
@@ -26,12 +30,7 @@
         </div>
       </el-col>
       <el-col :span="12">
-        <div class="flex-align-center flex-between normal-margin">
-          <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全 选</el-checkbox>
-          <el-checkbox v-model="isonlymanager_agent" @change="$emit('onAgentParams',saleareaids,checkedMenbers,isonlymanager_agent)">仅组织负责人可见</el-checkbox>
-        </div>
         <div>
-          <el-input size="small" v-model="searchValue" class="normal-margin" placeholder="搜索人员" clearable></el-input>
           <div :style="{ height: scrollHeight?scrollHeight:'400px'}"  style="overflow-y:scroll">
             <!-- <el-checkbox-group :disabled="pageOnlyRead" v-model="checkedMenbers" @change="handleCheckedChange">
               <div style="margin-bottom:10px" v-for="item in menberData" :key="item.index">
@@ -49,6 +48,9 @@
         </div>
       </el-col>
     </el-row>
+    <div class="footer">
+      <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">{{`已选${checkedMenbers.length}\\${allDataLength}`}}</el-checkbox>
+    </div>
   </div>
 </template>
 
@@ -68,6 +70,8 @@ export default {
   },
   data () {
     return {
+      active:true,
+      allDataLength:'',
       deplist:[], // 部门树状结构数据
       responseData:[], // 部门信息
       menberData:[], // 人员信息
@@ -79,9 +83,33 @@ export default {
       isonlymanager_agent:false,
       checkAll:false,
       isIndeterminate:false,
+      param: {
+        "id":20221011144903,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 10000,
+            "sa_saleareaids":[],
+            "containssub":0,
+            "where": {
+              "condition": ""
+            }
+        }
+      }
     }
   },
   methods:{
+    searchChange () {
+      this.active = true
+      this.$refs.tree.setCurrentKey(null)
+      this.param.content.isAll = 1
+      this.menberList([])
+    },
+    allClick () {
+      this.active = true
+      this.$refs.tree.setCurrentKey(null)
+      this.param.content.isAll = 1
+      this.menberList([])
+    },
     // 查询区域
     async department () {
       const res = await this.$api.requested({
@@ -134,20 +162,11 @@ export default {
 
     // 根据组织架构范围查询人员
     async menberList (val) {
-      let param = {
-        "id":20221011144903,
-        "content": {
-            "pageNumber": 1,
-            "pageSize": 10000,
-            "sa_saleareaids":val,
-            "containssub":0,
-            "where": {
-              "condition": ""
-            }
-        }
-      }
-      const res = await this.$api.requested(param)
+      this.param.content.sa_saleareaids = val
+      const res = await this.$api.requested(this.param)
       this.menberData = res.data
+      if(this.allDataLength == '') this.allDataLength = this.menberData.length
+      // this.allDataLength = this.menberData.length
       this.checkedmenber()
     },
     // 获取当前查询的人员范围选中的人员
@@ -166,8 +185,10 @@ export default {
     // 点击部门
     nodeClick (row,node,comp) {
       this.checkAll = false
+      this.param.content.isAll = 0
       this.clickdepid = row.sa_saleareaid
       this.menberList([row.sa_saleareaid])
+      this.active = false
       // this.onCheckedMenber.length === this.menberData.length?this.checkAll = true:this.checkAll = false
     },
     // 勾选部门
@@ -212,7 +233,7 @@ export default {
       this.$refs.tree.setCheckedKeys(arr1)
       this.isIndeterminate = false;
       if (this.checkAll) {
-        this.checkedMenbers = this.checkedMenbers.concat(arr)
+        this.checkedMenbers = arr
         this.$emit('onAgentParams',this.saleareaids,this.checkedMenbers,this.isonlymanager_agent)
       } else {
         let Adata = this.checkedMenbers.filter(itemF=>!arr.some(ele=>ele===itemF))
@@ -224,6 +245,7 @@ export default {
   mounted () {
     setTimeout(() => {
       this.department()
+      this.allClick()
     }, 1000);
   },
   watch:{
@@ -257,8 +279,31 @@ export default {
 <style scoped>
 .tree-panel{
   padding: 16px;
+  margin: 0 16px;
   font-size: 14px;
   /* width:300px; */
   background: #FAFAFA;
 }
+.footer {
+  padding-left:16px;
+  border-top: 1px solid #cccccc;
+}
+.allData {
+  height: 26px;
+  line-height: 26px;
+  font-size: 14px;
+  cursor: pointer;
+  padding-left: 6px;
+  margin-bottom: 6px;
+}
+.allData:hover {
+  background: #f5f7fa;
+}
+.active {
+  background: #4F7BFD !important;
+  border-radius: 3px;
+  color: #ffffff;
+  margin-bottom: 6px;
+  padding-left: 6px;
+}
 </style>