Ver código fonte

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

qymljy 2 anos atrás
pai
commit
fe2db2e084

+ 1 - 1
src/Form/marketing2/agent/add.vue

@@ -140,7 +140,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="是否授权所有标准:" style="height:51px" prop="standardsauth" label-width="160px">
-              <el-checkbox v-model="form.standardsauth" :true-label="1" :false-label="0"></el-checkbox>
+              <el-checkbox v-model="form.standardsauth" :true-label="0" :false-label="1"></el-checkbox>
             </el-form-item>
           </el-col>
           <el-col :span="12">

+ 1 - 1
src/Form/marketing2/agent/edit.vue

@@ -153,7 +153,7 @@
             </el-col>
             <el-col :span="12">
             <el-form-item label="是否授权所有标准:" style="height:51px" prop="standardsauth" label-width="160px">
-              <el-checkbox v-model="form.standardsauth" :true-label="1" :false-label="0"></el-checkbox>
+              <el-checkbox v-model="form.standardsauth" :true-label="0" :false-label="1"></el-checkbox>
             </el-form-item>
           </el-col>
             <el-col :span="12">

+ 0 - 10
src/HDrpManagement/orderManage/modules/add.vue

@@ -1,15 +1,5 @@
 <template>
   <div>
-    <!-- <el-dropdown size="small" split-button type="primary" @command="handleCommand">
-      新 建
-      <el-dropdown-menu slot="dropdown">
-        <el-dropdown-item command="标准订单">标准订单</el-dropdown-item>
-        <el-dropdown-item command="特殊订单">特殊订单</el-dropdown-item>
-        <el-dropdown-item command="项目订单">项目订单</el-dropdown-item>
-        <el-dropdown-item command="促销订单">促销订单</el-dropdown-item>
-        <el-dropdown-item command="工具订单">工具订单</el-dropdown-item>
-      </el-dropdown-menu>
-    </el-dropdown> -->
     <el-dropdown  @command="handleCommand">
       <el-button type="primary" size="small">
         新建<i class="el-icon-arrow-down el-icon--right"></i>

+ 133 - 0
src/HDrpManagement/workReport/index.vue

