Selaa lähdekoodia

Merge branch 'mergeBranch' of http://124.70.211.186:3000/zhangqi/yos_web into mergeBranch

codeMan 2 vuotta sitten
vanhempi
commit
16f140b519
29 muutettua tiedostoa jossa 809 lisäystä ja 178 poistoa
  1. 38 31
      src/HDrpManagement/dataanalysis/index.vue
  2. 22 12
      src/HDrpManagement/invoicePredictionManage/details/index.vue
  3. 21 2
      src/HDrpManagement/predictionRule/index.vue
  4. 3 3
      src/HDrpManagement/predictionRule/modules/editMonth.vue
  5. 3 3
      src/HDrpManagement/predictionRule/modules/editWeek.vue
  6. 2 2
      src/HDrpManagement/projectChange/modules/detail.vue
  7. 37 26
      src/HDrpManagement/projectPredictionManage/details/index.vue
  8. 12 2
      src/HManagement/clueManage/clue_private/index.vue
  9. 16 10
      src/HManagement/clueManage/clue_public/index.vue
  10. 156 0
      src/HManagement/personalTarget/target/modules/edit/components/addPerson.vue
  11. 36 4
      src/HManagement/personalTarget/target/modules/edit/index.vue
  12. 156 0
      src/HManagement/projectTarget/target/modules/edit/components/addPerson.vue
  13. 4 3
      src/HManagement/projectTarget/target/modules/edit/components/table.vue
  14. 38 9
      src/HManagement/projectTarget/target/modules/edit/index.vue
  15. 64 4
      src/HManagement/task/modules/detail.vue
  16. 8 8
      src/SDrpManagement/agentOrder/details/index.vue
  17. 10 10
      src/SDrpManagement/salerOrder/details/index.vue
  18. 10 5
      src/SDrpManagement/salerPrivatecustomer/detail/modules/financialInfo/modules/add.vue
  19. 12 1
      src/SManagement/orderclue/index.vue
  20. 11 6
      src/SManagement/user/user-info/UserInfo.vue
  21. 7 1
      src/SManagement/user/user-info/components/PassEdit.vue
  22. 34 1
      src/components/newLayout/index.vue
  23. 13 11
      src/components/newLayout/modules/header.vue
  24. 23 2
      src/components/normal-basic-layout/details/index.vue
  25. 54 7
      src/components/normal-basic-layout/details/modules/followUp/followUp.vue
  26. 4 5
      src/components/normal-basic-layout/details/modules/group/group.vue
  27. 3 2
      src/components/normal-basic-layout/details/modules/task/addTask.vue
  28. 5 2
      src/views/homePage/index.vue
  29. 7 6
      src/views/login/login.vue

+ 38 - 31
src/HDrpManagement/dataanalysis/index.vue

@@ -6,23 +6,37 @@
     </template>
     </template>
     <template #content>
     <template #content>
       <div style="padding: 20px;" >
       <div style="padding: 20px;" >
-        <div class="mt-10">
-          <label  class="search__label" >范围:</label>
-          <el-popover
-              placement="bottom"
-              v-model="visible"
-              :stretch="true"
-              trigger="click">
-            <el-tabs v-model="activeName" @tab-click="handleClick">
-              <el-tab-pane label="部门" name="部门">
-                <el-cascader-panel ref="selectdep" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader-panel>
-              </el-tab-pane>
-              <el-tab-pane label="人员" name="人员">
-                <el-cascader-panel ref="selectPerson" :options="personnelList" :props="{label:'name',value:'userid'}"   @change="selectPerson"  clearable></el-cascader-panel>
-              </el-tab-pane>
-            </el-tabs>
-            <el-input style="width: 200px" size="small" slot="reference" v-model="range" placeholder="请选择" @input="departmentrtment"></el-input>
-          </el-popover>
+        <div class="mt-10 inline-16">
+          <label  class="search__label" >部门:</label>
+          <el-cascader ref="selectdep" size="small" v-model="depment" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader>
+
+          <!--          <label  class="search__label" >范围:</label>
+                    <el-popover
+                        placement="bottom"
+                        v-model="visible"
+                        :stretch="true"
+                        trigger="click">
+                      <el-tabs v-model="activeName" @tab-click="handleClick">
+                        <el-tab-pane label="部门" name="部门">
+                          <el-cascader-panel ref="selectdep" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader-panel>
+                        </el-tab-pane>
+                        <el-tab-pane label="人员" name="人员">
+                          <el-cascader-panel ref="selectPerson" :options="personnelList" :props="{label:'name',value:'userid'}"   @change="selectPerson"  clearable></el-cascader-panel>
+                        </el-tab-pane>
+                      </el-tabs>
+                      <el-input style="width: 200px" size="small" slot="reference" v-model="range" placeholder="请选择" @input="departmentrtment"></el-input>
+                    </el-popover>-->
+        </div>
+        <div class="mt-10 inline-16">
+          <label  class="search__label" >人员:</label>
+          <el-select v-model="person" filterable placeholder="请选择" size="small" clearable @change="selectPerson">
+            <el-option
+                v-for="item in personnelList"
+                :key="item.index"
+                :label="item.name"
+                :value="item.userid">
+            </el-option>
+          </el-select>
         </div>
         </div>
         <el-scrollbar >
         <el-scrollbar >
           <div style="margin: auto;min-width: 1800px;height: calc(100vh - 270px)">
           <div style="margin: auto;min-width: 1800px;height: calc(100vh - 270px)">
