Răsfoiți Sursa

选择审核人组件

shihang 6 ani în urmă
părinte
comite
e3bbd31fd0

+ 12 - 6
src/dashoo.cn/backend/api/controllers/casbin/organize.go

@@ -1,10 +1,11 @@
 package casbin
 
 import (
+	"encoding/json"
+	//"fmt"
+
 	"dashoo.cn/backend/api/business/oilsupplier/technologyservice"
 	"dashoo.cn/business2/userRole"
-	"encoding/json"
-	//	"fmt"
 
 	"strings"
 
@@ -370,13 +371,18 @@ func (this *OrganizesController) OrganizeParentList() {
 // @Success 200 {object} business.device.DeviceChannels
 // @router /listbydeptid [get]
 func (this *OrganizesController) ListByDeptId() {
-	svc := organize.GetOrganizeService(utils.DBE)
-
+	ParentId := this.GetString("ParentId")
 	var user userRole.Base_User
+	svc := organize.GetOrganizeService(utils.DBE)
 	svc.GetEntityById(this.User.Id, &user)
 	companyids := strings.Split(user.Superior, ",")
 
-	ids := svc.GetAllChildById(companyids[len(companyids) -1])
+	ids := ""
+	if ParentId != "" {
+		ids = svc.GetAllChildById("100000180")
+	} else {
+		ids = svc.GetAllChildById(companyids[len(companyids)-1])
+	}
 	where := " Id in ( " + ids + " ) and AccCode='" + this.User.AccCode + "'"
 
 	list := make([]organize.Base_Organize, 0)
@@ -405,4 +411,4 @@ func (this *OrganizesController) OrgAllList() {
 	datainfo.Items = list
 	this.Data["json"] = &datainfo
 	this.ServeJSON()
-}
+}

+ 146 - 0
src/dashoo.cn/frontend_web/src/components/oilsupplier/chooseauditor.vue

@@ -0,0 +1,146 @@
+<template>
+  <div>
+    <el-dialog title="选择审核人员" :visible.sync="visible" top="5vh" width="800px">
+      <el-form label-width="110px" ref="EntityForm" :model="formData">
+        <el-row :gutter="10">
+          <el-col :span="12">
+            <el-card style="width: 100%;height: calc(100vh - 253px);overflow: auto">
+              <div slot="header" class="clearfix">
+                <span>请选择部门</span>
+              </div>
+              <el-tree :data="orgtreelist" :props="orgtreeprops" @node-click="handleNodeClick"></el-tree>
+            </el-card>
+          </el-col>
+
+          <el-col :span="12">
+            <el-card style="width: 100%;height: calc(100vh - 253px);overflow: auto">
+              <div slot="header" class="clearfix">
+                <span>
+                  请选择用户
+                </span>
+                <span style="float: right;">
+                  <el-button style="float: right;margin-top: -10px" type="text" @click="toggleSelection">确定</el-button>
+                </span>
+              </div>
+              <el-form :model="AuditorForm" label-width="90px" size="mini">
+                <el-row>
+                  <el-col :span="24">
+                    <el-select v-model="AuditorForm.UserId" clearable style="width:100%" placeholder="请选择">
+                      <el-option v-for="item in userOptions" :label="item.realname" :value="item.id" :key="item.id">
+                      </el-option>
+                    </el-select>
+                  </el-col>
+                </el-row>
+              </el-form>
+            </el-card>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/system/auditsetting'
+  import ElCol from "../../../node_modules/element-ui/packages/col/src/col";
+  import ElIcon from "../../../node_modules/element-ui/packages/icon/src/icon";
+  export default {
+    components: {
+      ElIcon,
+      ElCol
+    },
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'chooseAuditor',
+    props: {
+      visible: {
+        type: Boolean,
+        default: false
+      }
+    },
+    watch: {
+      visible(val) {
+        this.selfVisible = val
+        if (this.visible) {
+          this.createoptions
+        }
+      },
+      selfVisible(val) {
+        this.$emit('update:visible', val)
+      }
+    },
+    data() {
+      return {
+        userOptions: [],
+        orgtreelist: [],
+        orgtreeprops: {
+          value: 'id',
+          label: 'Fullname',
+          children: 'children'
+        },
+        formData: {
+        },
+        AuditorForm: {
+          UserId: ''
+        },
+        selfVisible: this.visible, // 避免vue双向绑定警告
+        SupplierTypeCode: ''
+      }
+    },
+    created() {
+    },
+    methods: {
+      getorgtreelist(SupplierTypeCode) {
+        let _this = this
+        let params = {
+          IsInnerOrganize: 1,
+          ParentId: 100000180,
+        }
+        _this.$axios.get('organizes/listbydeptid', {
+            params
+          })
+          .then(res => {
+            _this.orgtreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'Parentid', 'Id,Fullname')
+            _this.SupplierTypeCode = SupplierTypeCode
+            if (SupplierTypeCode == '01') { //物资类
+              _this.handleNodeClick(_this.orgtreelist[0].children[11])
+            } else if (SupplierTypeCode == '02') { //基建类
+              _this.handleNodeClick(_this.orgtreelist[0].children[17])
+            } else {
+              _this.handleNodeClick(_this.orgtreelist[0].children[0])
+            }
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
+      handleNodeClick(data) {
+        this.userOptions = []
+        api.getAuditerByDept(data.id, this.$axios).then(res => {
+          if (res.data.code === 1) {
+            this.userOptions = res.data.item
+            if (res.data.item.length > 0) {
+              this.AuditorForm.UserId = res.data.item[0].id
+            }
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      toggleSelection() {
+         this.$emit('close', this.AuditorForm.UserId) 
+      },
+    }
+  }
+
+</script>
+
+<style lang="scss">
+
+</style>

+ 12 - 4
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplier/_opera/basisedit.vue

@@ -205,7 +205,7 @@
         </el-tab-pane>
       </el-tabs>
     </el-card>
-    <el-dialog title="选择审批单位" :visible.sync="dialogVisible" width="520px">
+    <!-- <el-dialog title="选择审批单位" :visible.sync="dialogVisible" width="520px">
       <el-form ref="searchForm" label-width="110px">
         <el-row>
           <el-col :span="24">
@@ -230,7 +230,9 @@
         <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
         <el-button size="mini" type="primary" @click="AuditEntity">确定</el-button>
       </span>
-    </el-dialog>
+    </el-dialog> -->
+
+    <choose-auditor ref="chooseAuditor" @close="AuditEntity" :visible.sync="dialogVisible"></choose-auditor>
   </div>
 </template>
 
@@ -252,6 +254,8 @@
   import SubfileList from '@/components/oilsupplier/subfilelist'
   import BasisInfo from '@/components/oilsupplier/basisinfo'
 
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
+
   export default {
 
     components: {
@@ -265,7 +269,9 @@
       WinningList, // 近三年获得省部级及以上主要技术、管理成果、获奖项目列表
       BusinessList, // 选择准入范围
       SubfileList, // 选择企业资质
-      BasisInfo
+      BasisInfo,
+
+      ChooseAuditor
     },
     computed: {
       ...mapGetters({
@@ -751,9 +757,11 @@
       },
 
       selectAuditOrg() {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
         this.dialogVisible = true
       },
-      AuditEntity() {
+      AuditEntity(val) {
+        this.auditer = val
         if (this.auditer === '') {
           this.$message({
             type: 'warning',

+ 12 - 4
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplier/_opera/goodsedit.vue

@@ -205,7 +205,7 @@
         </el-tab-pane>
       </el-tabs>
     </el-card>
-    <el-dialog title="选择审批单位" :visible.sync="dialogVisible" width="520px">
+    <!-- <el-dialog title="选择审批单位" :visible.sync="dialogVisible" width="520px">
       <el-form ref="searchForm" label-width="110px">
         <el-row>
           <el-col :span="24">
@@ -230,7 +230,9 @@
         <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
         <el-button size="mini" type="primary" @click="AuditEntity">确定</el-button>
       </span>
-    </el-dialog>
+    </el-dialog> -->
+
+    <choose-auditor ref="chooseAuditor" @close="AuditEntity" :visible.sync="dialogVisible"></choose-auditor>
   </div>
 </template>
 
@@ -252,6 +254,8 @@
   import SubfileList from '@/components/oilsupplier/subfilelist'
   import GoodsInfo from '@/components/oilsupplier/goodsinfo'
 
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
+
   export default {
 
     components: {
@@ -265,7 +269,9 @@
       WinningList, // 近三年获得省部级及以上主要技术、管理成果、获奖项目列表
       BusinessList, // 选择准入范围
       SubfileList, // 选择企业资质
-      GoodsInfo
+      GoodsInfo,
+
+      ChooseAuditor
     },
     computed: {
       ...mapGetters({
@@ -751,9 +757,11 @@
         })
       },
       selectAuditOrg() {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
         this.dialogVisible = true
       },
-      AuditEntity() {
+      AuditEntity(val) {
+        this.auditer = val
         if (this.auditer === '') {
           this.$message({
             type: 'warning',

+ 13 - 4
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplier/_opera/techedit.vue

@@ -203,7 +203,8 @@
         </el-tab-pane>
       </el-tabs>
     </el-card>
-    <el-dialog title="选择审批单位" :visible.sync="dialogVisible" width="520px">
+
+    <!-- <el-dialog title="选择审批单位" :visible.sync="dialogVisible" width="520px">
       <el-form ref="searchForm" label-width="110px">
         <el-row>
           <el-col :span="24">
@@ -228,7 +229,9 @@
         <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
         <el-button size="mini" type="primary" @click="AuditEntity">确定</el-button>
       </span>
-    </el-dialog>
+    </el-dialog> -->
+
+    <choose-auditor ref="chooseAuditor" @close="AuditEntity" :visible.sync="dialogVisible"></choose-auditor>
   </div>
 </template>
 
@@ -250,6 +253,8 @@
   import SubfileList from '@/components/oilsupplier/subfilelist'
   import TechInfo from '@/components/oilsupplier/techinfo'
 
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
+
   export default {
 
     components: {
@@ -263,7 +268,9 @@
       WinningList, // 近三年获得省部级及以上主要技术、管理成果、获奖项目列表
       BusinessList, // 选择准入范围
       SubfileList, // 选择企业资质
-      TechInfo
+      TechInfo,
+
+      ChooseAuditor
     },
     computed: {
       ...mapGetters({
@@ -749,9 +756,11 @@
         })
       },
       selectAuditOrg() {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
         this.dialogVisible = true
       },
-      AuditEntity() {
+      AuditEntity(val) {
+        this.auditer = val
         if (this.auditer === '') {
           this.$message({
             type: 'warning',