| | |
| | | label-width="140px" |
| | | autoComplete="on" |
| | | :model="depart" |
| | | :rules="createDepartRules" |
| | | :rules="departRules" |
| | | label-position="right" |
| | | > |
| | | <!-- 部门名称 --> |
| | | <span style="heght:18px;display:block;line-height: 14px;"> |
| | | 执法人员结构 |
| | | </span> |
| | | <el-form-item class="optionItem" label="部门名称:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入部门名称"></el-input> |
| | | <el-form-item class="optionItem" label="部门名称:" prop="name"> |
| | | <el-input v-model="depart.name" placeholder="请输入部门名称"></el-input> |
| | | </el-form-item> |
| | | <!-- 上级部门 --> |
| | | <el-form-item class="optionItem" label="部门人数:" prop="departName"> |
| | | <el-input v-model="depart.departNumber" placeholder="请输入部门人数"></el-input> |
| | | <el-form-item class="optionItem" label="部门人数:" prop="peopleNumber"> |
| | | <el-input v-model="depart.peopleNumber" placeholder="请输入部门人数"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="辖区管理:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入辖区管理"></el-input> |
| | | <el-form-item class="optionItem" label="辖区管理:" prop="regionIds"> |
| | | <el-input v-model="depart.regionIds" placeholder="请输入辖区管理"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="本科学历以上人数:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入本科学历以上人数"></el-input> |
| | | <el-form-item class="optionItem" label="本科学历以上人数:" prop="upUndergraduatePeopleNumber"> |
| | | <el-input v-model="depart.upUndergraduatePeopleNumber" placeholder="请输入本科学历以上人数"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="持证人员数:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入持证人员数"></el-input> |
| | | <el-form-item class="optionItem" label="持证人员数:" prop="holderNumber"> |
| | | <el-input v-model="depart.holderNumber" placeholder="请输入持证人员数"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="45岁以下人数:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入45岁以下人数"></el-input> |
| | | <el-form-item class="optionItem" label="45岁以下人数:" prop="underFortyFivePeopleNumber"> |
| | | <el-input v-model="depart.underFortyFivePeopleNumber" placeholder="请输入45岁以下人数"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="持法律职业资格证书人数:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入持法律职业资格证书人数"></el-input> |
| | | <el-form-item class="optionItem" label="持法律职业资格证书人数:" prop="legalProfessionalQualificationCertificatePeopleNumber"> |
| | | <el-input v-model="depart.legalProfessionalQualificationCertificatePeopleNumber" placeholder="请输入持法律职业资格证书人数"></el-input> |
| | | </el-form-item> |
| | | <span> |
| | | 作风纪律 |
| | | </span> |
| | | <el-form-item class="optionItem" label="通报数量:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入通报数量"></el-input> |
| | | <el-form-item class="optionItem" label="通报数量:" prop="reportNumber"> |
| | | <el-input v-model="depart.reportNumber" placeholder="请输入通报数量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="违纪行为数量:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入违纪行为数量"></el-input> |
| | | <el-form-item class="optionItem" label="违纪行为数量:" prop="disciplinaryOffenceNumber"> |
| | | <el-input v-model="depart.disciplinaryOffenceNumber" placeholder="请输入违纪行为数量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="违法犯罪行为数量:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入违法犯罪行为数量"></el-input> |
| | | <el-form-item class="optionItem" label="违法犯罪行为数量:" prop="criminalOffenseNumber"> |
| | | <el-input v-model="depart.criminalOffenseNumber" placeholder="请输入违法犯罪行为数量"></el-input> |
| | | </el-form-item> |
| | | <span>案件办理</span> |
| | | <el-form-item class="optionItem" label="每月案件办理量:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入每月案件办理量"></el-input> |
| | | <el-form-item class="optionItem" label="每月案件办理量:" prop="monthCaseNumber"> |
| | | <el-input v-model="depart.monthCaseNumber" placeholder="请输入每月案件办理量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="未超时案件量:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入未超时案件量"></el-input> |
| | | <el-form-item class="optionItem" label="未超时案件量:" prop="noTimeoutCaseNumber"> |
| | | <el-input v-model="depart.noTimeoutCaseNumber" placeholder="请输入未超时案件量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="复议或诉讼数:" prop="departName"> |
| | | <el-input v-model="depart.departName" placeholder="请输入复议或诉讼数"></el-input> |
| | | <el-form-item class="optionItem" label="复议或诉讼数:" prop="reviewOrLawsuitNumber"> |
| | | <el-input v-model="depart.reviewOrLawsuitNumber" placeholder="请输入复议或诉讼数"></el-input> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </div> |
| | | </main> |
| | | <footer> |
| | | <div class="optionBtn"> |
| | | <el-button @click="handleClose">取消</el-button> |
| | | <el-button type="primary" class="btn submit" @click="handleUser" |
| | | >确定</el-button |
| | | > |
| | | <el-button type="primary" class="btn submit" @click="handleUser()">确定</el-button> |
| | | </div> |
| | | </footer> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { getTypeList } from "@/utils/helper"; |
| | | import { addTeam } from "@/api/system/portal/teamConstruction"; |
| | | import { SUCCESS_CODE } from "@/utils"; |
| | | |
| | | export default { |
| | | data() { |
| | | const validateNickname = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写部门名称")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const validatePass = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const validatePhone = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | depart: { |
| | | departName: "", |
| | | parentId: "", |
| | | departType: "", |
| | | departDes: "", |
| | | |
| | | // 执法人员结构 |
| | | name: '', |
| | | peopleNumber: '', |
| | | regionIds: '', |
| | | upUndergraduatePeopleNumber: '', |
| | | holderNumber: '', |
| | | underFortyFivePeopleNumber: '', |
| | | legalProfessionalQualificationCertificatePeopleNumber: '', |
| | | |
| | | // 作风纪律 |
| | | reportNumber: null, |
| | | disciplinaryOffenceNumber: null, |
| | | criminalOffenseNumber: null, |
| | | |
| | | // 案件办理 |
| | | monthCaseNumber: null, |
| | | noTimeoutCaseNumber: null, |
| | | reviewOrLawsuitNumber: null |
| | | }, |
| | | createDepartRules: { |
| | | departName: [ |
| | | { required: true, trigger: "blur", validator: validateNickname }, |
| | | ], |
| | | parentId: [ |
| | | { required: false, trigger: "blur", validator: validatePass }, |
| | | ], |
| | | departType: [ |
| | | { required: false, trigger: "blur", validator: validatePhone }, |
| | | ], |
| | | departDes: [{ required: false, trigger: "blur" }], |
| | | departRules: { |
| | | name: [{ required: true, trigger: "blur", message: '部门名称必填' }], |
| | | peopleNumber: [{ required: true, trigger: "blur", message: '部门人数必填' }], |
| | | regionIds: [{ required: true, trigger: "blur", message: '辖区管理必填' }], |
| | | upUndergraduatePeopleNumber: [{ required: true, trigger: "blur", message: '本科学历以上人数必填' }], |
| | | holderNumber: [{ required: true, trigger: "blur", message: '持证人员数必填' }], |
| | | underFortyFivePeopleNumber: [{ required: true, trigger: "blur", message: '45岁以下人数必填' }], |
| | | legalProfessionalQualificationCertificatePeopleNumber: [{ required: true, trigger: "blur", message: '持法律职业资格证书人数必填' }], |
| | | reportNumber: [{ required: true, trigger: "blur", message: '通报数量必填' }], |
| | | disciplinaryOffenceNumber: [{ required: true, trigger: "blur", message: '违纪行为数量:必填' }], |
| | | criminalOffenseNumber: [{ required: true, trigger: "blur", message: '违法犯罪行为数量必填' }], |
| | | monthCaseNumber: [{ required: true, trigger: "blur", message: '每月案件办理量必填' }], |
| | | noTimeoutCaseNumber: [{ required: true, trigger: "blur", message: '未超时案件量必填' }], |
| | | reviewOrLawsuitNumber: [{ required: true, trigger: "blur", message: '复议或诉讼数必填' }] |
| | | }, |
| | | userList: [], |
| | | departList: [], |
| | |
| | | mylabel: "", |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "departName", |
| | | label: "name", |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | const that = this; |
| | | // 获取部门树形结构图 |
| | | this.getDepartTree(); |
| | | |
| | | // 获取用户列表 |
| | | this.getUserList(); |
| | | |
| | | // 获取部门类型列表 |
| | | this.getDepartTypeList(); |
| | | }, |
| | |
| | | handleUser() { |
| | | this.$refs.user.validate((valid) => { |
| | | if (valid) { |
| | | const { depart, checkedList, selectOrg } = this; |
| | | const arr = []; |
| | | checkedList.forEach((item) => { |
| | | arr.push({ leader: item.leader, userId: item.id }); |
| | | }); |
| | | console.log(arr); |
| | | this.$axios({ |
| | | method: "post", |
| | | url: "/sccg/depart/create", |
| | | data: { |
| | | departName: depart.departName, |
| | | parentId: selectOrg.orgsid[0], |
| | | departType: depart.departType, |
| | | departDes: depart.departDes, |
| | | departManagerList: arr, |
| | | }, |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | addTeam(this.depart) |
| | | .then(({ code, message }) => { |
| | | if (code === SUCCESS_CODE) { |
| | | this.$message({ type: 'success', message }); |
| | | this.$emit('closeUpdateDialog'); |
| | | } else { |
| | | this.$message({ type: 'warning', message }); |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | this.$message({ type: 'error', message: err }); |
| | | }); |
| | | this.refresh(); |
| | | } else if (res.code === 2001) { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "error", |
| | | }); |
| | | this.refresh(); |
| | | } |
| | | }); |
| | | } else { |
| | | return false; |
| | | this.$message({ type: 'warning', message: '请检查必填项' }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 获取部门树形结构图 |
| | | getDepartTree() { |
| | | this.$axios({ |
| | | method: "get", |
| | | url: "sccg/depart/tree", |
| | | }).then((res) => { |
| | | // console.log(res); |
| | | // res.data.unshift({ id: 0, departName: "顶级菜单" }); |
| | | this.departList = res.data; |
| | | }); |
| | | }, |
| | | |
| | | // 获取所有用户信息 |
| | | getUserList() { |
| | | |
| | | // 获取所有用户信息、用户查询(暂时支持电话号码) |
| | | this.$axios.get(`/sccg/depart/query_surplus_user`).then((res) => { |
| | | if (res.code === 200) { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | addUser() { |
| | | console.log(this.checkedUser); |
| | | console.log(this.userList); |
| | | this.checkedList = []; |
| | | this.userList.forEach((item) => { |
| | | this.checkedUser.forEach((child) => { |
| | | if (item.id == child) { |
| | | if (item.id === child) { |
| | | this.checkedList.push({ |
| | | id: item.id, |
| | | username: item.username, |
| | |
| | | this.checkedList[0].leader = true; |
| | | this.openUser = false; |
| | | }, |
| | | |
| | | handleClose() { |
| | | this.$emit("changMyDialog", { flag: false }); |
| | | }, |
| | | |
| | | // 获取部门类型 |
| | | async getDepartTypeList() { |
| | | this.departTypeList = await getTypeList(1, "08"); |
| | | }, |
| | | |
| | | handleCheck(data, checked) { |
| | | this.depart.parentId = data.departName; |
| | | this.depart.parentId = data.name; |
| | | |
| | | // 获取当前选择的id在数组中的索引 |
| | | const indexs = this.selectOrg.orgsid.indexOf(data.id); |
| | | |
| | | // 如果不存在数组中,并且数组中已经有一个id并且checked为true的时候,代表不能再次选择。 |
| | | if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { |
| | | this.$message({ |
| | |
| | | type: "warning", |
| | | showClose: true, |
| | | }); |
| | | |
| | | // 设置已选择的节点为false 很重要 |
| | | this.$refs.tree.setChecked(data, false); |
| | | } else if (this.selectOrg.orgsid.length === 0 && checked) { |
| | | |
| | | // 发现数组为空 并且是已选择 |
| | | // 防止数组有值,首先清空,再push |
| | | this.selectOrg.orgsid = []; |
| | |
| | | this.selectOrg.orgsid.length === 1 && |
| | | !checked |
| | | ) { |
| | | |
| | | // 再次直接进行赋值为空操作 |
| | | this.selectOrg.orgsid = []; |
| | | this.depart.parentId = ""; |
| | | } |
| | | }, |
| | | |
| | | // 设置领导 |
| | | setLeader(idx) { |
| | | this.checkedList.forEach((item, index) => { |