@@ -82,6 +96,8 @@ export default {
       range:'',
       range:'',
       pointValue:'',
       pointValue:'',
       visible:false,
       visible:false,
+      person:'',
+      depment:'',
       deplist:[],
       deplist:[],
       personnelList:[],
       personnelList:[],
       depmentParam:{
       depmentParam:{
@@ -121,7 +137,7 @@ export default {
       const res = await this.$api.requested(this.depmentParam)
       const res = await this.$api.requested(this.depmentParam)
       this.deplist = this.createMenu(res.data.dep)
       this.deplist = this.createMenu(res.data.dep)
       this.personnelList = res.data.hr
       this.personnelList = res.data.hr
-      this.range = JSON.parse(window.sessionStorage.getItem('active_account')).name
+      this.person = JSON.parse(window.sessionStorage.getItem('active_account')).name
       this.$refs.assignment.queryList()
       this.$refs.assignment.queryList()
       this.$refs.sales.queryList()
       this.$refs.sales.queryList()
       this.$refs.performance.queryList()
       this.$refs.performance.queryList()
@@ -208,16 +224,12 @@ export default {
       return arr
       return arr
     },
     },
     selectDep(val) {
     selectDep(val) {
-      let dataDep = this.$refs.selectdep.getCheckedNodes(true)[0].data
-      this.range = dataDep.label
-      this.isDep = true
-      this.isPerson = false
+      this.person = ''
       this.dataid = val[val.length -1]
       this.dataid = val[val.length -1]
       this.dataParam.content.type = 1
       this.dataParam.content.type = 1
       this.dataParam.content.dataid = this.dataid
       this.dataParam.content.dataid = this.dataid
       this.tableParam.content.type = 1
       this.tableParam.content.type = 1
       this.tableParam.content.dataid = this.dataid
       this.tableParam.content.dataid = this.dataid
-      this.visible = false
       this.$refs.assignment.queryList()
       this.$refs.assignment.queryList()
       this.$refs.sales.queryList()
       this.$refs.sales.queryList()
       this.$refs.performance.queryList()
       this.$refs.performance.queryList()
@@ -227,18 +239,13 @@ export default {
       /*this.$refs.selectPerson.clearCheckedNodes()*/
       /*this.$refs.selectPerson.clearCheckedNodes()*/
     },
     },
     selectPerson(val){
     selectPerson(val){
-      let dataperson = this.$refs.selectPerson.getCheckedNodes(true)[0].data
-      this.range = dataperson.name
-      this.isDep = false
-      this.isPerson = true
-
-      this.dataid = val[val.length-1]
+      this.depment = ''
+      console.log(val)
+      this.dataid = val
       this.dataParam.content.type = 0
       this.dataParam.content.type = 0
       this.dataParam.content.dataid = this.dataid
       this.dataParam.content.dataid = this.dataid
       this.tableParam.content.type = 0
       this.tableParam.content.type = 0
       this.tableParam.content.dataid = this.dataid
       this.tableParam.content.dataid = this.dataid
-      this.visible = false
-
       this.$refs.assignment.queryList()
       this.$refs.assignment.queryList()
       this.$refs.sales.queryList()
       this.$refs.sales.queryList()
       this.$refs.performance.queryList()
       this.$refs.performance.queryList()

+ 22 - 12
src/HDrpManagement/invoicePredictionManage/details/index.vue

@@ -7,8 +7,11 @@
           <el-divider></el-divider>
           <el-divider></el-divider>
           <el-row>
           <el-row>
             <el-col :span="24">
             <el-col :span="24">
-              <div class="mt-10" style="float: left">
-                <label  class="search__label" >范围:</label>
+              <div class="mt-10 inline-16" style="float: left">
+                <label  class="search__label" >部门:</label>
+                <el-cascader ref="selectdep" size="small" v-model="depment" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                             @change="selectDep"  clearable style="width: 130px"></el-cascader>
+<!--                <label  class="search__label" >范围:</label>
                 <el-popover
                 <el-popover
                     placement="bottom"
                     placement="bottom"
                     v-model="visible"
                     v-model="visible"
@@ -23,7 +26,18 @@
                     </el-tab-pane>
                     </el-tab-pane>
                   </el-tabs>
                   </el-tabs>
                   <el-input style="width: 200px" size="small" slot="reference" v-model="range" placeholder="请选择" @input="departmentrtment" @change="onChange" clearable></el-input>
                   <el-input style="width: 200px" size="small" slot="reference" v-model="range" placeholder="请选择" @input="departmentrtment" @change="onChange" clearable></el-input>
-                </el-popover>
+                </el-popover>-->
+              </div>
+              <div class="mt-10 inline-16">
+                <label  class="search__label" >人员:</label>
+                <el-select v-model="person" filterable placeholder="请选择" style="width: 130px" size="small" clearable @change="selectPerson">
+                  <el-option
+                      v-for="item in personnelList"
+                      :key="item.index"
+                      :label="item.name"
+                      :value="item.userid">
+                  </el-option>
+                </el-select>
               </div>
               </div>
               <el-button style="float: right" size="small" type="primary" @click="updateData">更新数据</el-button>
               <el-button style="float: right" size="small" type="primary" @click="updateData">更新数据</el-button>
             </el-col>
             </el-col>
@@ -121,6 +135,8 @@ export default {
     return {
     return {
       id:'',
       id:'',
       drawer:false,
       drawer:false,
+      person:'',
+      depment:'',
       mainAreaData:'',
       mainAreaData:'',
       loading:'',
       loading:'',
       mainData:"",
       mainData:"",
@@ -295,10 +311,7 @@ export default {
       return arr
       return arr
     },
     },
     selectDep(val) {
     selectDep(val) {
-      let dataDep = this.$refs.selectdep.getCheckedNodes(true)[0].data
-      this.range = dataDep.label
-      this.isDep = true
-      this.isPerson = false
+      this.person = ''
       this.dataid = val[val.length -1]
       this.dataid = val[val.length -1]
       this.param.content.type = 1
       this.param.content.type = 1
       this.param.content.dataid = this.dataid
       this.param.content.dataid = this.dataid
@@ -307,12 +320,9 @@ export default {
       /*this.$refs.selectPerson.clearCheckedNodes()*/
       /*this.$refs.selectPerson.clearCheckedNodes()*/
     },
     },
     selectPerson(val){
     selectPerson(val){
-      let dataperson = this.$refs.selectPerson.getCheckedNodes(true)[0].data
-      this.range = dataperson.name
-      this.isDep = false
-      this.isPerson = true
+     this.depment = ''
 
 
-      this.dataid = val[val.length-1]
+      this.dataid = val
       this.param.content.type = 0
       this.param.content.type = 0
       this.param.content.dataid = this.dataid
       this.param.content.dataid = this.dataid
       this.visible = false
       this.visible = false

+ 21 - 2
src/HDrpManagement/predictionRule/index.vue

@@ -16,12 +16,19 @@
           </span>
           </span>
         </p>
         </p>
         <p v-else-if="scope.data.column.columnname === 'status'">
         <p v-else-if="scope.data.column.columnname === 'status'">
-          <span v-if="scope.data.column.data.status === '开启'" style="color: #00B32B">
+          <el-switch
+              v-model="scope.data.column.data.status"
+              active-value="开启"
+              inactive-value="关闭"
+              active-color="#00B32B"
+              inactive-color="#E13333" @change="onChange(scope.data.column.data)">
+          </el-switch>
+<!--          <span v-if="scope.data.column.data.status === '开启'" style="color: #00B32B">
             {{scope.data.column.data[[scope.data.column.columnname]]}}
             {{scope.data.column.data[[scope.data.column.columnname]]}}
           </span>
           </span>
           <span v-else style="color: #E13333">
           <span v-else style="color: #E13333">
             {{scope.data.column.data[[scope.data.column.columnname]]}}
             {{scope.data.column.data[[scope.data.column.columnname]]}}
-          </span>
+          </span>-->
         </p>
         </p>
         <p v-else>
         <p v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
           {{scope.data.column.data[[scope.data.column.columnname]]}}
@@ -49,6 +56,18 @@ export default {
   methods:{
   methods:{
     onEdit(){
     onEdit(){
       this.$refs.basicLayout.listData()
       this.$refs.basicLayout.listData()
+    },
+    async onChange(data){
+      console.log(data)
+      const res = await this.$api.requested({
+        "id": "20230705144504",
+        "content": {
+          "sa_salesforecastmodelid":data.sa_salesforecastmodelid
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$refs.basicLayout.listData()
+      })
     }
     }
   }
   }
 }
 }

+ 3 - 3
src/HDrpManagement/predictionRule/modules/editMonth.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div>
   <div>
-    <el-button size="mini" type="text" @click="onEdit">编 辑</el-button>
+    <el-button size="mini" type="text" @click="onEdit" :disabled="data.status === '开启'">编 辑</el-button>
     <el-drawer title="月预测设置" :visible.sync="dialogVisible" size="600px" direction="rtl"
     <el-drawer title="月预测设置" :visible.sync="dialogVisible" size="600px" direction="rtl"
                :show-close="false" append-to-body @close="onClose">
                :show-close="false" append-to-body @close="onClose">
       <div class="drawer__panel">
       <div class="drawer__panel">
@@ -126,12 +126,12 @@
                 </el-select>
                 </el-select>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
-            <el-col :span="24">
+<!--            <el-col :span="24">
               <el-form-item label="状态:" prop="enterprisename" style="margin: 10px 0px 0px 0px">
               <el-form-item label="状态:" prop="enterprisename" style="margin: 10px 0px 0px 0px">
                 <el-radio v-model="form.status" label="开启">开启</el-radio>
                 <el-radio v-model="form.status" label="开启">开启</el-radio>
                 <el-radio v-model="form.status" label="关闭">关闭</el-radio>
                 <el-radio v-model="form.status" label="关闭">关闭</el-radio>
               </el-form-item>
               </el-form-item>
-            </el-col>
+            </el-col>-->
           </el-form>
           </el-form>
         </el-row>
         </el-row>
       </div>
       </div>

+ 3 - 3
src/HDrpManagement/predictionRule/modules/editWeek.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div>
   <div>
-    <el-button size="mini" type="text" @click="onEdit">编 辑</el-button>
+    <el-button size="mini" type="text" @click="onEdit" :disabled="data.status === '开启'">编 辑</el-button>
     <el-drawer title="周预测设置" :visible.sync="dialogVisible" size="600px" direction="rtl"
     <el-drawer title="周预测设置" :visible.sync="dialogVisible" size="600px" direction="rtl"
                :show-close="false" append-to-body @close="onClose">
                :show-close="false" append-to-body @close="onClose">
       <div class="drawer__panel">
       <div class="drawer__panel">
@@ -126,12 +126,12 @@
                 </el-select>
                 </el-select>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
-            <el-col :span="24">
+<!--            <el-col :span="24">
               <el-form-item label="状态:" prop="enterprisename" style="margin: 10px 0px 0px 0px">
               <el-form-item label="状态:" prop="enterprisename" style="margin: 10px 0px 0px 0px">
                 <el-radio v-model="form.status" label="开启">开启</el-radio>
                 <el-radio v-model="form.status" label="开启">开启</el-radio>
                 <el-radio v-model="form.status" label="关闭">关闭</el-radio>
                 <el-radio v-model="form.status" label="关闭">关闭</el-radio>
               </el-form-item>
               </el-form-item>
-            </el-col>
+            </el-col>-->
           </el-form>
           </el-form>
         </el-row>
         </el-row>
       </div>
       </div>

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

@@ -21,8 +21,8 @@
       <putPeople style=" display: inline-block !important;" @putSuccess="putSuccess" v-if="flagTag !== ''" :rowData="mainData" :flagTag="flagTag" :disabled="mainData.disabled" @onClose="onSuccess"/>
       <putPeople style=" display: inline-block !important;" @putSuccess="putSuccess" v-if="flagTag !== ''" :rowData="mainData" :flagTag="flagTag" :disabled="mainData.disabled" @onClose="onSuccess"/>
       <projectRecovery class="inline-16" :data="mainData" v-if="tool.checkAuth($route.name,'recovery')  && mainData.status === '已结束'" :disabled="mainData.disabled" @onRecovery="onSuccess"></projectRecovery>
       <projectRecovery class="inline-16" :data="mainData" v-if="tool.checkAuth($route.name,'recovery')  && mainData.status === '已结束'" :disabled="mainData.disabled" @onRecovery="onSuccess"></projectRecovery>
       <duplicatesProject class="inline-16" :data="mainData" v-if="tool.checkAuth($route.name,'queryDuplicates') " :disabled="mainData.disabled" @dialogClose="dialogClose"></duplicatesProject>
       <duplicatesProject class="inline-16" :data="mainData" v-if="tool.checkAuth($route.name,'queryDuplicates') " :disabled="mainData.disabled" @dialogClose="dialogClose"></duplicatesProject>
-      <finish class="inline-16" v-if="tool.checkAuth($route.name,'finish')  && mainData.status === '跟进中'" :disabled="mainData.disabled" @onFinish="onSuccess"></finish>
-      <defeat class="inline-16" v-if="tool.checkAuth($route.name,'defeat')  && mainData.status === '跟进中'" :disabled="mainData.disabled" @onDefeat="onSuccess"></defeat>
+      <finish class="inline-16" v-if="tool.checkAuth($route.name,'finish')  && mainData.status === '已成交'" :disabled="mainData.disabled" @onFinish="onSuccess"></finish>
+      <defeat class="inline-16" v-if="tool.checkAuth($route.name,'defeat')  && mainData.status !== '已结束' && mainData.status !== '已失败'" :disabled="mainData.disabled" @onDefeat="onSuccess"></defeat>
       <Del class="inline-16" :id="mainData.sa_projectid" :nameId="20221020144302" :rowData="mainData" nameKey="sa_projectids" v-if="tool.checkAuth($route.name,'toVoid') " :disabled="mainData.disabled" @deleteSuccess="deleteSuccess"/>
       <Del class="inline-16" :id="mainData.sa_projectid" :nameId="20221020144302" :rowData="mainData" nameKey="sa_projectids" v-if="tool.checkAuth($route.name,'toVoid') " :disabled="mainData.disabled" @deleteSuccess="deleteSuccess"/>
     </div>
     </div>
     <template #customBefore>
     <template #customBefore>

+ 37 - 26
src/HDrpManagement/projectPredictionManage/details/index.vue

@@ -7,23 +7,38 @@
          <el-divider></el-divider>
          <el-divider></el-divider>
          <el-row>
          <el-row>
            <el-col :span="24">
            <el-col :span="24">
-             <div class="mt-10" style="float: left">
-               <label  class="search__label" >范围:</label>
-               <el-popover
-                   placement="bottom"
-                   v-model="visible"
-                   :stretch="true"
-                   trigger="click">
-                 <el-tabs v-model="activeName" @tab-click="handleClick">
-                   <el-tab-pane label="部门" name="部门">
-                     <el-cascader-panel ref="selectdep" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader-panel>
-                   </el-tab-pane>
-                   <el-tab-pane label="人员" name="人员">
-                     <el-cascader-panel ref="selectPerson" :options="personnelList" :props="{label:'name',value:'userid'}"   @change="selectPerson"  clearable></el-cascader-panel>
-                   </el-tab-pane>
-                 </el-tabs>
-                 <el-input style="width: 200px" size="small" slot="reference" v-model="range" placeholder="请选择" @input="departmentrtment" @change="onChange" clearable></el-input>
-               </el-popover>
+             <div class="mt-10 inline-16" style="float: left">
+               <label  class="search__label" >部门:</label>
+               <el-cascader ref="selectdep" size="small" v-model="depment" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                            @change="selectDep"  clearable style="width: 130px"></el-cascader>
+               <!--               <label  class="search__label" >范围:</label>
+                              <el-popover
+                                  placement="bottom"
+                                  v-model="visible"
+                                  :stretch="true"
+                                  trigger="click">
+                                <el-tabs v-model="activeName" @tab-click="handleClick">
+                                  <el-tab-pane label="部门" name="部门">
+                                    <el-cascader-panel ref="selectdep" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader-panel>
+                                  </el-tab-pane>
+                                  <el-tab-pane label="人员" name="人员">
+                                    <el-cascader-panel ref="selectPerson" :options="personnelList" :props="{label:'name',value:'userid'}"   @change="selectPerson"  clearable></el-cascader-panel>
+                                  </el-tab-pane>
+                                </el-tabs>
+                                <el-input style="width: 200px" size="small" slot="reference" v-model="range" placeholder="请选择" @input="departmentrtment" @change="onChange" clearable></el-input>
+                              </el-popover>-->
+
+             </div>
+             <div class="mt-10 inline-16">
+               <label  class="search__label" >人员:</label>
+               <el-select v-model="person" filterable placeholder="请选择" style="width: 130px" size="small" clearable @change="selectPerson">
+                 <el-option
+                     v-for="item in personnelList"
+                     :key="item.index"
+                     :label="item.name"
+                     :value="item.userid">
+                 </el-option>
+               </el-select>
              </div>
              </div>
              <el-button style="float: right" size="small" type="primary" @click="updateData">更新数据</el-button>
              <el-button style="float: right" size="small" type="primary" @click="updateData">更新数据</el-button>
            </el-col>
            </el-col>
@@ -109,6 +124,8 @@ export default {
       id:'',
       id:'',
       drawer:false,
       drawer:false,
       mainAreaData:'',
       mainAreaData:'',
+      person:'',
+      depment:'',
       loading:'',
       loading:'',
       mainData:"",
       mainData:"",
       myData:[],
       myData:[],
@@ -272,10 +289,7 @@ export default {
       return arr
       return arr
     },
     },
     selectDep(val) {
     selectDep(val) {
-      let dataDep = this.$refs.selectdep.getCheckedNodes(true)[0].data
-      this.range = dataDep.label
-      this.isDep = true
-      this.isPerson = false
+      this.person = ''
       this.dataid = val[val.length -1]
       this.dataid = val[val.length -1]
       this.param.content.type = 1
       this.param.content.type = 1
       this.param.content.dataid = this.dataid
       this.param.content.dataid = this.dataid
@@ -284,12 +298,9 @@ export default {
       /*this.$refs.selectPerson.clearCheckedNodes()*/
       /*this.$refs.selectPerson.clearCheckedNodes()*/
     },
     },
     selectPerson(val){
     selectPerson(val){
-      let dataperson = this.$refs.selectPerson.getCheckedNodes(true)[0].data
-      this.range = dataperson.name
-      this.isDep = false
-      this.isPerson = true
+     this.depment = ''
 
 
-      this.dataid = val[val.length-1]
+      this.dataid = val
       this.param.content.type = 0
       this.param.content.type = 0
       this.param.content.dataid = this.dataid
       this.param.content.dataid = this.dataid
       this.visible = false
       this.visible = false

+ 12 - 2
src/HManagement/clueManage/clue_private/index.vue

@@ -49,6 +49,13 @@
             </el-option>
             </el-option>
           </el-select>
           </el-select>
         </div>
         </div>
+        <div class="label_center">
+          <p class="search__label">领域:</p>
+          <el-select v-model="tradefield" clearable style="margin-right:10px" size="small" placeholder="请选择领域" @change="$refs.basicLayout.param.content.pageNumber = 1 ;$refs.basicLayout.param.content.where.tradefield = tradefield;$refs.basicLayout.listData()">
+            <el-option v-for="item in tradefields" :label="item.value" :key="item.rowindex" :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
       </div>
       </div>
       <template v-slot:tbList="scope">
       <template v-slot:tbList="scope">
         <div v-if="scope.data.column.columnname == 'status'">
         <div v-if="scope.data.column.columnname == 'status'">
@@ -101,6 +108,7 @@ export default {
     return {
     return {
       options:[],
       options:[],
       value:'业务员',
       value:'业务员',
+      tradefield:'',
       select: [
       select: [
         {label:'经销商',value:'经销商'},
         {label:'经销商',value:'经销商'},
         {label:'业务员',value:'业务员'}
         {label:'业务员',value:'业务员'}
@@ -108,7 +116,8 @@ export default {
       statusList:[],
       statusList:[],
       status:'',
       status:'',
       allocationstatus:'',
       allocationstatus:'',
-      arealist:[]
+      arealist:[],
+      tradefields:[]
     }
     }
   },
   },
   provide() {
   provide() {
@@ -119,7 +128,8 @@ export default {
   async created () {
   async created () {
     const res2 = await this.$store.dispatch('optiontypeselect','datafollowuptype')
     const res2 = await this.$store.dispatch('optiontypeselect','datafollowuptype')
     this.statusList = res2.data
     this.statusList = res2.data
-
+    const res3 = await this.$store.dispatch('optiontypeselect','tradefield')
+    this.tradefields = res3.data
     this.query_arealist()
     this.query_arealist()
   },
   },
   methods:{
   methods:{

+ 16 - 10
src/HManagement/clueManage/clue_public/index.vue

@@ -15,7 +15,13 @@
       @listCreate="list"
       @listCreate="list"
     >
     >
     <div slot="custom" style="display:flex">
     <div slot="custom" style="display:flex">
-
+      <div class="label_center">
+        <p class="search__label">领域:</p>
+        <el-select v-model="tradefield" clearable style="margin-right:10px" size="small" placeholder="请选择领域" @change="$refs.basicLayout.param.content.pageNumber = 1 ;$refs.basicLayout.param.content.where.tradefield = tradefield;$refs.basicLayout.listData()">
+          <el-option v-for="item in tradefields" :label="item.value" :key="item.rowindex" :value="item.value">
+          </el-option>
+        </el-select>
+      </div>
     </div>
     </div>
       <div slot="titleRight" >
       <div slot="titleRight" >
         <!-- <distribution class="inline-16" v-if="tool.checkAuth($route.name,'distribution')" @onSuccess="$refs.basicLayout.listData()"></distribution> -->
         <!-- <distribution class="inline-16" v-if="tool.checkAuth($route.name,'distribution')" @onSuccess="$refs.basicLayout.listData()"></distribution> -->
@@ -72,13 +78,9 @@ export default {
       areaList2:[],
       areaList2:[],
       statusList:[],
       statusList:[],
       status:'',
       status:'',
-      arealist:[]
-    }
-  },
-  methods:{
-    statusChange () {
-      this.$refs.basicLayout.param.content.where.status = this.search.status
-      this.$refs.basicLayout.listData()
+      arealist:[],
+      tradefield:'',
+      tradefields:[]
     }
     }
   },
   },
   provide() {
   provide() {
@@ -92,10 +94,15 @@ export default {
 
 
     const res2 = await this.$store.dispatch('optiontypeselect','cluepublic')
     const res2 = await this.$store.dispatch('optiontypeselect','cluepublic')
     this.statusList = res2.data
     this.statusList = res2.data
-
+    const res3 = await this.$store.dispatch('optiontypeselect','tradefield')
+    this.tradefields = res3.data
     this.query_arealist()
     this.query_arealist()
   },
   },
   methods: {
   methods: {
+    statusChange () {
+      this.$refs.basicLayout.param.content.where.status = this.search.status
+      this.$refs.basicLayout.listData()
+    },
     list (params) {
     list (params) {
       params.content.nocache = true
       params.content.nocache = true
     },
     },
@@ -106,7 +113,6 @@ export default {
         "content": {
         "content": {
         }
         }
       })
       })
-
       this.arealist = this.tool.createMenu(res.data)
       this.arealist = this.tool.createMenu(res.data)
     },
     },
 
 

+ 156 - 0
src/HManagement/personalTarget/target/modules/edit/components/addPerson.vue

@@ -0,0 +1,156 @@
+<template>
+  <div>
+    <el-button :type="data.status == '新建'?'primary':''" size="small" @click="onShow" :disabled="data.status != '新建'">添 加</el-button>
+    <el-drawer
+        title="人员编辑"
+        :visible.sync="visible"
+        size="800px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="onCancel"
+    >
+      <div class="panel_Target">
+        <div style="margin-top: 10px;margin-bottom: 20px">
+          <el-input
+              placeholder="请输入姓名"
+              suffix-icon="el-icon-search"
+              v-model="param.content.where.condition"
+              @input="listData(param.content.pageNumber = 1)"
+              @keyup.native.enter="listData(param.content.pageNumber = 1)"
+              @clear="listData(param.content.pageNumber = 1)"
+              style="width:200px"
+              size="small"
+              class="input-with-select inline-16" clearable>
+          </el-input>
+        </div>
+        <tablelayout  class="normal-margin inline" :layout="tablecols" :data="list" :custom="true" :checkbox="true" height="calc(100vh - 252px)" @selectionChange="selectionChange">
+          <template v-slot:customcol="scope">
+            <p>{{scope.column.data[scope.column.columnname]}}</p>
+          </template>
+        </tablelayout>
+        <div  class="container normal-panel"  style="float: right;">
+          <el-pagination
+              background
+              small
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="param.currentPage"
+              :page-sizes="[20, 50, 100, 200]"
+              layout="total,sizes, prev, pager, next, jumper"
+              :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="onCancel" 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>
+import tablelayout from '@/components/table/index5.vue'
+export default {
+  name: "addPerson",
+  components:{tablelayout},
+  props:["data"],
+  data() {
+    return {
+      visible:false,
+      tablecols:[],
+      list:[],
+      items:[],
+      total:0,
+      param: {
+        "id": 20220901091302,
+        "content": {
+          "pageNumber":1,
+          "pageSize":20,
+          "sa_salestargetbillid": 0,
+          "type":'',
+          "where": {
+            "condition": ""
+          }
+        },
+      },
+    }
+  },
+  methods:{
+    onShow(){
+      this.visible = true
+      this.listData()
+    },
+    async listData(){
+      this.param.content.sa_salestargetbillid = this.$route.query.id
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      console.log(res.data)
+    },
+    async onSubmit(){
+      const res = await this.$api.requested({
+        "id": 20220831165302,
+        "content": {
+          "year": this.data.year,
+          "sa_salestargetbillid": this.$route.query.id,//新建年度是为0,添加人员时为具体的数据id
+          "sales": this.items
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.visible = false
+        this.$emit('addSuccess')
+      })
+    },
+    selectionChange(row){
+      this.items = []
+      this.items = row
+    },
+    onCancel(){
+      this.visible = false
+      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()
+    },
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name)['personalTable'].tablecols
+  }
+}
+</script>
+
+<style scoped>
+.panel_Target {
+  border-top:1px solid #eeeeee;
+  padding:5px 5px;
+  margin-bottom:0px
+}
+>>> .el-dialog__body {
+  padding: 0px 0px 10px;
+  color: #606266;
+  font-size: 14px;
+  word-break: break-all;
+}
+>>> .el-dialog__header {
+  padding: 10px 10px 10px ;
+
+}
+.dialog-footer{
+  margin-top: 0px;
+  margin-bottom: 10px;
+}
+>>> .el-dialog__title {
+  line-height: 24px;
+  font-size: 16px;
+  color: #303133;
+}
+</style>

+ 36 - 4
src/HManagement/personalTarget/target/modules/edit/index.vue

@@ -21,15 +21,17 @@
         <issue :data="mainData" @onSuccess="onSuccess"></issue>
         <issue :data="mainData" @onSuccess="onSuccess"></issue>
         <adjustment :data="mainData" @onSuccess="onSuccess" ></adjustment>
         <adjustment :data="mainData" @onSuccess="onSuccess" ></adjustment>
         <close v-if="mainData.status === '已下达'" :data="mainData" @onClose="onSuccess"></close>
         <close v-if="mainData.status === '已下达'" :data="mainData" @onClose="onSuccess"></close>
-        <importFile class="inline-16"  accept=".xlsx" :folderid="folderid" :bindData="{ownertable:'sa_salestargetbill',ownerid:'',usetype:'default'}" @onImportSuccess="onImportSuccess">
+        <importFile  v-if="mainData.status === '新建'" class="inline-16"  accept=".xlsx" :folderid="folderid" :bindData="{ownertable:'sa_salestargetbill',ownerid:'',usetype:'default'}" @onImportSuccess="onImportSuccess">
           <a class="error-link" v-if="errorurl" :href="errorurl" slot="errorFile">下载错误数据</a>
           <a class="error-link" v-if="errorurl" :href="errorurl" slot="errorFile">下载错误数据</a>
         </importFile>
         </importFile>
       </div>
       </div>
 
 
       <div slot="slot0">
       <div slot="slot0">
+        <addPerson  v-if="tool.checkAuth($route.name,'personalTargetManage')"  style="margin-bottom: 10px" :data="mainData" @addSuccess="onSuccess"></addPerson>
         <targetTable ref="list" >
         <targetTable ref="list" >
           <template  v-slot:editTarget="scope">
           <template  v-slot:editTarget="scope">
-            <editTarget v-if="tool.checkAuth($route.name,'personalTargetManage')" :disabled="mainData.status != '新建'" style="display:inline" :year="mainData.year" :data="scope.data" @onSuccess="onSuccess"></editTarget>
+            <editTarget class="inline-16" v-if="tool.checkAuth($route.name,'personalTargetManage')" :disabled="mainData.status != '新建'" style="display:inline" :year="mainData.year" :data="scope.data" @onSuccess="onSuccess"></editTarget>
+            <el-button type="text"  v-if="tool.checkAuth($route.name,'personalTargetManage')" :disabled="mainData.status != '新建'" size="small" @click="delShow(scope.data.hrid)">删 除</el-button>
           </template>
           </template>
 <!--          <template  v-slot:del="scope">
 <!--          <template  v-slot:del="scope">
             <ondel v-if="tool.checkAuth($route.name,'delete')" :data="scope.data" @onSuccess="onSuccess"></ondel>
             <ondel v-if="tool.checkAuth($route.name,'delete')" :data="scope.data" @onSuccess="onSuccess"></ondel>
@@ -54,6 +56,7 @@ import detail_information from './modules/detailedInformation/index'
 import issue from '../issue'
 import issue from '../issue'
 import adjustment from '../adjustment'
 import adjustment from '../adjustment'
 import close from '../close'
 import close from '../close'
+import addPerson from './components/addPerson'
 export default {
 export default {
   components:{
   components:{
     targetTable,
     targetTable,
@@ -64,7 +67,8 @@ export default {
     detail_information,
     detail_information,
     issue,
     issue,
     adjustment,
     adjustment,
-    close
+    close,
+    addPerson
   },
   },
   data () {
   data () {
     return {
     return {
@@ -169,10 +173,38 @@ export default {
         })
         })
       } else {
       } else {
         this.tool.showMessage(res1,()=>{
         this.tool.showMessage(res1,()=>{
-          this.mainData()
+          this.onSuccess()
         })
         })
       }
       }
 
 
+    },
+    delShow(data){
+      this.$confirm('此操作将删除该人员的人员目标, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('删除')
+        console.log(data)
+        this.onDel(data)
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+    },
+    async onDel(data){
+      const res = await this.$api.requested({
+        "id": 20220901111202,
+        "content": {
+          "sa_salestargetbillid": this.$route.query.id,
+          "hrid": [data]
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.onSuccess()
+      })
     }
     }
   },
   },
   mounted () {
   mounted () {

+ 156 - 0
src/HManagement/projectTarget/target/modules/edit/components/addPerson.vue

@@ -0,0 +1,156 @@
+<template>
+  <div>
+    <el-button :type="data.status == '新建'?'primary':''" size="small" @click="onShow" :disabled="data.status != '新建'">添 加</el-button>
+    <el-drawer
+        title="人员编辑"
+        :visible.sync="visible"
+        size="800px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="onCancel"
+    >
+      <div class="panel_Target">
+        <div style="margin-top: 10px;margin-bottom: 20px">
+          <el-input
+              placeholder="请输入姓名"
+              suffix-icon="el-icon-search"
+              v-model="param.content.where.condition"
+              @input="listData(param.content.pageNumber = 1)"
+              @keyup.native.enter="listData(param.content.pageNumber = 1)"
+              @clear="listData(param.content.pageNumber = 1)"
+              style="width:200px"
+              size="small"
+              class="input-with-select inline-16" clearable>
+          </el-input>
+        </div>
+        <tablelayout  class="normal-margin inline" :layout="tablecols" :data="list" :custom="true" :checkbox="true" height="calc(100vh - 252px)" @selectionChange="selectionChange">
+          <template v-slot:customcol="scope">
+            <p>{{scope.column.data[scope.column.columnname]}}</p>
+          </template>
+        </tablelayout>
+        <div  class="container normal-panel"  style="float: right;">
+          <el-pagination
+              background
+              small
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="param.currentPage"
+              :page-sizes="[20, 50, 100, 200]"
+              layout="total,sizes, prev, pager, next, jumper"
+              :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="onCancel" 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>
+import tablelayout from '@/components/table/index5.vue'
+export default {
+  name: "addPerson",
+  components:{tablelayout},
+  props:["data"],
+  data() {
+    return {
+      visible:false,
+      tablecols:[],
+      list:[],
+      items:[],
+      total:0,
+      param: {
+        "id": 20220901091302,
+        "content": {
+          "pageNumber":1,
+          "pageSize":20,
+          "sa_salestargetbillid": 0,
+          "type":'',
+          "where": {
+            "condition": ""
+          }
+        },
+      },
+    }
+  },
+  methods:{
+    onShow(){
+      this.visible = true
+      this.listData()
+    },
+    async listData(){
+      this.param.content.sa_salestargetbillid = this.$route.query.id
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      console.log(res.data)
+    },
+    async onSubmit(){
+      const res = await this.$api.requested({
+        "id": 20220831165302,
+        "content": {
+          "year": this.data.year,
+          "sa_salestargetbillid": this.$route.query.id,//新建年度是为0,添加人员时为具体的数据id
+          "sales": this.items
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.visible = false
+        this.$emit('addSuccess')
+      })
+    },
+    selectionChange(row){
+      this.items = []
+      this.items = row
+    },
+    onCancel(){
+      this.visible = false
+      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()
+    },
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name)['personalTable'].tablecols
+  }
+}
+</script>
+
+<style scoped>
+.panel_Target {
+  border-top:1px solid #eeeeee;
+  padding:5px 5px;
+  margin-bottom:0px
+}
+>>> .el-dialog__body {
+  padding: 0px 0px 10px;
+  color: #606266;
+  font-size: 14px;
+  word-break: break-all;
+}
+>>> .el-dialog__header {
+  padding: 10px 10px 10px ;
+
+}
+.dialog-footer{
+  margin-top: 0px;
+  margin-bottom: 10px;
+}
+>>> .el-dialog__title {
+  line-height: 24px;
+  font-size: 16px;
+  color: #303133;
+}
+</style>

+ 4 - 3
src/HManagement/projectTarget/target/modules/edit/components/table.vue

@@ -375,12 +375,12 @@
                       :total="total">
                       :total="total">
                   </el-pagination>
                   </el-pagination>
                 </div>-->
                 </div>-->
-          <!--       <el-table-column label="操作" fixed="right" width="100">
+                 <el-table-column label="操作" fixed="right" width="100">
                   <template slot-scope="scope">
                   <template slot-scope="scope">
-                    <slot name="editTarget" v-if="scope.row.hrid" :data="scope.row"></slot>
+<!--                    <slot name="editTarget" v-if="scope.row.hrid" :data="scope.row"></slot>-->
                     <slot name="del" v-if="scope.row.hrid" :data="scope.row"></slot>
                     <slot name="del" v-if="scope.row.hrid" :data="scope.row"></slot>
                   </template>
                   </template>
-                </el-table-column>-->
+                </el-table-column>
         </el-table>
         </el-table>
         <div  class="container normal-panel" style="text-align:right">
         <div  class="container normal-panel" style="text-align:right">
           <el-pagination
           <el-pagination
@@ -415,6 +415,7 @@ export default {
         "content": {
         "content": {
           "pageNumber": 1,
           "pageNumber": 1,
           "pageSize": 999,
           "pageSize": 999,
+          "nocache":true,
           "sa_salestargetbillid": this.$route.query.id,
           "sa_salestargetbillid": this.$route.query.id,
           "where":{
           "where":{
             "condition":""
             "condition":""

+ 38 - 9
src/HManagement/projectTarget/target/modules/edit/index.vue

@@ -21,20 +21,18 @@
         <issue :data="mainData" @onSuccess="onSuccess"></issue>
         <issue :data="mainData" @onSuccess="onSuccess"></issue>
         <adjustment :data="mainData" @onSuccess="onSuccess"></adjustment>
         <adjustment :data="mainData" @onSuccess="onSuccess"></adjustment>
         <close v-if="mainData.status === '已下达'" :data="mainData" @onClose="onSuccess"></close>
         <close v-if="mainData.status === '已下达'" :data="mainData" @onClose="onSuccess"></close>
-        <importFile  class="inline-16"  accept=".xlsx" :folderid="folderid" :bindData="{ownertable:'sa_salestargetbill',ownerid:'',usetype:'default'}" @onImportSuccess="onImportSuccess">
+        <importFile v-if="mainData.status === '新建'"  class="inline-16"  accept=".xlsx" :folderid="folderid" :bindData="{ownertable:'sa_salestargetbill',ownerid:'',usetype:'default'}" @onImportSuccess="onImportSuccess">
           <a class="error-link" v-if="errorurl" :href="errorurl" slot="errorFile">下载错误数据</a>
           <a class="error-link" v-if="errorurl" :href="errorurl" slot="errorFile">下载错误数据</a>
         </importFile>
         </importFile>
       </div>
       </div>
 
 
       <div slot="slot0">
       <div slot="slot0">
         <!-- projectTargetManage -->
         <!-- projectTargetManage -->
+        <addPerson :data="mainData" style="margin-bottom: 10px" @addSuccess="onSuccess"></addPerson>
         <targetTable ref="list" class="">
         <targetTable ref="list" class="">
-<!--          <template  v-slot:editTarget="scope">
-            <editTarget v-if="tool.checkAuth($route.name,'update')" style="display:inline" :year="mainInfo.year" :data="scope.data" @onSuccess="onSuccess"></editTarget>
-          </template>-->
-<!--          <template  v-slot:del="scope">
-            <ondel v-if="tool.checkAuth($route.name,'delete')" :data="scope.data" @onSuccess="onSuccess"></ondel>
-          </template>-->
+          <template  v-slot:del="scope">
+            <el-button type="text"  v-if="tool.checkAuth($route.name,'delete')" :disabled="mainData.status != '新建'" size="small" @click="delShow(scope.data.hrid)">删 除</el-button>
+          </template>
         </targetTable>
         </targetTable>
       </div>
       </div>
       <div slot="slot1">
       <div slot="slot1">
@@ -55,6 +53,7 @@ import detail_information from './modules/detailedInformation/index'
 import issue from '../issue'
 import issue from '../issue'
 import adjustment from '../adjustment'
 import adjustment from '../adjustment'
 import close from '../close'
 import close from '../close'
+import addPerson from './components/addPerson'
 export default {
 export default {
   components:{
   components:{
     targetTable,
     targetTable,
@@ -65,7 +64,8 @@ export default {
     detail_information,
     detail_information,
     issue,
     issue,
     adjustment,
     adjustment,
-    close
+    close,
+    addPerson
   },
   },
   data () {
   data () {
     return {
     return {
@@ -91,6 +91,7 @@ export default {
       const res = await this.$api.requested({
       const res = await this.$api.requested({
         "id": 20220909155202,
         "id": 20220909155202,
         "content": {
         "content": {
+          "nocache":true,
           "sa_salestargetbillid": id
           "sa_salestargetbillid": id
         }
         }
       })
       })
@@ -173,9 +174,37 @@ export default {
         })
         })
       }else {
       }else {
         this.tool.showMessage(res1,()=>{
         this.tool.showMessage(res1,()=>{
-          this.mainData()
+          this.onSuccess()
         })
         })
       }
       }
+    },
+    delShow(data){
+      this.$confirm('此操作将删除该人员的项目目标, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('删除')
+        console.log(data)
+        this.onDel(data)
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+    },
+    async onDel(data){
+      const res = await this.$api.requested({
+        "id": 20220901111202,
+        "content": {
+          "sa_salestargetbillid": this.$route.query.id,
+          "hrid": [data]
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.onSuccess()
+      })
     }
     }
   },
   },
   mounted () {
   mounted () {

+ 64 - 4
src/HManagement/task/modules/detail.vue

@@ -11,6 +11,7 @@
         ownertable="sys_task"
         ownertable="sys_task"
         tags=""
         tags=""
         :tabs="['任务信息']"
         :tabs="['任务信息']"
+        :mainData="mainData"
         @pageChange="pageChange"
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
         @onEditSuccess="queryMainData($route.query.id)">
       <div slot="customOperation">
       <div slot="customOperation">
@@ -66,6 +67,7 @@ export default {
     },
     },
     changeDataStructure() {
     changeDataStructure() {
       let that = this
       let that = this
+      this.mainData.systemapp.length>0?
       this.mainAreaData = [
       this.mainAreaData = [
         {
         {
           label:'创建人',
           label:'创建人',
@@ -107,8 +109,66 @@ export default {
             }
             }
             return{color:color}
             return{color:color}
           }
           }
-        }
-      ]
+        },
+        {
+          label:'关联应用数据',
+          value:this.mainData.systemapp?this.mainData.systemapp[0].systemappname:'',
+          style:()=>{
+            let color = '#3874f6'
+            return {color: color}
+          }
+        },
+      ]:this.mainAreaData = [
+            {
+              label:'创建人',
+              value:this.mainData.createby
+            },
+            {
+              label:'创建时间',
+              value:this.mainData.createdate
+            },
+            {
+              label:'开始时间',
+              value:this.mainData.starttime
+            },
+            {
+              label:'结束时间',
+              value:this.mainData.endtime?this.mainData.endtime:'无限'
+            },
+            {
+              label:'提醒时间',
+              value:this.mainData.remindday?`${this.mainData.remindday}天`:'无需提醒'
+            },
+            {
+              label:'状态',
+              value:this.mainData.status,
+              style:()=>{
+                let color = ''
+                switch (this.mainData.status) {
+                  case '待执行':
+                    color = '#3874f6'
+                    break;
+                  case '进行中':
+                    color = '#52c41a'
+                    break;
+                  case '已完成':
+                    color = '#333333'
+                    break;
+                  default:
+                    break;
+                }
+                return{color:color}
+              }
+            },
+            /*{
+              label:'关联应用数据',
+              value:this.mainData.systemapp?this.mainData.systemapp[0].systemappname:'',
+              style:()=>{
+                let color = '#3874f6'
+                return {color: color}
+              }
+            },*/
+          ]
     },
     },
     // 监听切换数据,上一页,下一页
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex,tabIndex) {
     pageChange (id,rowindex,tabIndex) {
@@ -143,7 +203,7 @@ export default {
           this.$message({
           this.$message({
             type: 'info',
             type: 'info',
             message: '已取消删除'
             message: '已取消删除'
-          });          
+          });
         });
         });
     }
     }
   },
   },
@@ -159,4 +219,4 @@ export default {
 .task__content{
 .task__content{
   line-height: 30px;
   line-height: 30px;
 }
 }
-</style>
+</style>

+ 8 - 8
src/SDrpManagement/agentOrder/details/index.vue

@@ -17,7 +17,7 @@
           <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" />
           <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" />
           <el-button :disabled="mainData.status !== '交期待确认'"  type="primary" size="mini" @click="confirmdate">确认交期</el-button>
           <el-button :disabled="mainData.status !== '交期待确认'"  type="primary" size="mini" @click="confirmdate">确认交期</el-button>
           <el-button class="inline-16" v-if="tool.checkAuth($route.name,'submit') " :disabled="mainData.status !== '新建' || mainData.qty === 0"  type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
           <el-button class="inline-16" v-if="tool.checkAuth($route.name,'submit') " :disabled="mainData.status !== '新建' || mainData.qty === 0"  type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
-          <customBtn 
+          <customBtn
             btnName="撤回"
             btnName="撤回"
             message="确认撤回当前订单吗?"
             message="确认撤回当前订单吗?"
             idName="20230301190202"
             idName="20230301190202"
@@ -180,7 +180,7 @@ export default {
         this.queryUsedrebate()
         this.queryUsedrebate()
         re()
         re()
       })
       })
-      
+
     },
     },
     changeDataStructure() {
     changeDataStructure() {
       let that = this
       let that = this
@@ -221,7 +221,7 @@ export default {
         },
         },
         {
         {
           label:'单据日期',
           label:'单据日期',
-          value:this.mainData.createdate
+          value:this.mainData.billdate
         },
         },
         {
         {
           label:'合计数量',
           label:'合计数量',
@@ -314,7 +314,7 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: err
           message: err
-        });          
+        });
       });
       });
     },
     },
     // 查询站点是否使用返利金
     // 查询站点是否使用返利金
@@ -348,7 +348,7 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: err
           message: err
-        });          
+        });
       });
       });
     },
     },
     async onRebanck () {
     async onRebanck () {
@@ -425,9 +425,9 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: '已取消'
           message: '已取消'
-        });          
+        });
       });
       });
