2
3
Преглед на файлове

注册界面审核人选择

ljm преди 6 години
родител
ревизия
1ba1e851d1

+ 14 - 6
src/dashoo.cn/backend/api/business/oilsupplier/suppliercert/oilsuppliercertService.go

@@ -1,13 +1,14 @@
 package suppliercert
 
 import (
+	"strconv"
+	"strings"
+
 	"dashoo.cn/backend/api/business/auditsetting"
 	"dashoo.cn/backend/api/business/oilsupplier/classorgsetting"
 	"dashoo.cn/backend/api/business/workflow"
 	"dashoo.cn/business2/userRole"
 	"dashoo.cn/utils"
-	"strconv"
-	"strings"
 
 	"dashoo.cn/backend/api/business/oilsupplier/suppliercertsub"
 	. "dashoo.cn/backend/api/mydb"
@@ -108,10 +109,10 @@ func (s *OilSupplierCertService) SubmitOrgAudit(certId, wfName, wfNodeCode, user
 	if status == "" {
 		ActiComplete.CallbackUrl = ""
 	} else {
-		ActiComplete.CallbackUrl =  utils.Cfg.MustValue("workflow", "callbackHost")+"/api/suppliercert/auditcallback?Id=" + strconv.Itoa(supplierCert.Id) + "&status=" + status + "&step=" + step
+		ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") + "/api/suppliercert/auditcallback?Id=" + strconv.Itoa(supplierCert.Id) + "&status=" + status + "&step=" + step
 	}
 	res = svcActiviti.MultiTaskComplete(ActiComplete)
-	return processInstanceId,res
+	return processInstanceId, res
 }
 
 //查询已经申请的准入记录
@@ -132,10 +133,17 @@ func (s *OilSupplierCertService) IsCanApplyByExtOrganizeUser(applyType, departme
 	return true
 }
 
-func (s *OilSupplierCertService) GetAuditUser(organizeId, auditstepcode string, entitiesPtr interface{}){
+func (s *OilSupplierCertService) GetAuditUser(organizeId, auditstepcode string, entitiesPtr interface{}) {
 	where := "( a.DepartmentId=" + organizeId + " OR a.CompanyId=" + organizeId + ") and AuditStepCode='" + auditstepcode + "'"
 	//where := "a.DepartmentId=" + organizeId + " and AuditStepCode='" + auditstepcode + "'"
 	sql := "SELECT a.UserId Id, a.UserName RealName FROM Base_OilAuditSetting o LEFT JOIN OilAuditUser a ON o.Id = a.SettingId where " + where
 	s.DBE.SQL(sql).Find(entitiesPtr)
 	return
-}
+}
+
+func (s *OilSupplierCertService) GetAuditUserByNoLogin(organizeId string, entitiesPtr interface{}) {
+	where := "( a.DepartmentId=" + organizeId + " OR a.CompanyId=" + organizeId + ")"
+	sql := "SELECT a.UserId Id, a.UserName RealName FROM Base_OilAuditSetting o LEFT JOIN OilAuditUser a ON o.Id = a.SettingId where " + where
+	s.DBE.SQL(sql).Find(entitiesPtr)
+	return
+}

+ 1 - 0
src/dashoo.cn/backend/api/business/register/oilcorporateinfo.go

@@ -50,6 +50,7 @@ type OilCorporateInfo struct {
 	Remark           string    `xorm:"comment('备注') VARCHAR(500)"`
 	CheckStatus      int       `xorm:"default 0 comment('二级单位审核状态,0:未通过,1:通过') INT(1)"`
 	CheckUserId      int       `xorm:"comment('审核人Id') INT(10)"`
+	CheckUserName    string    `xorm:"comment('审核人姓名') VARCHAR(50)"`
 	IsDelete         int       `xorm:"default 0 comment('删除状态,0正常,1已删除') INT(10)"`
 	UserName         string    `xorm:"comment('登录账号/用户名') VARCHAR(50)"`
 	UserRealName     string    `xorm:"comment('用户真实姓名') VARCHAR(50)"`

+ 2 - 0
src/dashoo.cn/backend/api/controllers/base.go

@@ -288,6 +288,8 @@ func (this *BaseController) Prepare() {
 		"/api/register/getsuppliername",
 		"/api/register/getdictlist",
 		"/api/rtx/call",
+		"/api/organizes/getorglist",
+		"/api/supplier/getauditerbydeptandnologin",
 	}
 	for _, v := range urls {
 		fmt.Println("**this.Ctx.Input.URL()**", this.Ctx.Input.URL())

+ 20 - 0
src/dashoo.cn/backend/api/controllers/casbin/organize.go

@@ -421,3 +421,23 @@ func (this *OrganizesController) OrgAllList() {
 	this.Data["json"] = &datainfo
 	this.ServeJSON()
 }
+
+// @Title 组织列表信息(不需要验证登录)
+// @Description 组织列表信息(不需要验证登录)
+// @Success 200 {object} organize.Base_Organize
+// @router /getorglist [get]
+func (this *OrganizesController) GetOrgList() {
+	svc := organize.GetOrganizeService(utils.DBE)
+
+	var user userRole.Base_User
+	svc.GetEntityById(this.User.Id, &user)
+	ids := svc.GetAllChildById("0")
+	where := " Id in ( " + ids + " ) and AccCode='s5OVE'"
+
+	list := make([]organize.Base_Organize, 0)
+	svc.GetEntities(&list, where)
+	var datainfo DataInfo
+	datainfo.Items = list
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}

+ 22 - 5
src/dashoo.cn/backend/api/controllers/oilsupplier/supplier.go

@@ -1290,16 +1290,16 @@ func (this *OilSupplierController) GetMyTaskEntityList() {
 	//找出待办任务
 	actisvc := workflow.GetActivitiService(utils.DBE)
 	var certIdList string
-	if actisvc.GetMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id) != ""{
+	if actisvc.GetMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id) != "" {
 		certIdList = actisvc.GetMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id)
 		certIdList = certIdList + ","
 	}
-	if actisvc.GetMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id) != ""{
-		certIdList = fmt.Sprintf("%s %s",certIdList,actisvc.GetMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id))
+	if actisvc.GetMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id) != "" {
+		certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id))
 		certIdList = certIdList + ","
 	}