@@ -0,0 +1,133 @@
+<template>
+  <div>
+    <normalLayout>
+      <div slot="titleRight">
+        <reportSet class="inline-16" v-if="tool.checkAuth($route.name,'reportSet')"></reportSet>
+        <createReport class="inline-16" @onSuccess="onSuccess" v-if="tool.checkAuth($route.name,'createReport')"></createReport>
+      </div>
+      <div slot="content">
+        <div class="handle-header">
+          <div class="select-btn">
+            <div @click="selectFun('我收到的')"
+              :style="currentItem==1 ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">我收到的</div>
+            <div @click="selectFun('我发出的')"
+              :style="currentItem==0 ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">我发出的</div>
+          </div>
+          <el-input 
+            style="width:200px" 
+            size="small"  
+            suffix-icon="el-icon-search" 
+            placeholder="搜索" 
+            @input="valueChange"
+            v-model="condition"
+            @keyup.enter.native="$refs.aside.params.content.where.condition=condition;$refs.aside.params.content.pageNumber=1;$refs.aside.listData()" 
+            @clear="$refs.aside.params.content.where.condition=condition;$refs.aside.params.content.pageNumber=1;$refs.aside.listData()" clearable></el-input>
+        </div>
+        <div class="content">
+          <div class="content-left">
+            <Aside :statusParent="currentItem" ref="aside" @reportItem="reportItemClick"></Aside>
+          </div>
+          <div class="content-right">
+            <reportContent ref="reportContent"></reportContent>
+          </div>
+        </div>
+      </div>
+    </normalLayout>
+  </div>
+</template>
+
+<script>
+import reportSet from './modules/reportSet/index'
+import createReport from './modules/createReport/index'
+import Aside from './modules/aside/index'
+import reportContent from './modules/reportContent/index'
+export default {
+  name:'index',
+  components:{reportSet,Aside,reportContent,createReport},
+  data () {
+    return {
+      currentItem:1,
+      condition:''
+    }
+  },
+  methods: {
+    selectFun (data) {
+      if ((this.currentItem == 1 && data == '我收到的') || (this.currentItem == 0 && data == '我发出的')) return
+      this.$refs.aside.params.content.pageNumber = 1
+      this.currentItem = data == '我收到的' ? 1 : 0
+      if (this.currentItem) {
+        this.$refs.aside.params.id = 20230524103102
+        this.$refs.aside.listData((data) => {
+          this.$refs.reportContent.getDetail(data)
+        })
+      } else {
+        this.$refs.aside.params.id = 20230524102802
+        this.$refs.aside.listData((data) => {
+          this.$refs.reportContent.getDetail(data)
+        })
+      }
+    },
+    reportItemClick (id) {
+      this.$refs.reportContent.getDetail(id)
+    },
+    valueChange () {
+
+    },
+    onSuccess (data) {
+      this.$refs.aside.list.unshift(data)
+      this.$refs.aside.itemClick(data)
+    }
+  },
+  mounted () {
+    this.$nextTick(() => {
+      this.$refs.aside.params.id = 20230524103102
+      this.$refs.aside.listData((data) => {
+        this.$refs.reportContent.getDetail(data)
+      })
+    })
+    
+  }
+}
+</script>
+
+<style scoped>
+*{
+  box-sizing: border-box;
+}
+.handle-header {
+  display: flex;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+.select-btn {
+  display: flex;
+  font-size: 14px;
+  margin-left: 16px;
+  width: 210px;
+}
+.select-btn div {
+  text-align: center;
+  cursor: pointer;
+  padding: 4px 15px;
+  transition: background 0.2s ease-in-out;
+}
+.select-btn div:first-child {
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+.select-btn div:last-child {
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+}
+.content {
+  display: flex;
+}
+.content .content-left {
+  width: 400px;
+}
+.content .content-right {
+  width: calc(100% - 400px);
+  
+}
+
+</style>

+ 229 - 0
src/HDrpManagement/workReport/modules/aside/index.vue

@@ -0,0 +1,229 @@
+<template>
+  <div class="aside">
+    <div class="aside-header">
+      <p>{{ statusParent ? '我收到的' : '我发出的' }}</p>
+      <div class="select-btn" v-if="statusParent">
+        <div @click="selectFun('全部')"
+          :style="currentStatus=='' ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">全部</div>
+        <div @click="selectFun('未读')"
+          :style="currentStatus=='0' ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">未读</div>
+        <div @click="selectFun('已读')"
+          :style="currentStatus=='1' ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">已读</div>
+      </div>
+    </div>
+    <div class="list" v-load="load">
+      <div v-if="list.length">
+
+        <div 
+          class="list-item"
+          :class="item.readstatus == '未读' ? 'no-read' : ''"
+          :style="currentIndex == item.sys_workreportid ? '--borderColor:#3874F6' : '--borderColor:#cccccc'" 
+          v-for="item in list" 
+          :key="'item' + item.sys_workreportid" 
+          @click="itemClick(item)"
+        >
+          <div class="item-left">
+            <div class="item-avatar">{{ item.name.substr(0,1) }}</div>
+            <div class="item-info">
+              <div class="item-info_top">
+                <span>{{ item.name }}</span>
+                <span>{{ item.position }}</span>
+              </div>
+              <p>{{ item.phonenumber }}</p>
+              <p>{{ item.createdate }}</p>
+            </div>
+          </div>
+          <div class="item-right">{{ item.reportname }}</div>
+        </div>
+      </div>
+      <el-empty description="暂无数据" size="mini" v-else></el-empty>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['statusParent'],
+  data () {
+    return {
+      currentStatus:'',
+      currentIndex:'',
+      totalPage:0,
+      list:[],
+      params: {
+        "id": "20230524103102",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+              "condition": "",
+              "sys_workreportmodelid": "", //模板id
+              "readstatus":''
+          }
+        },
+      },
+    }
+  },
+  directives: {
+    load: {
+      bind (el,binding) {
+        let tableWarp = el
+        function handleFun (e) {
+          if (tableWarp.scrollTop + tableWarp.clientHeight >= tableWarp.scrollHeight) {
+            binding.value()
+          }
+        }
+        tableWarp.addEventListener('scroll',handleFun)
+        el.tableWarp = tableWarp
+        el.handleFun = handleFun
+      },
+      unbind (el,binding) {
+        /* 解绑 */
+        el.tableWarp.removeEventListener('scroll',el.handleFun)
+      }
+    }
+  },
+  methods: {
+    async listData (callback) {
+      let res = await this.$api.requested(this.params)
+      this.list = this.params.content.pageNumber == 1 ? res.data : this.list.concat(res.data)
+      this.totalPage = res.pageTotal
+      this.currentIndex = res.data.length ? res.data[0].sys_workreportid : ''
+      callback && callback(this.currentIndex)
+      console.log(this.list,'结果');
+    },
+    load () {
+      console.log(this.params.content.pageNumber,this.totalPage);
+      if (this.params.content.pageNumber == this.totalPage) return
+      this.params.content.pageNumber += 1
+      this.listData()
+    },
+    itemClick (data) {
+      if (this.currentIndex == data.sys_workreportid) return 
+      this.currentIndex = data.sys_workreportid
+      this.$emit('reportItem',this.currentIndex)
+    },
+    selectFun (data) {
+      switch (data) {
+        case '全部':
+          this.currentStatus = ''
+          break;
+        case '未读':
+          this.currentStatus = '0'
+          break;
+        case '已读':
+          this.currentStatus = '1'
+          break;
+      }
+      this.params.content.where.readstatus = this.currentStatus
+      this.params.content.pageNumber = 1
+      this.listData()
+    },
+  }
+}
+</script>
+
+<style  scoped>
+*{
+  box-sizing: border-box;
+}
+.aside {
+  font-size: 14px;
+  height: calc(100vh - 250px);
+  background: #FAFAFA;
+  border-right: 1px solid #CCCCCC;
+}
+.aside .aside-header {
+  display: flex;
+  align-items: center;
+  background: #F2F2F2;
+  height: 40px;
+  justify-content: space-between;
+  padding: 0 16px;
+}
+.select-btn {
+  display: flex;
+  font-size: 14px;
+  margin-left: 16px;
+}
+.select-btn div {
+  text-align: center;
+  cursor: pointer;
+  padding: 4px 15px;
+  transition: background 0.2s ease-in-out;
+}
+.select-btn div:first-child {
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+.select-btn div:last-child {
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+}
+
+.list {
+  padding: 10px;
+  height: calc(100% - 50px);
+  overflow-y: scroll;
+}
+::-webkit-scrollbar {
+  display: none;
+}
+.list .list-item {
+  width: 100%;
+  padding: 10px 5px;
+  border-radius: 5px;
+  border: 1px solid var(--borderColor);
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 10px;
+  cursor: pointer;
+  transition: all .2s ease-in-out;
+  position: relative;
+}
+.list .no-read::before {
+  content:'';
+  width:5px;
+  height: 5px;
+  border-radius: 5px;
+  background: red;
+  position: absolute;
+  top: -3px;
+  right: -2px;
+}
+.list .list-item .item-left {
+  display: flex;
+  align-items: center;
+}
+.list .list-item .item-left .item-avatar {
+  background: #3874F6;
+  width: 30px;
+  height: 30px;
+  text-align: center;
+  line-height: 30px;
+  border-radius: 50%;
+  margin-right: 10px;
+  color: #ffffff;
+}
+.list .list-item .item-left .item-info {}
+.list .list-item .item-left .item-info .item-info_top {
+  display: flex;
+}
+.list .list-item .item-left .item-info p {
+  font-size: 12px;
+}
+.list .list-item .item-left .item-info .item-info_top span:nth-of-type(2) {
+  font-size: 12px;
+  text-align: bottom;
+  margin-left: 10px;
+  transform: translateY(2px);
+}
+.list .list-item .item-right {
+  background: #E6F7FF;
+  color: #3874F6;
+  padding: 2px 4px;
+  border-radius: 4px;
+}
+
+</style>

+ 162 - 0
src/HDrpManagement/workReport/modules/createReport/index.vue

@@ -0,0 +1,162 @@
+<!--  -->
+<template>
+  <div>
+    <el-dropdown  @command="handleCommand">
+      <el-button type="primary" size="mini">
+        开始汇报
+      </el-button>
+      <el-dropdown-menu slot="dropdown">
+        <el-dropdown-item :command="{name:item.reportname,id:item.sys_workreportmodelid}" v-for="(item,index) in modelList" :key="index">{{ item.reportname }}</el-dropdown-item>
+      </el-dropdown-menu>
+    </el-dropdown>
+    <el-drawer
+      title="创建汇报"
+      :visible.sync="drawer"
+      direction="rtl"
+      :show-close="false"
+      append-to-body
+      size="800px">
+      <div class="drawer__panel" v-if="drawer">
+        <template v-for="item in detail">
+          <div v-if="item.editable" style="margin-bottom:40px">
+            <p class="normal-title" style="margin-bottom:20px">{{ item.title }}</p>
+            <p ref="content" contenteditable="true" class="content">
+              <template v-for="item2 in item.content">
+                {{ item2.content }}<br/>
+              </template>
+            </p>
+          </div>
+        </template>
+        <upload
+          ref="upload"
+          :folderid="folderid"
+          @onSuccess="onSuccess"
+          :bindData="bindData"
+          type="button">
+        </upload>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button class="normal-btn-width" :loading="loading" type="primary" size="small" @click="submitForm">创 建</el-button>
+        <!-- <el-button class="normal-btn-width" size="small" @click="resetForm">重 置</el-button> -->
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import upload from '@/SManagement/orderclue/components/upload'
+export default {
+  components:{upload},
+  data () {
+    return {
+      modelList:[],
+      loading:false,
+      drawer:false,
+      detail:'',
+      currentModel:{},
+      bindData:{},
+      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      uploadIndex:0,
+    }
+  },
+  methods: {
+    async getModelList () {
+      let res = await this.$api.requested({
+        "id": "20230524091902",
+        "content": {
+        },
+      })
+      this.modelList = res.data
+    },
+    async handleCommand (data) {
+      this.currentModel = data
+      console.log(this.currentModel);
+      this.drawer = true
+      let res = await this.$api.requested({
+        "id": "20230523131702",
+        "content": {
+            "sys_workreportmodelid": data.id
+        },
+      })
+      this.detail = res.data
+      this.detail.forEach(item => {
+        item.content.forEach(item2 => {
+          if (item.title == '数据统计') return 
+          item2.content = `${item2.rowindex}、${item2.content}`
+        })
+      })
+      console.log(this.detail);
+    },
+    async submitForm () {
+      let result = this.$refs.content.map((item,index) => {
+        return {
+          rowindex:index+1,
+          content:item.innerText
+        }
+      })
+      let copyDetail = JSON.parse(JSON.stringify(this.detail))
+      copyDetail.forEach((item,index) => {
+        if (index >= result.length || !item.editable) return
+        item.content = [result[index-1]]
+      })
+      let res = await this.$api.requested({
+          "id": "20230523094702",
+          "content": {
+              "sys_workreportmodelid": this.currentModel.id,
+              "reportname": this.currentModel.reportname, //可以不传,不传时为模板名称
+              "items": copyDetail
+          },
+      })
+      this.tool.showMessage(res,() => {
+        this.bindData = {
+          "ownertable": 'sys_workreport',
+          "ownerid": res.data.sys_workreportid,
+          "usetype": 'default',
+        }
+        if (!this.$refs.upload.fileList.length) {
+          this.drawer = false
+          res.data.name = res.data.createby
+          this.$emit('onSuccess',res.data)
+        } else {
+          this.loading = true
+          let index = 0
+          this.$refs['upload'].toUpload(() => {
+            if (!index) this.uploadIndex = this.$refs.upload.fileList.length
+            index++
+            if (this.uploadIndex == index) {
+              this.loading = false
+              this.drawer = false
+              res.data.name = res.data.createby
+              this.$emit('onSuccess',res.data)
+            }
+          })
+        }
+      })
+      console.log(res);
+    },
+    onSuccess () {
+
+    } 
+  },
+  created () {
+    this.getModelList()
+  },
+}
+</script>
+
+<style  scoped>
+/deep/.el-textarea__inner {
+  border: none !important;
+  font-size: 12px !important;
+}
+.normal-title {
+  font-size: 14px;
+  font-weight: normal;
+}
+.content {
+  font-size:12px;
+  border: 1px solid #dcdfe6;
+  border-radius:4px;
+  padding: 15px 10px;
+}
+</style>

+ 0 - 0
src/HDrpManagement/workReport/modules/detail.vue


+ 101 - 0
src/HDrpManagement/workReport/modules/reportContent/index.vue

@@ -0,0 +1,101 @@
+<template>
+  <div class="detail">
+    <div class="detail-header">
+      <span>{{ detail.createby }}-{{ detail.reportname }}</span>
+      <span>{{ detail.createdate }}</span>
+    </div>
+    <div class="detail-content" v-if="detail.items">
+      <div class="content-item" style="margin-bottom:20px" v-for="item in detail.items">
+        <p class="normal-title" style="margin-bottom:10px">{{ item.title }}</p>
+        <div v-if="item.content[0]">
+          <p v-for="(item2,index) in item.content[0].content" style="font-size:12px">{{ item2 }}</p>
+        </div>
+        <span v-else>暂无</span>
+      </div>
+      <file-item 
+        :marginRight="10"
+        :rowCount="5"
+        :isDownLoad="true" 
+        :fileData="detail.attinfos"
+        @deleteSuccess="deleteFile">
+      </file-item>
+    </div>
+    <el-empty description="暂无数据" size="mini" v-else></el-empty>
+  </div>
+</template>
+
+<script>
+import FileItem from '@/SManagement/orderclue/components/file/index2'
+export default {
+  components:{FileItem},
+  data () {
+    return {
+      detail:{}
+    }
+  },
+  methods: {
+    async getDetail (id) {
+      if (!id) return 
+      let res = await this.$api.requested({
+        "id": "20230524092002",
+        "content": {
+            "sys_workreportid": id
+        },
+      })
+      this.detail = res.data
+      this.detail.attinfos = this.fileType.fileList(this.detail.attinfos)
+      if (this.detail.items) {
+        this.detail.items.forEach(item => {
+          if (item.content.length) {
+            if (item.title == '数据统计') {
+              item.content[0].content = [item.content[0].content]
+            } else {
+              item.content[0].content = item.content[0].content.split('\n')
+            }
+          }
+        })
+      }
+      console.log(this.detail.items);
+    },
+    deleteFile (data) {
+      this.detail.forEach(item => {
+        item.attinfo.forEach((item2,index) => {
+          if(item2.linksid == data.linksid) {
+            item.attinfo.splice(index,1)
+          }
+        })
+      })
+      
+    },
+  }
+}
+</script>
+
+<style  scoped>
+.detail {
+  padding: 20px 40px;
+  border-top: 1px solid #cccccc;
+  height: calc(100vh - 250px);
+  overflow-y: scroll;
+}
+::-webkit-scrollbar {
+  display: none;
+}
+.detail .detail-header {
+  text-align: center;
+  margin-bottom: 20px;
+}
+.detail .detail-header span:nth-of-type(2) {
+  font-size: 12px;
+  margin-left:15px;
+}
+.content-item {
+  margin-bottom: 20px;
+}
+.content-item p:nth-of-type(2) {
+  font-size: 14px;
+}
+.normal-title{
+  font-size: 14px;
+}
+</style>

+ 341 - 0
src/HDrpManagement/workReport/modules/reportSet/components/add.vue

@@ -0,0 +1,341 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="editBtn">新 增</el-button>
+    <el-drawer title="汇报设置" append-to-body :show-close="false" :visible.sync="dialog" size="1100px">
+      <div slot="title" style="font-size: 15px">
+        汇报设置
+      </div>
+      <div class="drawer__panel">
+          <el-form :model="form" :rules="rules" ref="form" label-width="140px" label-position="left" size="mini">
+            <div class="report-people" style="margin-bottom:0">
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="模板名称:" prop="reportname">
+                    <el-input type="text" size="small" placeholder="请输入模板名称" v-model="form.reportname"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="是否启用:" prop="isused">
+                    <el-checkbox v-model="form.isused" :false-label="0" :true-label="1"></el-checkbox>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
+            <div class="report-people">
+              <div class="report-people_header">
+                <div class="normal-title" style="font-size:14px;margin-right:10px">汇报人员</div>
+                <addPeople @selectPeople="selectPeopleFun" v-model="form.hrids"></addPeople>
+              </div>
+              <el-form-item label-width="20px" prop="hrids">
+              <el-table
+                ref="table"
+                :data="selectPeople"
+                style="width: 100%"
+                size="mini"
+                v-model="form.hrids"
+                border>
+                <el-table-column
+                  prop="hrcode"
+                  label="编号">
+                </el-table-column>
+                <el-table-column
+                  prop="name"
+                  label="姓名">
+                </el-table-column>
+                <el-table-column
+                  prop="depname"
+                  label="部门">
+                </el-table-column>
+                <el-table-column
+                  prop="position"
+                  label="职位">
+                </el-table-column>
+                <el-table-column
+                  label="操作">
+                  <template slot-scope="scope">
+                    <el-button type="text" size="mini" @click="delSelecrPeople(scope.row)">删 除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              </el-form-item>
+            </div>
+            <div class="report-people">
+              <div class="report-people_header">
+                <div class="normal-title" style="font-size:14px;margin-right:10px">汇报内容预设</div>
+                <addOption @selectOption="selectOptionFun" v-model="form.sys_workreportpresetids"></addOption>
+              </div>
+              <el-form-item label-width="20px" prop="sys_workreportpresetids">
+              <el-table
+                ref="table"
+                :data="selectOption"
+                style="width: 100%"
+                size="mini"
+                v-model="form.sys_workreportpresetids"
+                border>
+                <el-table-column
+                  prop="title"
+                  label="标题">
+                </el-table-column>
+                <el-table-column
+                  prop="sequence"
+                  label="排序">
+                  <template slot-scope="scope">
+                    <el-input type="text" size="mini" v-model="scope.row.sequence"></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="操作">
+                  <template slot-scope="scope">
+                    <el-button type="text" size="mini" @click="delOption(scope.row)">删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              </el-form-item>
+            </div>
+            <div class="report-people">
+              <div class="report-people_header">
+                <div class="normal-title" style="font-size:14px">汇报对象</div>
+              </div>
+              <div class="select-item">
+                <p style="font-size:14px;margin-bottom:10px">组织内指定人员</p>
+                <selectTeam ref="team" @teamChange="teamChange">
+                  <el-form-item label-width="20px" prop="reporttohrids">
+                    <el-tag
+                      v-model="form.reporttohrids"
+                      style="margin-bottom:10px"
+                      :key="tag.hrid"
+                      v-for="tag in selectReport"
+                      closable
+                      :disable-transitions="false"
+                      @close="handleClose(tag)">
+                      {{tag.name}}
+                    </el-tag>
+                    <el-button class="button-new-tag" size="small" @click="$refs.team.dialogFormVisible=true;$refs.team.getOrderList()">+ 添 加</el-button>
+                  </el-form-item>
+                </selectTeam>
+              </div>
+              <div class="select-item">
+                <p style="font-size:14px;margin-bottom:10px">组织内指定上级</p>
+                <el-form-item label-width="20px" prop="reporttohrids">
+                  <el-select v-model="form.reporttodeps" multiple size="small" placeholder="请选择上级" style="width: 100%">
+                    <el-option
+                        v-for="item in deps"
+                        :key="item.rowindex"
+                        :label="item.value"
+                        :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+            </div> 
+          </el-form>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialog = false" 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 selectTeam from './teamSelect'
+import addPeople from './addPeople'
+import addOption from './addOption'
+export default {
+  name: "add",
+  props:[],
+  components:{selectTeam,addPeople,addOption},
+  data(){
+    return {
+      dialog:false,
+      peopleList:[],
+      deps:[],
+      form: {
+        "sys_workreportmodelid": 0,
+        "reportname": "",
+        "isused": 1,
+        "sys_workreportpresetids": [
+        ],
+        "hrids": [
+        ],
+        "reporttodeps": [
+        ],
+        "reporttohrids": [
+        ],
+      },
+      rules:{
+        reportname:[
+          { required: true, message: '请填写模板名称', trigger: 'blur'},
+        ],
+        sys_workreportpresetids:[
+          { required: true, message: '请选择项', trigger: 'change'}
+        ],
+        hrids:[
+          { required: true, message: '请选择汇报人员', trigger: 'change'}
+        ],
+        reporttodeps:[
+          { required: true, message: '请选择上级部门', trigger: 'change'}
+        ]
+      },
+      selectPeople:[],
+      selectReport:[],
+      selectOption:[]
+    }
+  },
+  watch: {
+    dialog (val) {
+      if(!val) this.refresh()
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialog = true
+    },
+    async getpeopleList () {
+      let res = await this.$api.requested({
+        "id": "20230520160402",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.modelList = res.data
+      console.log(this.modelList);
+    },
+    async getDepList () {
+      const res = await this.$store.dispatch('optiontypeselect','appointedsuperior')
+      this.deps = res.data
+      console.log(this.deps);
+    },
+    selectPeopleFun (data) {
+      let result = data
+      console.log(result);
+      result = result.filter(item => {
+        let is = this.selectPeople.every(item2 => {
+          return item.hrid != item2.hrid
+        })
+        if (is) return item
+      })
+      this.selectPeople.push(...result)
+    },
+    selectOptionFun (data) {
+      console.log(data);
+      data.forEach(item => {
+        item.sequence = item.rowindex
+      })
+      this.selectOption = data
+    },
+    delSelecrPeople (data) {
+      console.log(data);
+      this.selectPeople.splice(this.selectPeople.findIndex(item => item.hrid == data.hrid),1)
+    },
+    delOption () {
+      this.selectOption.splice(this.selectOption.findIndex(item => item.sys_workreportpresetid == data.sys_workreportpresetid),1)
+    },
+    onSubmit(){
+      this.form.sys_workreportpresetids = this.selectOption.map((item) => {
+        return {id:item.sys_workreportpresetid,sequence:item.sequence}
+      })
+      this.form.hrids = this.selectPeople.map(item => item.hrid)
+      this.form.reporttohrids = this.selectReport.map(item => item.hrid)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20230520142002",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.refresh()
+          this.dialog = false
+        })
+      })
+    },
+    teamChange (data) {
+      let result = data.map(item => {
+        return {
+          name:item.name,
+          hrid:item.hrid
+        }
+      })
+      result = result.filter(item => {
+        let is = this.selectReport.every(item2 => {
+          return item.hrid != item2.hrid
+        })
+        if (is) return item
+      })
+      this.selectReport.push(...result)
+      this.$refs.team.dialogFormVisible = false
+    },
+    handleClose(tag) {
+      this.selectReport.splice(this.selectReport.indexOf(tag), 1);
+    },
+    refresh () {
+      this.selectPeople = []
+      this.selectReport = []
+      this.selectOption = []
+      this.form = {
+        "sys_workreportmodelid": 0,
+        "reportname": "",
+        "isused": 1,
+        "sys_workreportpresetids": [
+        ],
+        "hrids": [
+        ],
+        "reporttodeps": [
+        ],
+        "reporttohrids": [
+        ],
+      }
+    }
+  },
+  created () {
+    this.getDepList()
+  }
+}
+</script>
+
+<style scoped>
+.report-people {
+  margin-bottom: 30px;
+}
+.report-people .report-people_header {
+  display: flex;
+  margin-bottom: 20px;
+}
+.report-people .select-item {
+  margin-bottom: 20px;
+}
+.dialog-footer {
+  margin-top: 0;
+}
+.normal-title::before {
+  content: '*';
+  color: #f56c6c;
+  margin-right: 4px;
+}
+.el-select,.el-input,.el-cascader {
+  width: 100% !important;
+}
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+</style>