-      
+
     },
     },
     async bindImportOrder (id) {
     async bindImportOrder (id) {
       console.log(id)
       console.log(id)
@@ -461,4 +461,4 @@ export default {
   background: #d9ecff;
   background: #d9ecff;
   border: 1px dashed #0676e7;
   border: 1px dashed #0676e7;
 }
 }
-</style>
+</style>

+ 10 - 10
src/SDrpManagement/salerOrder/details/index.vue

@@ -17,7 +17,7 @@
           <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" />
           <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" />
           <el-button :disabled="mainData.status !== '交期待确认'"  type="primary" size="mini" @click="confirmdate">确认交期</el-button>
           <el-button :disabled="mainData.status !== '交期待确认'"  type="primary" size="mini" @click="confirmdate">确认交期</el-button>
           <el-button  v-if="tool.checkAuth($route.name,'submit')" :disabled="mainData.status !== '新建' || mainData.qty === 0"  type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
           <el-button  v-if="tool.checkAuth($route.name,'submit')" :disabled="mainData.status !== '新建' || mainData.qty === 0"  type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
-          <customBtn 
+          <customBtn
             btnName="撤回"
             btnName="撤回"
             message="确认撤回当前订单吗?"
             message="确认撤回当前订单吗?"
             idName="20230301190202"
             idName="20230301190202"
@@ -29,7 +29,7 @@
             v-if="mainData.status == '提交' && tool.checkAuth($route.name,'reback')"
             v-if="mainData.status == '提交' && tool.checkAuth($route.name,'reback')"
           />
           />
           <el-button  v-if="tool.checkAuth($route.name,'insert')"  type="primary" size="mini" @click="onCopy">复 制</el-button>
           <el-button  v-if="tool.checkAuth($route.name,'insert')"  type="primary" size="mini" @click="onCopy">复 制</el-button>
-          <customBtn 
+          <customBtn
             btnName="删 除"
             btnName="删 除"
             message="确认删除当前订单吗?"
             message="确认删除当前订单吗?"
             idName="20221108152102"
             idName="20221108152102"
@@ -186,8 +186,8 @@ export default {
 
 
         re()
         re()
       })
       })