-	if actisvc.GetMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id) != ""{
-		certIdList = fmt.Sprintf("%s %s",certIdList,actisvc.GetMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id))
+	if actisvc.GetMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id) != "" {
+		certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id))
 	}
 	certIdList = strings.Trim(certIdList, ",")
 	certIdarr := strings.Split(certIdList, ",")
@@ -1850,3 +1850,20 @@ func (this *OilSupplierController) GetAuditerByDept() {
 	this.Data["json"] = &datainfo
 	this.ServeJSON()
 }
+
+// @Title 获取二级初审人员(不需要验证登录)
+// @Description 获取二级初审人员(不需要验证登录)
+// @router /getauditerbydeptandnologin [get]
+func (this *OilSupplierController) GetAuditerByDeptAndNoLogin() {
+	Id := this.GetString("deptId")
+	//	auditstepcode := this.GetString("auditstepcode")
+
+	certSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	var users []userRole.Base_RoleList
+	//	certSrv.GetAuditUser(Id, auditstepcode, &users)
+	certSrv.GetAuditUserByNoLogin(Id, &users)
+	var datainfo ErrorDataInfo
+	datainfo.Item = users
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}

+ 1 - 4
src/dashoo.cn/backend/api/controllers/register/oilcorporateinfo.go

@@ -2,7 +2,6 @@ package register
 
 import (
 	"encoding/json"
-	"fmt"
 	"strconv"
 	"time"
 
@@ -112,7 +111,7 @@ func (this *OilCorporateInfoController) AddEntity() {
 	json.Unmarshal(jsonBlob, &model)
 
 	model.CreateOn = time.Now()
-	model.CheckUserId = 284
+	//	model.CheckUserId = 284
 
 	svc := register.GetOilCorporateInfoService(utils.DBE)
 	_, err2 := svc.InsertEntityBytbl("OilCorporateInfo", &model)
@@ -169,8 +168,6 @@ func (this *OilCorporateInfoController) AddUser() {
 	var jsonBlob = this.Ctx.Input.RequestBody
 	json.Unmarshal(jsonBlob, &model)
 
-	fmt.Println("***model:", model)
-
 	//注册用户Base_User
 	var userentity userRole.Base_User
 	userentity.Username = model.UserName

+ 7 - 0
src/dashoo.cn/frontend_web/src/api/oilsupplier/supplier.js

@@ -103,6 +103,13 @@ export default {
       method: 'GET'
     })
   },
+  getAuditerByDeptAndNoLogin (params, myAxios) {
+    return myAxios({
+      url: '/supplier/getauditerbydeptandnologin',
+      method: 'GET',
+      params: params
+    })
+  },
   getTodoList (params, myAxios) {
     return myAxios({
       url: '/todolist/gettodolist/',

+ 141 - 0
src/dashoo.cn/frontend_web/src/components/oilsupplier/chooseauditor2.vue

@@ -0,0 +1,141 @@
+<template>
+  <div>
+    <el-dialog title="选择审核人员" :visible="visible" @close="hideChooseAuditer" 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">
+              <el-table :data="userOptions" style="width: 100%" ref="multipleTable"
+                        @selection-change="handleSelectionChange">
+                <el-table-column type="selection" width="55"></el-table-column>
+                <el-table-column prop="realname" label="可选用户">
+                  <template slot="header" slot-scope="scope">
+                    <el-button type="primary" style="float: right;" size="small" @click="toggleSelection">
+                      选择审核人 <el-icon class="el-icon-d-arrow-right"></el-icon>
+                    </el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-card>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/system/auditsetting'
+  import supapi from '@/api/oilsupplier/supplier'
+  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
+      }
+    },
+    data() {
+      return {
+        userOptions: [],
+        selectedOptions: {},
+        orgtreelist: [],
+        orgtreeprops: {
+          value: 'id',
+          label: 'Fullname',
+          children: 'children'
+        },
+        formData: {},
+        AuditorForm: {
+          UserId: ''
+        },
+        selfVisible: this.visible, // 避免vue双向绑定警告
+      }
+    },
+    created() {},
+    methods: {
+      getorgtreelist() {
+        let _this = this
+        let params = {
+          IsInnerOrganize: 1,
+        }
+        _this.$axios.get('organizes/getorglist', {
+            params
+          })
+          .then(res => {
+            _this.orgtreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'Parentid', 'Id,Fullname')
+
+            console.log("**res.data.items**",res.data.items)
+            console.log("**_this.orgtreelist**",_this.orgtreelist)
+
+            _this.handleNodeClick(_this.orgtreelist[0].children[0])
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
+      handleNodeClick(data) {
+        this.userOptions = []
+        let params = {
+          deptId: data.id,
+          // auditstepcode: 'FIRST_TRIAL',
+        }
+        supapi.getAuditerByDeptAndNoLogin(params, this.$axios).then(res => {
+          this.userOptions = res.data.item
+
+          console.log("**this.userOptions**",this.userOptions)
+
+          if (res.data.item != null && res.data.item.length > 0) {
+            this.AuditorForm.UserId = res.data.item[0].id
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      handleSelectionChange(row) {
+        this.selectedOptions = row[row.length-1]
+        if (row.length <= 1) {
+          return
+        } else {
+          this.$refs.multipleTable.clearSelection()
+          this.$refs.multipleTable.toggleRowSelection(row[row.length-1])
+        }
+      },
+      toggleSelection () {
+        this.$emit('close', this.selectedOptions.id, this.selectedOptions.realname)
+      },
+      hideChooseAuditer () {
+        this.$emit('hideChooseAuditer')
+      },
+    }
+  }
+
+</script>
+
+<style lang="scss">
+
+</style>

+ 0 - 4
src/dashoo.cn/frontend_web/src/pages/oilsupplier/companyaudit/index.vue

@@ -242,9 +242,6 @@
           })
           .then(function (response) {
             _this.list = response.data.items
-
-            console.log("***_this.list**",_this.list)
-
             _this.currentItemCount = response.data.currentItemCount
           })
           .catch(function (error) {
@@ -256,7 +253,6 @@
       checkData(row) {
         let _this = this
         _this.formData = row
-        console.log("**row**",row)
         _this.dialogVisible = true
 
         //处理URL

+ 42 - 11
src/dashoo.cn/frontend_web/src/pages/signup.vue

@@ -93,12 +93,12 @@
               <el-row>
                 <el-col :span="24">
                   <el-form-item label="账号/Email" label-width="150px" style="width: 100%" prop="UserName">
-                    <el-input v-model="formData.UserName" placeholder="请输入账号"></el-input>
+                    <el-input v-model="formData.UserName" placeholder="请输入登录账号"></el-input>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="用户名"  label-width="150px" style="width: 100%" prop="UserRealName">
-                    <el-input v-model="formData.UserRealName" placeholder="请输入用户名"></el-input>
+                    <el-input v-model="formData.UserRealName" placeholder="请输入真实用户名"></el-input>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
@@ -106,16 +106,23 @@
                     <el-input v-model="formData.UserTelephone" placeholder="用于审核通知和密码找回"></el-input>
                   </el-form-item>
                 </el-col>
-                <el-col :span="12">              
+                <el-col :span="8">              
                   <el-form-item label="密码" label-width="150px" style="width: 100%" prop="UserPass" >
                     <el-input type="password" v-model="formData.UserPass"  auto-complete="off" placeholder="请输入密码(8-20位,字母数字组合)"></el-input>
                   </el-form-item>
                 </el-col>
-                <el-col :span="12">
+                <el-col :span="8">
                   <el-form-item label="确认密码"  style="width: 100%" prop="UserPass2" >
                     <el-input type="password" v-model="formData.UserPass2" auto-complete="off" placeholder="请输入确认密码"></el-input>
                   </el-form-item>
                 </el-col>
+                <el-col :span="8">
+                  <el-form-item label="审核人"  style="width: 100%" prop="CheckUserName">
+                    <el-input readonly v-model="formData.CheckUserName" placeholder="请选择审核人">
+                      <el-button slot="append" icon="el-icon-search" @click="selectOpera"></el-button>
+                    </el-input>
+                  </el-form-item>
+                </el-col>
                 <!-- <el-form-item label="验证码" prop="telep"  style="width: 100%">
                   </el-form-item>                           
                   <el-form-item label="短信验证码" prop="phober"  style="width: 100%">
@@ -127,12 +134,13 @@
                 <el-button type="primary" @click="register" style="width: 30%">立即注册</el-button>
               </el-row>
             </el-form>
+
+            <choose-auditor ref="chooseAuditor" @close="setAuditer" @hideChooseAuditer="chooseAuditorVisible=false"
+              :visible="chooseAuditorVisible">
+            </choose-auditor>
         </div>
       </el-card>
 
-      <!-- <div class="home-wrapper" style="background-color: white" v-if="activeIndex==2">    
-      </div> -->
-
     </div>
 
     <div>
@@ -154,6 +162,7 @@
   import axios from 'axios'
   import api from '@/api/oilsupplier/supplier'
   import uploadajax from '../assets/js/uploadajax.js'
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor2'
 
   @Component({
     data () {
@@ -187,6 +196,7 @@
         supplierNameList: [], //公司名列表
         waituploads: [], // 等待上传的文件列表
         limitNumb: 2, //文件上传限制数
+        chooseAuditorVisible: false,
 
         formData: {
           Id: '', //int
@@ -225,7 +235,7 @@
           ContactId: '',
           ContactURL: '',
           CompanyType: '',
-          SetupTime: '', //time
+          SetupTime: null, //time
           DepositBank: '',
           BankAccount: '',
           EMail: '',
@@ -238,6 +248,8 @@
           CompanyUrl: '',
           Remark: '',
           CheckStatus: 0, //二级单位审核状态,0:未通过,1:通过 默认0
+          CheckUserId: 0, //审核人Id
+          CheckUserName: '',
           IsDelete: 0, //删除状态,0正常,1已删除
           LinkAddress: '',
           LinkProvince: '',
@@ -283,10 +295,10 @@
             }
           ],
           UserName: [
-            { required: true, message: '请输入账号', trigger: 'blur' }
+            { required: true, message: '请输入登录账号', trigger: 'blur' }
           ],
           UserRealName: [
-            { required: true, message: '请输入用户名', trigger: 'blur' }
+            { required: true, message: '请输入真实用户名', trigger: 'blur' }
           ],
           UserTelephone: [
             { required: true, message: '请输入手机号', trigger: 'blur' }
@@ -300,6 +312,9 @@
               trigger: 'blur' 
             }
           ],
+          CheckUserName: [
+            { required: true, message: '请选择审核人', trigger: 'blur' }
+          ],
         }
       }
     },
@@ -308,13 +323,29 @@
       this.getSupplierNameList() //获取已注册的公司
     },
     components: {
-      Sticky
+      Sticky,
+      ChooseAuditor
     },
     methods: {
+      //选择审核人
+      selectOpera() {
+        let _this = this
+        _this.$refs['chooseAuditor'].getorgtreelist()
+        _this.chooseAuditorVisible = true
+      },
+      setAuditer(val, name) { //val:用户Id, name:用户名
+        let _this = this
+        _this.formData.CheckUserId = parseInt(val)
+        _this.formData.CheckUserName = name
+        _this.chooseAuditorVisible = false
+      },
+
       //注册
       register () {
         let _this = this
 
+        console.log("***注册_this.formData****",_this.formData)
+
         //判断公司是否注册
         if (_this.supplierNameList) {
           for (let i = 0; i < _this.supplierNameList.length; i++) {