+ 83 - 0
src/HDrpManagement/workReport/modules/reportSet/components/addOption.vue

@@ -0,0 +1,83 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="editBtn">添 加</el-button>
+    <el-drawer title="添加人员" append-to-body :show-close="false" :visible.sync="dialog" size="1000px">
+      <div slot="title" style="font-size: 15px">
+        添加预设
+      </div>
+      <div class="drawer__panel">
+        <selectTable @selectChange="selectChange" v-if="dialog" idName="sys_workreportpresetid" ref="table" v-model="result" :layout="tablecols" :data="list" :custom="true" @upDateData="upDateData">
+           <template v-slot:customcol="scope">
+              <div v-if="scope.column.columnname == 'sequence'">
+                <el-input v-model="scope.column.data.rowindex" type="text" size="mini"></el-input>
+              </div>
+              <div v-else>{{scope.column.data[scope.column.columnname]}}</div>
+            </template>
+        </selectTable>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialog = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" :disabled="selectOption.length <= 0" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+    
+  </div>
+</template>
+
+<script>
+import selectTable from '@/components/selectTable/index'
+export default {
+  name: "add",
+  props:['data'],
+  components:{selectTable},
+  data(){
+    return {
+      dialog:false,
+      list:[],
+      tablecols:[],
+      result:[],
+      selectOption:[],
+      params: {
+        "id": "20230522142702",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      }
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialog = true
+      this.listData()
+    },
+    async listData () {
+      this.params.content.sys_workreportmodelid = this.data ? this.data.sys_workreportmodelid : 0
+      let res = await this.$api.requested(this.params)
+      this.list = res.data
+      console.log(this.list);
+    },
+    onSubmit(){
+      this.$emit('selectOption',this.selectOption)
+      this.dialog = false
+    },
+    selectChange (data) {
+      this.selectOption = data
+    },
+    upDateData (data) {
+      this.selectOption = data
+    },
+ 
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name).optionTable.tablecols.splice(0,2)
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 131 - 0
src/HDrpManagement/workReport/modules/reportSet/components/addPeople.vue

@@ -0,0 +1,131 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="addBtn">添 加</el-button>
+    <el-drawer title="添加人员" append-to-body :show-close="false" :visible.sync="dialog" size="1000px">
+      <div slot="title" style="font-size: 15px">
+        添加人员
+      </div>
+      <div class="drawer__panel">
+        <el-input 
+          class="inline-16"
+          style="margin-bottom:10px;width:200px" 
+          size="small"  
+          suffix-icon="el-icon-search" 
+          placeholder="搜索" 
+          v-model="params.content.where.condition"
+          @keyup.enter.native="params.content.pageNumber=1;listData()" 
+          @clear="params.content.pageNumber=1;listData()" clearable></el-input>
+        <el-button class="inline-16" type="primary" size="mini" @click="allData">一键全选</el-button>
+        <selectTable @selectChange="selectChange" v-if="dialog" idName="hrid" ref="table" v-model="result" :layout="tablecols" :data="list" :custom="true" @upDateData="upDateData">
+           <template v-slot:customcol="scope">
+              <div>{{scope.column.data[scope.column.columnname]}}</div>
+            </template>
+        </selectTable>
+        <div style="margin-top:16px;text-align:right">
+          <el-pagination
+            background
+            small
+            @current-change="handleCurrentChange"
+            :current-page="params.content.pageNumber"
+            :page-size="params.content.pageSize"
+            layout="total, prev, pager, next, jumper"
+            :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialog = false" 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 selectTable from '@/components/selectTable/index'
+export default {
+  name: "add",
+  props:['data'],
+  components:{selectTable},
+  data(){
+    return {
+      dialog:false,
+      list:[],
+      tablecols:[],
+      result:[],
+      params: {
+        "id": "20230522101302",
+        "content": {
+            "sys_workreportmodelid": '',
+            "type": 1, //汇报人员,汇报对象
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      },
+      total:0,
+    }
+  },
+  methods:{
+    addBtn () {
+      this.dialog = true
+      this.listData()
+    },
+    async listData () {
+      this.params.content.sys_workreportmodelid = this.data ? this.data.sys_workreportmodelid : 0
+      let res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+      console.log(this.list);
+    },
+    onSubmit(){
+      this.$emit('selectPeople',this.selectPeople)
+      this.dialog = false
+    },
+    async allData () {
+      let res = await this.$api.requested({
+        "id": "20230522101302",
+        "content": {
+            "sys_workreportmodelid": this.data ? this.data.sys_workreportmodelid : 0,
+            "type": 1, //汇报人员,汇报对象
+            "pageNumber": 1,
+            "pageSize": 999999999,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.$confirm(`总共有${res.total}位员工,是否选中`,'提示',{
+        confirmButtonText:'确定',
+        cancelButtonText:'取消',
+        type:'warning'
+      }).then(() => {
+        if (res.data.length) this.$emit('selectPeople',res.data)
+        this.dialog = false
+      })
+    },
+    selectChange (data) {
+      this.selectPeople = data
+    },
+    upDateData (data) {
+      this.selectPeople = data
+    },
+    handleCurrentChange (val) {
+      this.params.content.pageNumber = val
+      this.listData()
+    }
+ 
+  },
+  created () {
+    this.listData()
+    this.tablecols = this.tool.tabelCol(this.$route.name).reportPeopleTable.tablecols.splice(0,3)
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 432 - 0
src/HDrpManagement/workReport/modules/reportSet/components/edit.vue

@@ -0,0 +1,432 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="editBtn">编 辑</el-button>
+    <el-drawer title="汇报设置" append-to-body :show-close="false" :visible.sync="dialog" size="1100px">
+      <div slot="title" style="font-size: 15px">
+        汇报设置
+      </div>
+      <div class="drawer__panel">
+          <el-form :model="form" :rules="rules" ref="form" label-width="140px" label-position="left" size="mini">
+            <div class="report-people" style="margin-bottom:0">
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="模板名称:" prop="reportname">
+                    <el-input type="text" size="small" placeholder="请输入模板名称" v-model="form.reportname"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="是否启用:" prop="isused">
+                    <el-checkbox v-model="form.isused" :false-label="0" :true-label="1"></el-checkbox>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
+            <div class="report-people">
+              <div class="report-people_header">
+                <div class="normal-title" style="font-size:14px;margin-right:10px">汇报人员</div>
+                <addPeople :data="data" @selectPeople="selectPeopleFun" v-model="form.hrids"></addPeople>
+              </div>
+              <el-form-item label-width="20px" prop="hrids">
+              <el-table
+                ref="table"
+                :data="selectPeople"
+                style="width: 100%"
+                size="mini"
+                v-model="form.hrids"
+                height="400px"
+                border>
+                <el-table-column
+                  prop="hrcode"
+                  label="编号">
+                </el-table-column>
+                <el-table-column
+                  prop="name"
+                  label="姓名">
+                </el-table-column>
+                <el-table-column
+                  prop="depname"
+                  label="部门">
+                </el-table-column>
+                <el-table-column
+                  prop="position"
+                  label="职位">
+                </el-table-column>
+                <el-table-column
+                  label="操作">
+                  <template slot-scope="scope">
+                    <el-button type="text" size="mini" @click="delSelecrPeople(scope.row)">删 除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <div style="margin-top:16px;text-align:right">
+                <el-pagination
+                  background
+                  small
+                  @current-change="peopleCurrentChange"
+                  :current-page="selectPeopleParam.content.pageNumber"
+                  :page-size="selectPeopleParam.content.pageSize"
+                  layout="total, prev, pager, next, jumper"
+                  :total="peopleTotal">
+                </el-pagination>
+              </div>
+              </el-form-item>
+            </div>
+            <div class="report-people">
+              <div class="report-people_header">
+                <div class="normal-title" style="font-size:14px;margin-right:10px">汇报内容预设</div>
+                <addOption :data="data" @selectOption="selectOptionFun" v-model="form.sys_workreportpresetids"></addOption>
+              </div>
+              <el-form-item label-width="20px" prop="sys_workreportpresetids">
+              <el-table
+                ref="table"
+                :data="selectOption"
+                style="width: 100%"
+                size="mini"
+                v-model="form.sys_workreportpresetids"
+                border>
+                <el-table-column
+                  prop="title"
+                  label="标题">
+                </el-table-column>
+                <el-table-column
+                  prop="sequence"
+                  label="排序">
+                  <template slot-scope="scope">
+                    <el-input type="text" size="mini" v-model="scope.row.sequence"></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="操作">
+                  <template slot-scope="scope">
+                    <el-button type="text" size="mini" @click="delOption(scope.row)">删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              </el-form-item>
+            </div>
+            <div class="report-people">
+              <div class="report-people_header">
+                <div class="normal-title" style="font-size:14px">汇报对象</div>
+              </div>
+              <div class="select-item">
+                <p style="font-size:14px;margin-bottom:10px">组织内指定人员</p>
+                <selectTeam :data="data" ref="team" @teamChange="teamChange">
+                  <el-form-item label-width="20px" prop="reporttohrids">
+                    <el-tag
+                      v-model="form.reporttohrids"
+                      style="margin-bottom:10px"
+                      :key="tag.hrid"
+                      v-for="tag in selectReport"
+                      closable
+                      :disable-transitions="false"
+                      @close="handleClose(tag)">
+                      {{tag.name}}
+                    </el-tag>
+                    <el-button class="button-new-tag" size="small" @click="$refs.team.dialogFormVisible=true;$refs.team.getOrderList()">+ 添 加</el-button>
+                  </el-form-item>
+                </selectTeam>
+              </div>
+              <div class="select-item">
+                <p style="font-size:14px;margin-bottom:10px">组织内指定上级</p>
+                <el-form-item label-width="20px" prop="reporttohrids">
+                  <el-select v-model="form.reporttodeps" multiple size="small" placeholder="请选择上级" style="width: 100%">
+                    <el-option
+                        v-for="item in deps"
+                        :key="item.rowindex"
+                        :label="item.value"
+                        :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+            </div> 
+          </el-form>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialog = false" 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 selectTeam from './teamSelect'
+import addPeople from './addPeople'
+import addOption from './addOption'
+export default {
+  name: "add",
+  props:['data'],
+  components:{selectTeam,addPeople,addOption},
+  data(){
+    return {
+      dialog:false,
+      peopleList:[],
+      deps:[],
+      detail:{},
+      form: {
+        "sys_workreportmodelid": 0,
+        "reportname": "",
+        "isused": 1,
+        "sys_workreportpresetids": [
+        ],
+        "hrids": [
+        ],
+        "reporttodeps": [
+        ],
+        "reporttohrids": [
+        ],
+      },
+      rules:{
+        reportname:[
+          { required: true, message: '请填写模板名称', trigger: 'blur'},
+        ],
+        sys_workreportpresetids:[
+          { required: true, message: '请选择项', trigger: 'change'}
+        ],
+        hrids:[
+          { required: true, message: '请选择汇报人员', trigger: 'change'}
+        ],
+        reporttodeps:[
+          { required: true, message: '请选择上级部门', trigger: 'change'}
+        ]
+      },
+      selectPeople:[],
+      selectReport:[],
+      selectOption:[],
+      selectPeopleParam: {
+        "id": "20230522140702",
+        "content": {
+            "sys_workreportmodelid": '',
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      },
+      selectOptionParam: {
+        "id": "20230522144902",
+        "content": {
+            "sys_workreportmodelid": '',
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      },
+      peopleTotal:0
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialog = true
+      this.getDetail(true)
+      this.getDepList()
+      this.getSelectPeople()
+      this.getselectOption()
+    },
+    async getDetail (init) {
+      let res = await this.$api.requested({
+        "id": "20230520160202",
+        "content": {
+            "sys_workreportmodelid": this.data.sys_workreportmodelid
+        },
+      })
+      if (init) {
+        this.form = Object.assign({},this.form,res.data)
+        this.selectReport = this.form.reportuser
+      } else {
+        this.selectReport = res.data.reportuser
+      }
+      console.log(this.form);
+    },
+    async getpeopleList () {
+      let res = await this.$api.requested({
+        "id": "20230520160402",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.modelList = res.data
+      console.log(this.modelList);
+    },
+    async getDepList () {
+      const res = await this.$store.dispatch('optiontypeselect','appointedsuperior')
+      this.deps = res.data
+      console.log(this.deps);
+    },
+    async getSelectPeople () {
+      this.selectPeopleParam.content.sys_workreportmodelid = this.data.sys_workreportmodelid
+      let res = await this.$api.requested(this.selectPeopleParam)
+      this.selectPeople = res.data
+      this.peopleTotal = res.total
+      console.log(this.selectPeople);
+    },
+    async getselectOption () {
+      this.selectOptionParam.content.sys_workreportmodelid = this.data.sys_workreportmodelid
+      let res = await this.$api.requested(this.selectOptionParam)
+      this.selectOption = res.data
+      console.log(this.selectOption);
+    },
+    async selectPeopleFun (data) {
+      let id = data.map(item => item.hrid)
+      let res = await this.$api.requested({
+        "id": "20230522101402",
+        "content": {
+            "sys_workreportmodelid": this.data.sys_workreportmodelid,
+            "type": 1, //汇报人员,汇报对象
+            "hrids": id
+        },
+      })
+      this.tool.showMessage(res,() => {
+        this.getSelectPeople()
+      })
+    },
+    async selectOptionFun (data) {
+      let id = data.map(item => {
+        return {
+          id:item.sys_workreportpresetid,
+          sequence:item.rowindex
+        }
+      })
+      let res = await this.$api.requested({
+        "id": "20230522143302",
+        "content": {
+            "sys_workreportmodelid": this.data.sys_workreportmodelid,
+            "sys_workreportpresetids": id
+        },
+      })
+      this.tool.showMessage(res,() => {
+        this.getselectOption()
+      })
+    },
+    async delSelecrPeople (data) {
+      let res = await this.$api.requested({
+          "id": "20230522101502",
+          "content": {
+              "sys_workreportmodelid": this.data.sys_workreportmodelid,
+              "type": 1, //汇报人员,汇报对象
+              "hrids": [data.hrid]
+          },
+      })
+      this.tool.showMessage(res,() => {
+        this.selectPeople.splice(this.selectPeople.findIndex(item => item.hrid == data.hrid),1)
+      })
+    },
+    async delOption (data) {
+      let res = await this.$api.requested({
+          "id": "20230522143402",
+          "content": {
+              "sys_workreportmodelid": this.data.sys_workreportmodelid,
+              "sys_workreportpresetids": [data.sys_workreportpresetid]
+          },
+      })
+      this.tool.showMessage(res,() => {
+        this.selectOption.splice(this.selectOption.findIndex(item => item.sys_workreportpresetid == data.sys_workreportpresetid),1)
+      })
+    },
+    onSubmit(){
+      this.form.sys_workreportpresetids = this.selectOption.map((item) => {
+        return {id:item.sys_workreportpresetid,sequence:item.sequence}
+      })
+      this.form.hrids = this.selectPeople.map(item => item.hrid)
+      this.form.reporttohrids = this.selectReport.map(item => item.hrid)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20230520142002",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialog = false
+        })
+      })
+    },
+    async teamChange (data) {
+      console.log(data);
+      let result = data.map(item => item.hrid)
+      let res = await this.$api.requested({
+          "id": "20230522101402",
+          "content": {
+              "sys_workreportmodelid": this.data.sys_workreportmodelid,
+              "type": 2, //汇报人员,汇报对象
+              "hrids": result
+          },
+      }) 
+      this.tool.showMessage(res,() => {
+        this.getDetail()
+        this.$refs.team.dialogFormVisible = false
+      })
+    },
+    async handleClose(tag) {
+      let res = await this.$api.requested({
+          "id": "20230522101502",
+          "content": {
+              "sys_workreportmodelid": this.data.sys_workreportmodelid,
+              "type": 2, //汇报人员,汇报对象
+              "hrids": [tag.hrid]
+          },
+      })
+      this.tool.showMessage(res,() => {
+        this.selectReport.splice(this.selectReport.indexOf(tag), 1);
+      })
+    },
+    peopleCurrentChange (val) {
+      this.selectPeopleParam.content.pageNumber = val
+      this.getSelectPeople()
+    }
+  },
+  created () {
+    
+  }
+}
+</script>
+
+<style scoped>
+.report-people {
+  margin-bottom: 30px;
+}
+.report-people .report-people_header {
+  display: flex;
+  margin-bottom: 20px;
+}
+.report-people .select-item {
+  margin-bottom: 20px;
+}
+.dialog-footer {
+  margin-top: 0;
+}
+.normal-title::before {
+  content: '*';
+  color: #f56c6c;
+  margin-right: 4px;
+}
+.el-select,.el-input,.el-cascader {
+  width: 100% !important;
+}
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+</style>

+ 104 - 0
src/HDrpManagement/workReport/modules/reportSet/components/teamSelect.vue

@@ -0,0 +1,104 @@
+<template>
+  <div>
+    <slot></slot>
+    <el-drawer append-to-body :show-close="false" :visible.sync="dialogFormVisible" size="1000px">
+      <div slot="title" style="font-size: 15px">
+        选择汇报对象
+      </div>
+      <div class="drawer__panel">
+        <el-input style="width:250px;margin-bottom:10px" size="small" placeholder="请输入搜索内容" clearable @clear="getOrderList(params.content.pageNumber=1)" v-model="params.content.where.condition" @keyup.enter.native="getOrderList(params.content.pageNumber=1)"></el-input>
+        <selectTable @selectChange="selectChange" v-if="dialogFormVisible" idName="hrid" ref="table" v-model="result" :layout="tablecols" :data="teamList" :custom="true" height="500px"  @upDateData="upDateData">
+           <template v-slot:customcol="scope">
+              <div>{{scope.column.data[scope.column.columnname]}}</div>
+            </template>
+        </selectTable>
+        <div class="container normal-panel" style="text-align:right">
+          <el-pagination
+              style="text-align:right"
+              background
+              small
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="params.content.pageNumber"
+              :page-size="params.content.pageSize"
+              layout="total, prev, pager, next, jumper"
+              :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" :disabled="selectArr.length <=0" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import selectTable from '@/components/selectTable/index'
+export default {
+  props:['data'],
+  components:{selectTable},
+  data(){
+    return {
+      dialogFormVisible:false,
+      tablecols:[],
+      teamList:[],
+      total:0,
+      params: {
+        "id": "20230522101302",
+        "content": {
+            "sys_workreportmodelid": '',
+            "type": 2, //汇报人员,汇报对象
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        },
+      },
+      result:'',
+      selectArr:[]
+    }
+  },
+  methods:{
+    onSubmit () {
+      if(this.selectArr.length <= 0) return
+      this.$emit('teamChange',this.selectArr)
+    },
+    async getOrderList () {
+      this.params.content.sys_workreportmodelid = this.data ? this.data.sys_workreportmodelid : 0
+      let res = await this.$api.requested(this.params)
+      console.log(res.data);
+      
+      this.teamList = res.data
+      this.total = res.total
+      console.log(res);
+    },
+    selectChange (data) {
+      this.selectArr = data
+      console.log(this.selectArr);
+    },
+    upDateData (data) {
+      this.selectArr = data
+      console.log(data);
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.getOrderList()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.getOrderList()
+    },
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name).reportPeopleTable.tablecols.splice(0,3)
+  }
+}
+</script>
+
+<style scoped>
+</style>

+ 82 - 0
src/HDrpManagement/workReport/modules/reportSet/index.vue

@@ -0,0 +1,82 @@
+<template>
+  <div>
+    <el-button size="mini" type="success" @click="editBtn">汇报设置</el-button>
+    <el-drawer title="汇报设置" append-to-body :show-close="false" :visible.sync="dialog" size="1200px">
+      <div slot="title" style="font-size: 15px">
+        汇报模板
+      </div>
+      <div class="drawer__panel" style="padding-top:10px">
+        <Add @onSuccess="getModelList()" style="padding-bottom:10px"></Add>
+        <el-table
+          ref="table"
+          :data="modelList"
+          style="width: 100%"
+          size="mini"
+          border>
+          <el-table-column
+            prop="reportname"
+            label="模板名称">
+          </el-table-column>
+          <el-table-column
+            prop="isused"
+            label="状态">
+            <template slot-scope="scope">
+              {{ scope.row.isused ? '启用' : '关闭' }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope">
+              <Edit :data="scope.row"></Edit>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </el-drawer>
+    
+  </div>
+</template>
+
+<script>
+import Add from './components/add'
+import Edit from './components/edit'
+export default {
+  name: "add",
+  props:[],
+  components:{Add,Edit},
+  data(){
+    return {
+      dialog:false,
+      modelList:[]
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialog = true
+    },
+    async getModelList () {
+      let res = await this.$api.requested({
+        "id": "20230520160402",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "nocache":true,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.modelList = res.data
+      console.log(this.modelList);
+    },
+  },
+  created () {
+    this.getModelList()
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 2 - 5
src/HManagement/department/index.vue

@@ -40,10 +40,7 @@
         :autoQuery="false"
         :options="options">
         <div slot="custom-right">
-          <el-select @change="selectChange" size="small" v-model="selectResult">
-            <el-option label="全部" value="1"></el-option>
-            <el-option label="当前部门" value="0"></el-option>
-          </el-select>
+          <el-checkbox v-model="selectResult" :false-label="1" :true-label="0" @change="selectChange">当前部门</el-checkbox>
         </div>
         <template v-slot:tbList="scope">
           <div>
@@ -83,7 +80,7 @@ export default {
     return {
       options:[],
       areaInfo:{},
-      selectResult:'全部'
+      selectResult:1
     }
   },
   methods:{

+ 2 - 5
src/SDrpManagement/ProductGroup/index.vue

@@ -112,12 +112,9 @@ export default {
 
       this.$refs.class.queryBrands(() => {
         this.$refs.class.queryClass()
-        this.brandId = [this.$refs.class.brand_act]
-      })
-      this.$refs.class.queryAreaBase(() => {
-        this.$refs.class.queryAreaBase()
-        this.params.content.where.standards = [this.$refs.class.areaBase]
+        this.brandId = this.$refs.class.brand_act ? [this.$refs.class.brand_act] : []
       })
+      this.$refs.class.queryAreaBase(data.sys_enterpriseid)
       this.$refs.class.queryAgentiInfo(() => {
         this.params.content.where.tradefield = this.$refs.class.tradefield
         

+ 5 - 5
src/SDrpManagement/ProductGroup/modules/Select2.vue

@@ -3,15 +3,15 @@
     <div>
       <ul class="flex-align-center normal-margin-new" >
         <li  :class="areaBase === ''?'act':''" class="brand-item border-all" @click="clickAreaBase('')" >全部标准</li>
-        <li style="margin-left:0" :class="areaBase === item?'act':''" class="brand-item margin-notAll" v-for="item in areaBases" :key="item" @click="clickAreaBase(item)">{{item}}</li>
+        <li :class="areaBase === item?'act':''" class="brand-item margin-notAll" v-for="item in areaBases" :key="item" @click="clickAreaBase(item)">{{item}}</li>
       </ul>
       <ul class="flex-align-center normal-margin-new" >
         <li  :class="field_act === ''?'act':''" class="brand-item border-all" @click="clickField('')" >全部领域</li>
-        <li  :class="tradefield === item.tradefield?'act':''" class="brand-item" style="margin-left:0" v-for="item in fields" :key="item.sys_enterprise_tradefieldid" @click="clickField(item)">{{item.tradefield}}</li>
+        <li  :class="tradefield === item.tradefield?'act':''" class="brand-item margin-notAll" v-for="item in fields" :key="item.sys_enterprise_tradefieldid" @click="clickField(item)">{{item.tradefield}}</li>
       </ul>
       <ul class="flex-align-center normal-margin-new">
         <li :class="!brand_act?'act':''" class="brand-item border-all" @click="clickBrand('')">全部品牌</li>
-        <li  :class="brand_act == item.sa_brandid?'act':''" class="brand-item " style="margin-left:0" v-for="item in brands" :key="item.sa_brandid" @click="clickBrand(item.sa_brandid)">{{item.brandname}}</li>
+        <li  :class="brand_act == item.sa_brandid?'act':''" class="brand-item margin-notAll" v-for="item in brands" :key="item.sa_brandid" @click="clickBrand(item.sa_brandid)">{{item.brandname}}</li>
       </ul>
       <ul class="flex-align-center normal-margin-new">
         <li  :class="class_act === ''?'act':''" class="brand-item border-all" @click="clickClass('')">全部分类</li>
@@ -57,11 +57,11 @@ export default {
   },
   methods:{
     /* 授权标准 */
-    async queryAreaBase () {
+    async queryAreaBase (id) {
       const res1 = await this.$api.requested({
         "id": "20230519141202",
         "content": {
-            "sys_enterpriseid": '', //不传查询当前账号授权的标准
+            "sys_enterpriseid": id ? id : '', //不传查询当前账号授权的标准
         },
       })
       if (res1.data.length) {

+ 23 - 1
src/router/HDrpManagement.js

@@ -986,7 +986,29 @@ const HDrpManagement = [
         component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/cashcouponPay/modules/detail'),
       }
     ]
-  }
+  },
+  {
+    path: '/workreport',
+    name: 'workreport',
+    meta: {
+      title: '工作汇报',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/workReport/index'),
+    children: [
+      {
+        path: '/workreportDetail',
+        name: 'workreport',
+        meta: {
+          title: '工作汇报详情',
+          ast_nav: true,
+          keeproute: true,
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/workReport/modules/detail'),
+      }
+    ]
+  },
   
 ];
 export default HDrpManagement;

+ 1 - 1
src/template/multiplePeople/index.vue

@@ -8,7 +8,7 @@
       width="60%">
       <div class="flex-align-center flex-between " style="margin-top:-10px;margin-bottom: 10px">
         <div class="flex-align-center">
-          <el-input size="small"  suffix-icon="el-icon-search" v-model="param.content.where.condition" placeholder="产品名称,编号" @keyup.enter.native="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" clearable></el-input>&nbsp;
+          <el-input size="small"  suffix-icon="el-icon-search" v-model="param.content.where.condition" placeholder="人员名称" @keyup.enter.native="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" clearable></el-input>&nbsp;
         </div>
         <el-button type="primary" size="mini" @click="onSbmit" :disabled="selectRowId.length == 0">批量添加</el-button>
       </div>