-      
-      
+
+
     },
     },
     changeDataStructure() {
     changeDataStructure() {
       let that = this
       let that = this
@@ -232,7 +232,7 @@ export default {
         },
         },
         {
         {
           label:'单据日期',
           label:'单据日期',
-          value:this.mainData.createdate
+          value:this.mainData.billdate
         },
         },
         {
         {
           label:'企业名称',
           label:'企业名称',
@@ -391,7 +391,7 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: err
           message: err
-        });          
+        });
       });
       });
     },
     },
     // 反审核订单
     // 反审核订单
@@ -414,7 +414,7 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: err
           message: err
-        });          
+        });
       });
       });
     },
     },
     async onRebanck () {
     async onRebanck () {
@@ -499,9 +499,9 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: '已取消'
           message: '已取消'
-        });          
+        });
       });
       });
-      
+
     },
     },
   },
   },
   mounted () {
   mounted () {
@@ -520,4 +520,4 @@ export default {
   background: #d9ecff;
   background: #d9ecff;
   border: 1px dashed #0676e7;
   border: 1px dashed #0676e7;
 }
 }
-</style>
+</style>

+ 10 - 5
src/SDrpManagement/salerPrivatecustomer/detail/modules/financialInfo/modules/add.vue

@@ -7,6 +7,7 @@
       direction="rtl"
       direction="rtl"
       append-to-body
       append-to-body
       :show-close="false"
       :show-close="false"
+      :before-close="handleClose"
       size="700px">
       size="700px">
       <div class="drawer__panel">
       <div class="drawer__panel">
         <el-form :model="form" ref="form" :rules="rules" :status-icon="false"	 size="mini" label-position="right" label-width="100px" class="demo-form-inline">
         <el-form :model="form" ref="form" :rules="rules" :status-icon="false"	 size="mini" label-position="right" label-width="100px" class="demo-form-inline">
@@ -16,16 +17,16 @@
           <el-form-item label="税号" prop="taxno">
           <el-form-item label="税号" prop="taxno">
             <el-input v-model="form.taxno" placeholder="统一社会信用代码"></el-input>
             <el-input v-model="form.taxno" placeholder="统一社会信用代码"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="开户银行" >
+          <el-form-item label="开户银行" prop="bank">
             <el-input v-model="form.bank" placeholder="统一社会信用代码"></el-input>
             <el-input v-model="form.bank" placeholder="统一社会信用代码"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="开户账号" >
+          <el-form-item label="开户账号" prop="bankcardno">
             <el-input v-model="form.bankcardno" placeholder="开户账号"></el-input>
             <el-input v-model="form.bankcardno" placeholder="开户账号"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="开票地址" >
+          <el-form-item label="开票地址" prop="address">
             <el-input v-model="form.address" placeholder="开票地址"></el-input>
             <el-input v-model="form.address" placeholder="开票地址"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="电话" >
+          <el-form-item label="电话" prop="phonenumber">
             <el-input v-model="form.phonenumber" placeholder="手机号(电话)"></el-input>
             <el-input v-model="form.phonenumber" placeholder="手机号(电话)"></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="备注" prop="remarks">
           <el-form-item label="备注" prop="remarks">
@@ -41,7 +42,7 @@
         </el-form>
         </el-form>
       </div>
       </div>
       <div class="fixed__btn__panel">
       <div class="fixed__btn__panel">
-        <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" @click="handleClose" class="normal-btn-width">取 消</el-button>
         <el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
         <el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
       </div>
       </div>
     </el-drawer>
     </el-drawer>
@@ -117,6 +118,10 @@ export default {
         })
         })
       });
       });
 
 
+    },
+    handleClose(){
+      this.drawer = false
+      this.$refs['form'].resetFields()
     }
     }
   },
   },
   mounted() {
   mounted() {

+ 12 - 1
src/SManagement/orderclue/index.vue

@@ -40,6 +40,13 @@
           </el-option>
           </el-option>
         </el-select>
         </el-select>
       </div>
       </div>
+      <div class="mt-10">
+        <p class="search__label">领域:</p>
+        <el-select v-model="tradefield" clearable style="margin-right:10px" size="small" placeholder="请选择领域" @change="$refs.list.param.content.pageNumber = 1 ;$refs.list.param.content.where.tradefield = tradefield;$refs.list.listData()">
+          <el-option v-for="item in tradefields" :label="item.value" :key="item.rowindex" :value="item.value">
+          </el-option>
+        </el-select>
+      </div>
     </template>
     </template>
       <template v-slot:tbList="scope">
       <template v-slot:tbList="scope">
         <div v-if="scope.data.column.columnname == 'status'">
         <div v-if="scope.data.column.columnname == 'status'">
@@ -87,7 +94,9 @@ export default {
       area:'',
       area:'',
       tabIndex:"1",
       tabIndex:"1",
       status:'',
       status:'',
-      statusList:[]
+      statusList:[],
+      tradefield:'',
+      tradefields:[]
     }
     }
   },
   },
   provide() {
   provide() {
@@ -106,6 +115,8 @@ export default {
 
 
     const res2 = await this.$store.dispatch('optiontypeselect','datafollowuptype')
     const res2 = await this.$store.dispatch('optiontypeselect','datafollowuptype')
     this.statusList = res2.data
     this.statusList = res2.data
+    const res3 = await this.$store.dispatch('optiontypeselect','tradefield')
+    this.tradefields = res3.data
     console.log(this.statusList);
     console.log(this.statusList);
 
 
   },
   },

+ 11 - 6
src/SManagement/user/user-info/UserInfo.vue

@@ -8,7 +8,7 @@
       </div>
       </div>
       <base-info :userInfo="userInfo" ref="userInfo">
       <base-info :userInfo="userInfo" ref="userInfo">
           <phone-edit slot="phoneEdit" :userInfo="userInfo" @phoneChange="phoneChange"></phone-edit>
           <phone-edit slot="phoneEdit" :userInfo="userInfo" @phoneChange="phoneChange"></phone-edit>
-          <pass-edit slot="passEdit" :userInfo="userInfo"></pass-edit>
+          <pass-edit slot="passEdit" :userInfo="userInfo" ref="passWord"></pass-edit>
       </base-info>
       </base-info>
       <wx-bind :userInfo="userInfo">
       <wx-bind :userInfo="userInfo">
       </wx-bind>
       </wx-bind>
@@ -58,7 +58,7 @@ export default {
   created() {
   created() {
     this.getUserInfo()
     this.getUserInfo()
     console.log(this.$options);
     console.log(this.$options);
-    
+
   },
   },
   methods: {
   methods: {
     //获取用户信息
     //获取用户信息
@@ -66,7 +66,7 @@ export default {
       let res = await this.$api.requested(this.param)
       let res = await this.$api.requested(this.param)
       this.userInfo = res.data
       this.userInfo = res.data
       console.log(this.userInfo);
       console.log(this.userInfo);
-      
+
     },
     },
     //上传头像成功
     //上传头像成功
     onSuccess(id) {
     onSuccess(id) {
@@ -96,13 +96,18 @@ export default {
         }
         }
       })
       })
       this.tool.showMessage(res,() => {
       this.tool.showMessage(res,() => {
-        this.getUserInfo()    
+        this.getUserInfo()
       })
       })
     },
     },
     phoneChange(phone) {
     phoneChange(phone) {
       this.$refs.userInfo.ruleForm.phonenumber = phone
       this.$refs.userInfo.ruleForm.phonenumber = phone
     },
     },
   },
   },
+  mounted() {
+    if (JSON.parse(sessionStorage.getItem('active_password')) == '1' && JSON.parse(sessionStorage.getItem('isPassword')) == '1'){
+      this.$refs.passWord.dialogVisible = true
+    }
+  }
 };
 };
 </script>
 </script>
 
 
@@ -117,7 +122,7 @@ export default {
     padding: 50px 60px 0 60px;
     padding: 50px 60px 0 60px;
   }
   }
   .user-info-panl .top {
   .user-info-panl .top {
-    
+
   }
   }
   .user-info-panl .top .avatar {
   .user-info-panl .top .avatar {
     display: flex;
     display: flex;
@@ -149,7 +154,7 @@ export default {
     margin-bottom: 30px;
     margin-bottom: 30px;
   }
   }
   .user-info-panl .info1 .info-item .left {
   .user-info-panl .info1 .info-item .left {
-    
+
   }
   }
   .user-info-panl .info1 .info-item .left p:first-child {
   .user-info-panl .info1 .info-item .left p:first-child {
     margin-bottom: 20px;
     margin-bottom: 20px;

+ 7 - 1
src/SManagement/user/user-info/components/PassEdit.vue

@@ -14,7 +14,7 @@
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
       <div class="footer">
       <div class="footer">
-        <el-button @click="dialogVisible=false">取消</el-button>
+        <el-button @click="onClose">取消</el-button>
         <el-button type="primary" @click="passEdit()">提交</el-button>
         <el-button type="primary" @click="passEdit()">提交</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
@@ -63,6 +63,7 @@ export default {
   methods: {
   methods: {
     handleClose () {
     handleClose () {
       this.dialogVisible = false
       this.dialogVisible = false
+      sessionStorage.setItem('isPassword','0')
     },
     },
     passEdit() {
     passEdit() {
       this.$refs.form.validate(val => {
       this.$refs.form.validate(val => {
@@ -83,6 +84,7 @@ export default {
               })
               })
               this.$refs.form.resetFields()
               this.$refs.form.resetFields()
               this.dialogVisible = false
               this.dialogVisible = false
+              sessionStorage.setItem('isPassword','0')
             } else {
             } else {
               this.$notify({
               this.$notify({
                 title:'提示',
                 title:'提示',
@@ -101,6 +103,10 @@ export default {
         }
         }
       })
       })
     },
     },
+    onClose(){
+      sessionStorage.setItem('isPassword','0')
+      this.dialogVisible = false
+    }
   },
   },
 };
 };
 </script>
 </script>

+ 34 - 1
src/components/newLayout/index.vue

@@ -17,6 +17,19 @@
       <navTemp  @getModules="getModules"></navTemp>
       <navTemp  @getModules="getModules"></navTemp>
     </div>
     </div>
     <socketMessage></socketMessage>
     <socketMessage></socketMessage>
+    <el-dialog
+        title="提示"
+        style="margin-top: calc(28vh)"
+        :visible.sync="dialogVisible"
+        width="500px"
+        :before-close="handleClose"
+        >
+      <span>当前密码为初始密码,请前往修改密码</span>
+      <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="onClose">取 消</el-button>
+    <el-button size="small" type="primary" @click="goPassword">确 定</el-button>
+  </span>
+    </el-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -48,7 +61,8 @@ export default {
       timer:null,
       timer:null,
       marginTrue:false,
       marginTrue:false,
       divHeight:'',
       divHeight:'',
-      divTop:''
+      divTop:'',
+      dialogVisible:false
     }
     }
   },
   },
   methods:{
   methods:{
@@ -74,9 +88,28 @@ export default {
           this.marginTrue = false
           this.marginTrue = false
         }*/
         }*/
       },200)
       },200)
+    },
+    goPassword(){
+      this.dialogVisible = false
+      this.$router.push('/user_center')
+      sessionStorage.setItem('password','1')
+      sessionStorage.setItem('isPassword','1')
+    },
+    handleClose(){
+      this.dialogVisible = false
+      sessionStorage.setItem('password','1')
+      sessionStorage.setItem('isPassword','0')
+    },
+    onClose(){
+      this.dialogVisible = false
+      sessionStorage.setItem('password','1')
+      sessionStorage.setItem('isPassword','0')
     }
     }
   },
   },
   mounted() {
   mounted() {
+    if (JSON.parse(sessionStorage.getItem('active_password')) == '1' && JSON.parse(sessionStorage.getItem('password')) != '1'){
+      this.dialogVisible = true
+    }
     /*this.debouned()*/
     /*this.debouned()*/
    /* console.log('长度')
    /* console.log('长度')
     console.log(this.$refs.menu.$refs.menuList.$el.clientHeight,'高度')
     console.log(this.$refs.menu.$refs.menuList.$el.clientHeight,'高度')

+ 13 - 11
src/components/newLayout/modules/header.vue

@@ -70,6 +70,8 @@ export default {
         sessionStorage.removeItem(key)
         sessionStorage.removeItem(key)
       })
       })
       sessionStorage.setItem('active_account',JSON.stringify(item))
       sessionStorage.setItem('active_account',JSON.stringify(item))
+      sessionStorage.setItem('isPassword','0')
+      sessionStorage.setItem('password','0')
       await this.basicData.query_userauth()
       await this.basicData.query_userauth()
       this.siteInfos()
       this.siteInfos()
       this.accountInfo = JSON.parse(sessionStorage.getItem('active_account'))
       this.accountInfo = JSON.parse(sessionStorage.getItem('active_account'))
@@ -79,7 +81,7 @@ export default {
       this.$nextTick(()=>{
       this.$nextTick(()=>{
         this.$router.go(0)
         this.$router.go(0)
       })
       })
-     
+
     },
     },
     async getWeather () {
     async getWeather () {
       const res = await axios.get(this.url)
       const res = await axios.get(this.url)
@@ -105,9 +107,9 @@ export default {
         this.$message({
         this.$message({
           type: 'info',
           type: 'info',
           message: '已取消'
           message: '已取消'
-        });          
+        });
       });
       });
-      
+
     },
     },
     changeAccount () {
     changeAccount () {
       this.$router.push('/accounts')
       this.$router.push('/accounts')
@@ -116,9 +118,9 @@ export default {
     //跳转到应用,并设设置激活模块
     //跳转到应用,并设设置激活模块
     handelMenuAppClick (app,type) {
     handelMenuAppClick (app,type) {
       let system = JSON.parse(sessionStorage.getItem('module_info'))
       let system = JSON.parse(sessionStorage.getItem('module_info'))
-      
+
       let mod = system.filter(e=>{return e.systemid === app.systemid})[0].modules.filter(e=>{return e.systemmoduleid === app.systemmoduleid})[0]
       let mod = system.filter(e=>{return e.systemid === app.systemid})[0].modules.filter(e=>{return e.systemmoduleid === app.systemmoduleid})[0]
-      
+
       let clickApp = mod.apps.filter(e=>{return e.systemappid === app.systemappid})
       let clickApp = mod.apps.filter(e=>{return e.systemappid === app.systemappid})
 
 
       sessionStorage.setItem('active_modules',JSON.stringify(mod))
       sessionStorage.setItem('active_modules',JSON.stringify(mod))
@@ -126,14 +128,14 @@ export default {
       this.$emit('getModules',system.filter(e=>{return e.systemid === app.systemid})[0].modules,type)
       this.$emit('getModules',system.filter(e=>{return e.systemid === app.systemid})[0].modules,type)
 
 
       this.$store.dispatch('setActiveApp',{name:app.systemappname,app:clickApp[0],val:this.searchValue})
       this.$store.dispatch('setActiveApp',{name:app.systemappname,app:clickApp[0],val:this.searchValue})
-      
+
       this.$router.push({path:clickApp[0].path})
       this.$router.push({path:clickApp[0].path})
     },
     },
   },
   },
   mounted () {
   mounted () {
     this.siteInfos()
     this.siteInfos()
     // this.getWeather()
     // this.getWeather()
-    
+
     this.accountInfo = JSON.parse(sessionStorage.getItem('active_account'))
     this.accountInfo = JSON.parse(sessionStorage.getItem('active_account'))
     this.accountList = JSON.parse(sessionStorage.getItem('account_list')).filter(e=>{
     this.accountList = JSON.parse(sessionStorage.getItem('account_list')).filter(e=>{
       return e.siteid !== this.accountInfo.siteid
       return e.siteid !== this.accountInfo.siteid
@@ -172,14 +174,14 @@ export default {
 }
 }
 .search_panel input::placeholder{
 .search_panel input::placeholder{
   color:#fff;
   color:#fff;
-} 
+}
 .search_panel input:focus{
 .search_panel input:focus{
   background: #fff;
   background: #fff;
   color:#333
   color:#333
 }
 }
 .search_panel input:focus::placeholder{
 .search_panel input:focus::placeholder{
   color:#333;
   color:#333;
-} 
+}
 </style>
 </style>
 <style scoped>
 <style scoped>
 .flex{
 .flex{
@@ -205,7 +207,7 @@ export default {
 }
 }
 .weather:hover{
 .weather:hover{
   background-color: rgba(255 ,255,255,.2) !important;
   background-color: rgba(255 ,255,255,.2) !important;
- 
+
 }
 }
 .appLink{
 .appLink{
   padding:2px 5px;
   padding:2px 5px;
@@ -238,4 +240,4 @@ export default {
 .inactive{
 .inactive{
   background: red !important;
   background: red !important;
 }
 }
-</style>
+</style>

+ 23 - 2
src/components/normal-basic-layout/details/index.vue

@@ -30,7 +30,10 @@
       </div>
       </div>
       <div v-show="isTop">
       <div v-show="isTop">
         <el-descriptions :column="5" size="mini">
         <el-descriptions :column="5" size="mini">
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAData" :key="item.index" :label="item.label"><span :style="item.style?item.style():''">{{item.value !== ''?item.value:'--'}}</span></el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAData" :key="item.index" :label="item.label">
+            <span v-if="item.label === '关联应用数据'" @click="onGoto(item,item.index)" :style="item.style?item.style():''">{{item.value !== ''?item.value:'--'}}</span>
+            <span v-else :style="item.style?item.style():''">{{item.value !== ''?item.value:'--'}}</span>
+          </el-descriptions-item>
         </el-descriptions>
         </el-descriptions>
         <el-descriptions :column="1" size="mini">
         <el-descriptions :column="1" size="mini">
           <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAData2" :key="item.index" :label="item.label">
           <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAData2" :key="item.index" :label="item.label">
@@ -87,7 +90,7 @@ import taskTemp from './modules/task/index.vue'
 import reportCenter from '../reportCenter/index'
 import reportCenter from '../reportCenter/index'
 import {mapGetters} from 'vuex'
 import {mapGetters} from 'vuex'
 export default {
 export default {
-  props:['titleText','mainAreaData','turnPageId','delApiId','idname','ownertable','formPath','oldFormPath','editData','tags','tabs','statusCheck','pageChange','justsaler'],
+  props:['titleText','mainAreaData','turnPageId','delApiId','idname','ownertable','formPath','oldFormPath','editData','tags','tabs','statusCheck','pageChange','justsaler','mainData'],
   data () {
   data () {
     return {
     return {
       isTop:true,
       isTop:true,
@@ -338,6 +341,24 @@ export default {
 
 
     sysTag(val){
     sysTag(val){
       this.$emit('sysTag',val)
       this.$emit('sysTag',val)
+    },
+
+
+    /*任务页面跳转*/
+    onGoto(row,index){
+      let path = this.mainData.systemapp[0].apppath_index
+      let route = this.$route
+      if (route.path !== path.slice(1)){
+        this.oldRoute = {path:route.path,query:route.query}
+        this.$store.dispatch('setHistoryRouter',this.oldRoute)
+      }
+      this.$router.push({
+        path:path,
+        query:{
+          id:this.mainData.ownerid,
+          rowindex:this.mainData.rowindex
+        }
+      })
     }
     }
   },
   },
   mounted () {
   mounted () {

+ 54 - 7
src/components/normal-basic-layout/details/modules/followUp/followUp.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <div class="normal-panel follow__panel">
+  <div class="normal-panel follow__panel" >
     <div class="container flex-align-center flex-between">
     <div class="container flex-align-center flex-between">
       <div>
       <div>
         <slot name="collapse"></slot>
         <slot name="collapse"></slot>
@@ -7,7 +7,7 @@
       </div>
       </div>
       <addLog :ownertable="ownertable" @onSuccess="queryLogs"></addLog>
       <addLog :ownertable="ownertable" @onSuccess="queryLogs"></addLog>
     </div>
     </div>
-    <div  class="container">
+    <div  class="container scroll" >
       <div v-if="logList.length === 0">
       <div v-if="logList.length === 0">
         <el-empty description="暂无记录" :image-size="40"></el-empty>
         <el-empty description="暂无记录" :image-size="40"></el-empty>
       </div>
       </div>
@@ -20,9 +20,27 @@
               <div class="step__panel normal-margin">
               <div class="step__panel normal-margin">
                 <div class="flex-align-center flex-between" style="margin-bottom:10px">
                 <div class="flex-align-center flex-between" style="margin-bottom:10px">
                   <!-- <p><small>跟进人:</small>{{i.changeby}}</p> -->
                   <!-- <p><small>跟进人:</small>{{i.changeby}}</p> -->
-                  <img height="30" width="30" :src="i.headpic" alt="">
-                  <small style="color:#999">{{i.createdate}}</small>
+<!--                    <img height="30" width="30" :src="i.headpic" alt="">-->
+                  <div class="avatar inline-16" style="float: left">
+                    <img class="avatar__image" v-if="i.headpic" :src="i.headpic" alt="">
+                    <p v-else>{{i.userextend[0].name.substr(0, 1)}}</p>
+                  </div>
+                  <div style="float: left">
+                    <p>{{ i.userextend[0].name }}&nbsp;</p>
+                    <small style="color:#999999ad;margin-top:10px">部门:{{ i.userextend[0].depname?i.userextend[0].depname:"未知部门" }}&emsp;职位:{{ i.userextend[0].position?i.userextend[0].position:"未知职位" }}</small>
+                  </div>
+                  <div style="margin-left: 20px">
+                    <small style="color:#999">{{i.createdate}}</small>
+                  </div>
+
                 </div>
                 </div>
+<!--                <div >
+                  <span>{{i.userextend[0].name}}</span>
+                  <span>
+                    <small>部门:{{i.userextend[0].depname}}</small>
+                    <small>职位:{{i.userextend[0].position}}</small>
+                  </span>
+                </div>-->
                 <div class="follow-progress">
                 <div class="follow-progress">
                   <p>{{i.content}}</p>
                   <p>{{i.content}}</p>
                   <div>
                   <div>
@@ -43,7 +61,7 @@
                     <i style="color:red;" class="el-icon-delete" @click="deleteFile(file)"></i>
                     <i style="color:red;" class="el-icon-delete" @click="deleteFile(file)"></i>
                   </div> -->
                   </div> -->
                   <div style="text-align:right" v-if="nowUserid === i.createuserid">
                   <div style="text-align:right" v-if="nowUserid === i.createuserid">
-                    <upload class="inline-16" slot="upload" 
+                    <upload class="inline-16" slot="upload"
                       :folderid="folderid"
                       :folderid="folderid"
                       btntype="icon"
                       btntype="icon"
                       :bindData="{ ownertable: 'sys_datafollowup', ownerid: i.sys_datafollowupid,usetype: 'default' }"
                       :bindData="{ ownertable: 'sys_datafollowup', ownerid: i.sys_datafollowupid,usetype: 'default' }"
@@ -161,7 +179,7 @@ export default {
   padding: 0 5px;
   padding: 0 5px;
   display:block;
   display:block;
   width: 100%;
   width: 100%;
-  white-space: nowrap; 
+  white-space: nowrap;
   overflow: hidden;
   overflow: hidden;
   text-overflow: ellipsis;
   text-overflow: ellipsis;
 }
 }
@@ -188,7 +206,36 @@ export default {
 .normal-panel{
 .normal-panel{
   border-radius: 5px;
   border-radius: 5px;
 }
 }
+.avatar__image{
+  height: 100%;
+  width: 100%;
+}
+.avatar:hover .avatar__model{
+  display: block;
+}
+.avatar{
+  position: relative;
+  height:40px;
+  width: 40px;
+  margin-bottom: 5px;
+  border-radius: 100%;
+  text-align: center;
+  line-height: 40px;
+  color:#fff;
+  font-weight: 500;
+  background: #3874F6;
+  cursor: pointer;
+  overflow: hidden;
+}
+.scroll{
+  height: 410px;
+  overflow: auto;
+}
+.scroll::-webkit-scrollbar-thumb { /*滚动条滑块*/
+  border-radius: 10px;
+  background-color: #CACACA;
+}
 .flex-wrap{
 .flex-wrap{
   flex-wrap: wrap
   flex-wrap: wrap
 };
 };
-</style>
+</style>

+ 4 - 5
src/components/normal-basic-layout/details/modules/group/group.vue

@@ -31,14 +31,14 @@
       </div>
       </div>
     </div>
     </div>
     <div class="flex-align-center" style="border-bottom:1px solid #f1f2f3;padding:0 10px">
     <div class="flex-align-center" style="border-bottom:1px solid #f1f2f3;padding:0 10px">
-      <p style="flex:1;padding:10px 0;color:#999">参与</p>
-      <el-popover 
+      <p style="flex:1;padding:10px 0;color:#999">参与</p>
+      <el-popover
         placement="right"
         placement="right"
         trigger="manual"
         trigger="manual"
         v-model="visible"
         v-model="visible"
         width="500">
         width="500">
         <member ref="member1" :justsaler="justsaler" :param="param" :radio="false" :checked="item.team" @onSelect="onSubmit" @onCancel="visible = false"></member>
         <member ref="member1" :justsaler="justsaler" :param="param" :radio="false" :checked="item.team" @onSelect="onSubmit" @onCancel="visible = false"></member>
-        <el-button v-show="(item.teamleader[0] && nowUserid === item.teamleader[0].userid) || editdataleader == 1" type="text" size="small" slot="reference"  @click="showMenberSelect1(item)">添加</el-button>
+        <el-button v-show="(item.teamleader[0] && nowUserid === item.teamleader[0].userid) || editdataleader == 1" type="text" size="small" slot="reference"  @click="showMenberSelect1(item)">变更</el-button>
       </el-popover>
       </el-popover>
     </div>
     </div>
     <div style="padding:10px">
     <div style="padding:10px">
@@ -49,7 +49,7 @@
         </div>
         </div>
         <div>
         <div>
           <p>{{ men.name }}&nbsp;<small style="color:#999999ad">&nbsp;账号:{{ men.username }}</small></p>
           <p>{{ men.name }}&nbsp;<small style="color:#999999ad">&nbsp;账号:{{ men.username }}</small></p>
-          <small style="color:#999999ad;margin-top:10px">部门:{{ men.depname?men.depname:"未知部门" }}&emsp;职位:{{ men.position?men.position:"未知部门" }}</small>
+          <small style="color:#999999ad;margin-top:10px">部门:{{ men.depname?men.depname:"未知部门" }}&emsp;职位:{{ men.position?men.position:"未知职位" }}</small>
         </div>
         </div>
         <div style="float: right;margin-left: 60px">
         <div style="float: right;margin-left: 60px">
           <el-button v-show="item.teamleader[0] && nowUserid === item.teamleader[0].userid" type="text" @click="setClick(men)" size="mini">设置</el-button>
           <el-button v-show="item.teamleader[0] && nowUserid === item.teamleader[0].userid" type="text" @click="setClick(men)" size="mini">设置</el-button>
@@ -240,7 +240,6 @@ export default {
   mounted() {
   mounted() {
     this.queryGroup()
     this.queryGroup()
     this.nowUserid = JSON.parse(sessionStorage.getItem('active_account')).userid
     this.nowUserid = JSON.parse(sessionStorage.getItem('active_account')).userid
-    console.log(this.editdataleader,'editdataleader111111')
   },
   },
   watch: {
   watch: {
     $route () {
     $route () {

+ 3 - 2
src/components/normal-basic-layout/details/modules/task/addTask.vue

@@ -117,7 +117,8 @@ export default {
         "ownertable":"",
         "ownertable":"",
         "ownerid":this.$route.query.id,
         "ownerid":this.$route.query.id,
         "endtime":"",
         "endtime":"",
-				"leaderuserid":""
+				"leaderuserid":"",
+        "systemappid":JSON.parse(sessionStorage.getItem('activeApp')).systemappid
 			},
 			},
 			// 查询团队人员参数
 			// 查询团队人员参数
 			params:{
 			params:{
@@ -289,4 +290,4 @@ export default {
 .task__label{
 .task__label{
 	color:rgb(173, 172, 172);
 	color:rgb(173, 172, 172);
 }
 }
-</style>
+</style>

+ 5 - 2
src/views/homePage/index.vue

@@ -54,7 +54,8 @@ export default {
   data () {
   data () {
     return {
     return {
       modulesList:[],
       modulesList:[],
-      dataOverview:{}
+      dataOverview:{},
+
     }
     }
   },
   },
   methods:{
   methods:{
@@ -87,7 +88,9 @@ export default {
   },
   },
   mounted () {
   mounted () {
     this.modulesList = JSON.parse(sessionStorage.getItem('module_info'))
     this.modulesList = JSON.parse(sessionStorage.getItem('module_info'))
+
     this.getDataOverview()
     this.getDataOverview()
+
   }
   }
 }
 }
 
 
@@ -120,4 +123,4 @@ export default {
 .modules-item:hover .setting-panel{
 .modules-item:hover .setting-panel{
   display: block;
   display: block;
 }
 }
-</style>
+</style>

+ 7 - 6
src/views/login/login.vue

@@ -13,7 +13,7 @@
               <el-form :rules="rules2" ref="loginForm"  :model="loginForm">
               <el-form :rules="rules2" ref="loginForm"  :model="loginForm">
                 <el-form-item prop="phonenumber">
                 <el-form-item prop="phonenumber">
                   <el-input v-model="loginForm.phonenumber" placeholder="账号" @keyup.native.enter="loginbyaccount"></el-input>
                   <el-input v-model="loginForm.phonenumber" placeholder="账号" @keyup.native.enter="loginbyaccount"></el-input>
-                </el-form-item> 
+                </el-form-item>
                 <el-form-item prop="password">
                 <el-form-item prop="password">
                   <el-input v-model="loginForm.password" type="password" placeholder="密码" @keyup.native.enter="loginbyaccount">
                   <el-input v-model="loginForm.password" type="password" placeholder="密码" @keyup.native.enter="loginbyaccount">
                   </el-input>
                   </el-input>
@@ -32,7 +32,7 @@
               <el-form :rules="rules" ref="loginForm"  :model="loginForm">
               <el-form :rules="rules" ref="loginForm"  :model="loginForm">
                 <el-form-item prop="phonenumber">
                 <el-form-item prop="phonenumber">
                   <el-input v-model="loginForm.phonenumber" placeholder="账号"></el-input>
                   <el-input v-model="loginForm.phonenumber" placeholder="账号"></el-input>
-                </el-form-item> 
+                </el-form-item>
                 <el-form-item prop="password">
                 <el-form-item prop="password">
                   <el-input v-model="loginForm.password" placeholder="验证码">
                   <el-input v-model="loginForm.password" placeholder="验证码">
                     <template slot="append">
                     <template slot="append">
@@ -129,7 +129,7 @@ export default {
     async login () {
     async login () {
       const res = await this.$api.login({
       const res = await this.$api.login({
         "phonenumber":this.loginForm.phonenumber,
         "phonenumber":this.loginForm.phonenumber,
-        "password":md5(this.loginForm.password),  
+        "password":md5(this.loginForm.password),
         "systemclient": "web"
         "systemclient": "web"
       })
       })
       let that = this
       let that = this
@@ -145,6 +145,7 @@ export default {
           this.checked?localStorage.setItem('phonenumber',this.loginForm.phonenumber):localStorage.clear('phonenumber')
           this.checked?localStorage.setItem('phonenumber',this.loginForm.phonenumber):localStorage.clear('phonenumber')
           sessionStorage.setItem('account_list',JSON.stringify(res.account_list))
           sessionStorage.setItem('account_list',JSON.stringify(res.account_list))
           sessionStorage.setItem('active_account',JSON.stringify(res.account_list[0]))
           sessionStorage.setItem('active_account',JSON.stringify(res.account_list[0]))
+          sessionStorage.setItem('active_password',res.remindchangepassword)
           this.basicData.query_userauth().then(()=>{
           this.basicData.query_userauth().then(()=>{
             this.basicData.querySite_Parameter()
             this.basicData.querySite_Parameter()
             this.$router.push({path:'/main'})
             this.$router.push({path:'/main'})
@@ -164,7 +165,7 @@ export default {
           message:res.msg,
           message:res.msg,
           type: 'error'
           type: 'error'
         })
         })
-       
+
       }
       }
     },
     },
     /* 获取账户信息 */
     /* 获取账户信息 */
@@ -197,7 +198,7 @@ export default {
           sessionStorage.setItem('account_list',JSON.stringify(res.account_list))
           sessionStorage.setItem('account_list',JSON.stringify(res.account_list))
 
 
           sessionStorage.setItem('active_account',JSON.stringify(res.account_list[0]))
           sessionStorage.setItem('active_account',JSON.stringify(res.account_list[0]))
-
+          sessionStorage.setItem('active_password',res.remindchangepassword)
           this.basicData.query_userauth().then(()=>{
           this.basicData.query_userauth().then(()=>{
             this.basicData.querySite_Parameter()
             this.basicData.querySite_Parameter()
             this.$router.push({path:'/main'})
             this.$router.push({path:'/main'})
@@ -306,4 +307,4 @@ export default {
   align-items: center;
   align-items: center;
   justify-content: space-between;
   justify-content: space-between;
 }
 }
-</style>
+</style>