样式 (1:搜索按钮放入右侧,2:隐藏表格显影按钮,3:页码改为(15,30,50,100))
126 files modified
1 files added
| | |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | |
| | | .excelPrint { |
| | | width: 100%; |
| | | text-align: center; |
| | | margin-top: 50px; |
| | | } |
| | | |
| | | |
| | | .print { |
| | | /* position: absolute; |
| | | left: 47%; |
| | |
| | | background-color: #1D5CE4; |
| | | letter-spacing: 4px; |
| | | } |
| | | |
| | | |
| | | .user-info-table { |
| | | margin-top: 30px; |
| | | width: 90%; |
| | |
| | | border: 1px solid #000; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | |
| | | .user-info-tr { |
| | | height: 50px; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | |
| | | .avatar { |
| | | width: 140px; |
| | | height: 190px; |
| | | } |
| | | |
| | | |
| | | .title { |
| | | margin-top: 20px; |
| | | font-size: 28px; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | |
| | | .avatar { |
| | | width: 140px; |
| | | height: 190px; |
| | | } |
| | | |
| | | |
| | | .my-picture { |
| | | width: 150px; |
| | | /* height: 200px; */ |
| | |
| | | </div> |
| | | </div> |
| | | <script> |
| | | var getData = function(name) { |
| | | var getData = function (name) { |
| | | var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); |
| | | var r = window.location.search.substr(1).match(reg); |
| | | if (r != null) return unescape(r[2]); |
| | |
| | | var name = JSON.parse(getData("data")).name; |
| | | // console.log(JSON.parse(getData("data")), 111); |
| | | |
| | | axios.get('http://223.82.109.183:2080/api/apply/getApplyDetailList?examId=' + id).then(function(res) { |
| | | axios.get('http://223.82.109.183:2080/api/apply/getApplyDetailList?examId=' + id).then(function (res) { |
| | | // axios.get('http://localhost:81/apply/getApplyDetailList?examId=' + id).then(function(res) { |
| | | var data = res.data; |
| | | var list = data.applyList; |
| | |
| | | <td width="60px">性别</td> |
| | | <td width="120px">准考证号</td> |
| | | <td width="160px">身份证号</td> |
| | | <td width="300px">单位名称</td> |
| | | <td width="300px">企业名称</td> |
| | | <td width="100px">报考证件</td> |
| | | <td width="200px">报名时间</td> |
| | | </tr>` |
| | |
| | | str += ` |
| | | <tr class="user-info-tr"> |
| | | <td>${list[k].realName}</td> |
| | | <td>${list[k].sex==1?"男":(data.sex==2?"女":"")}</td> |
| | | <td>${list[k].sex == 1 ? "男" : (data.sex == 2 ? "女" : "")}</td> |
| | | <td>${list[k].candidateNo}</td> |
| | | <td>${list[k].idCardNo}</td> |
| | | <td>${list[k].deptName}</td> |
| | |
| | | <template> |
| | | <div class="avue-logo"> |
| | | <transition name="fade"> |
| | | <span v-if="keyCollapse" |
| | | class="avue-logo_subtitle" |
| | | key="0"> |
| | | {{website.logo}} |
| | | <span v-if="keyCollapse" class="avue-logo_subtitle" key="0"> |
| | | {{ website.logo }} |
| | | </span> |
| | | </transition> |
| | | <transition-group name="fade"> |
| | | <template v-if="!keyCollapse"> |
| | | <span class="avue-logo_title" |
| | | key="1">{{website.indexTitle}} </span> |
| | | <span class="avue-logo_title" key="1">{{ website.indexTitle }} </span> |
| | | </template> |
| | | </transition-group> |
| | | </div> |
| | |
| | | }, |
| | | created() {}, |
| | | computed: { |
| | | ...mapGetters(["website", "keyCollapse"]) |
| | | ...mapGetters(["website", "keyCollapse"]), |
| | | }, |
| | | methods: {} |
| | | methods: {}, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | state.isShade = active; |
| | | }, |
| | | SET_COLLAPSE: (state, val = 3) => { |
| | | // console.log(val) |
| | | if (val == 3) { |
| | | state.isCollapse = !state.isCollapse; |
| | | } else { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | .avue-form__group > div:last-child { |
| | | display: inline-block !important; |
| | | width: auto !important; |
| | | display: inline-block !important; |
| | | width: auto !important; |
| | | } |
| | | |
| | | // 表格搜索按钮样式覆盖 |
| | | @import "./tableSearchBut.scss"; |
| | |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 992px) { |
| | | $width: 240px; |
| | | // ele的自适应 |
| | | .el-dialog, |
| | | .el-message-box { |
| | | width: 98% !important; |
| | | } |
| | | //登录页面 |
| | | .login-left { |
| | | display: none !important; |
| | | } |
| | | .login-logo { |
| | | padding-top: 30px !important; |
| | | margin-left: -30px; |
| | | } |
| | | .login-weaper { |
| | | margin: 0 auto; |
| | | width: 96% !important; |
| | | } |
| | | .login-border { |
| | | border-radius: 5px; |
| | | padding: 40px; |
| | | margin: 0 auto; |
| | | float: none !important; |
| | | width: 100% !important; |
| | | } |
| | | .login-main { |
| | | width: 100% !important; |
| | | } |
| | | //主框架 |
| | | .avue-tags { |
| | | display: none; |
| | | } |
| | | .avue-left, |
| | | .avue-logo { |
| | | left: -$width; |
| | | } |
| | | .avue-main { |
| | | left: 0; |
| | | width: 100%; |
| | | } |
| | | .avue-header { |
| | | margin-bottom: 15px; |
| | | padding-left: 15px; |
| | | } |
| | | .top-bar__item { |
| | | display: none; |
| | | } |
| | | .avue--collapse { |
| | | .avue-left, |
| | | .avue-logo { |
| | | width: $width; |
| | | left: 0; |
| | | } |
| | | // @media screen and (max-width: 992px) { |
| | | // $width: 240px; |
| | | // // ele的自适应 |
| | | // .el-dialog, |
| | | // .el-message-box { |
| | | // width: 98% !important; |
| | | // } |
| | | // //登录页面 |
| | | // .login-left { |
| | | // display: none !important; |
| | | // } |
| | | // .login-logo { |
| | | // padding-top: 30px !important; |
| | | // margin-left: -30px; |
| | | // } |
| | | // .login-weaper { |
| | | // margin: 0 auto; |
| | | // width: 96% !important; |
| | | // } |
| | | // .login-border { |
| | | // border-radius: 5px; |
| | | // padding: 40px; |
| | | // margin: 0 auto; |
| | | // float: none !important; |
| | | // width: 100% !important; |
| | | // } |
| | | // .login-main { |
| | | // width: 100% !important; |
| | | // } |
| | | // //主框架 |
| | | // .avue-tags { |
| | | // display: none; |
| | | // } |
| | | // .avue-left, |
| | | // .avue-logo { |
| | | // left: -$width; |
| | | // } |
| | | // .avue-main { |
| | | // left: 0; |
| | | // width: 100%; |
| | | // } |
| | | // .avue-header { |
| | | // margin-bottom: 15px; |
| | | // padding-left: 15px; |
| | | // } |
| | | // .top-bar__item { |
| | | // display: none; |
| | | // } |
| | | // .avue--collapse { |
| | | // .avue-left, |
| | | // .avue-logo { |
| | | // width: $width; |
| | | // left: 0; |
| | | // } |
| | | |
| | | .avue-main { |
| | | width: calc(100% - 60px); |
| | | left: 60px; |
| | | } |
| | | // .avue-main { |
| | | // width: calc(100% - 60px); |
| | | // left: 60px; |
| | | // } |
| | | |
| | | .avue-header { |
| | | padding-left: 60px; |
| | | } |
| | | } |
| | | } |
| | | // .avue-header { |
| | | // padding-left: 60px; |
| | | // } |
| | | // } |
| | | // } |
| New file |
| | |
| | | .tooRowSearch .avue-crud__search .avue-form__group.avue-form__group--flex .avue-form__menu--center { |
| | | width: 222px !important; |
| | | position: absolute !important; |
| | | right: 0 !important; |
| | | top: 126px !important; |
| | | z-index: 100 !important; |
| | | } |
| | | .tooRowSearch .el-card.is-never-shadow.avue-crud__search { |
| | | overflow: visible; |
| | | } |
| | | |
| | | .oneRowSearch .avue-crud__search .avue-form__group.avue-form__group--flex .avue-form__menu--center { |
| | | width: 222px !important; |
| | | position: absolute !important; |
| | | right: 0 !important; |
| | | top: 71px !important; |
| | | z-index: 100 !important; |
| | | } |
| | | .oneRowSearch .el-card.is-never-shadow.avue-crud__search { |
| | | overflow: visible; |
| | | } |
| | |
| | | <template> |
| | | <basic-container class="desk1"> |
| | | <basic-container |
| | | :class="[ |
| | | 'desk1', |
| | | $store.state.control.windowWidth >= 1024 ? 'tooRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | </template> |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | style="display:none" |
| | | style="display: none" |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | |
| | | </el-button> --> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="deptName"> |
| | | <el-tag>{{ row.deptName }}</el-tag> |
| | | <el-tag>{{ row.deptName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="sex"> |
| | | <el-tag>{{ row.sex=="1"?"男":row.sex=="2"?"女":""}}</el-tag> |
| | | <el-tag>{{ |
| | | row.sex == "1" ? "男" : row.sex == "2" ? "女" : "" |
| | | }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | |
| | | remove, |
| | | update, |
| | | add, |
| | | getAccreditationRecords |
| | | getAccreditationRecords, |
| | | } from "@/api/accreditationRecords/accreditationRecords"; |
| | | import { getDept } from "@/api/system/dept"; |
| | | import { mapGetters } from "vuex"; |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | check:false, |
| | | check: false, |
| | | form: {}, |
| | | query: {}, |
| | | questionBankSearch: {}, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | saveBtnText: "发布", |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "申请时间", |
| | |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | search: true, |
| | | searchSpan:5, |
| | | searchSpan: 5, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | prop: "realName", |
| | | search: true, |
| | | searchSpan: 3, |
| | | width:100, |
| | | width: 100, |
| | | searchLabelWidth: 50, |
| | | // display: false, |
| | | }, |
| | | // { |
| | | // label: "所属保安公司", |
| | | // label: "企业名称", |
| | | // searchLabelWidth: "110", |
| | | // // prop: "deptName", |
| | | // prop: "deptId", |
| | |
| | | // minWidth: 260, |
| | | // }, |
| | | { |
| | | label: "所属保安公司", |
| | | searchLabelWidth: "110", |
| | | prop: "deptName", |
| | | // type: "tree", |
| | | // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | // props: { |
| | | // label: "title", |
| | | // value: "id", |
| | | // }, |
| | | slot: true, |
| | | searchSpan: 5, |
| | | search: true, |
| | | overHidden: true, |
| | | minWidth: 200 |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | prop: "deptName", |
| | | // type: "tree", |
| | | // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | // props: { |
| | | // label: "title", |
| | | // value: "id", |
| | | // }, |
| | | slot: true, |
| | | searchSpan: 5, |
| | | search: true, |
| | | overHidden: true, |
| | | minWidth: 200, |
| | | }, |
| | | { |
| | | label: "性别", |
| | |
| | | label: "有无照片", |
| | | prop: "isAvatar", |
| | | type: "select", |
| | | search:true, |
| | | search: true, |
| | | searchLabelWidth: 90, |
| | | minWidth: 105, |
| | | searchSpan: 3, |
| | |
| | | editDisplay: false, |
| | | hide: true, |
| | | display: false, |
| | | dicData:[ |
| | | dicData: [ |
| | | { |
| | | label:"全部", |
| | | value:3 |
| | | label: "全部", |
| | | value: 3, |
| | | }, |
| | | { |
| | | label:"有", |
| | | value:1 |
| | | label: "有", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label:"无", |
| | | value:2 |
| | | } |
| | | ] |
| | | label: "无", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(null, false), |
| | | viewBtn: this.vaildData(this.permission.accreditationRecords_view, false), |
| | | delBtn: this.vaildData(this.permission.accreditationRecords_delete, false), |
| | | viewBtn: this.vaildData( |
| | | this.permission.accreditationRecords_view, |
| | | false |
| | | ), |
| | | delBtn: this.vaildData( |
| | | this.permission.accreditationRecords_delete, |
| | | false |
| | | ), |
| | | editBtn: this.vaildData(null, false), |
| | | }; |
| | | }, |
| | |
| | | mounted() { |
| | | this.getDeptInfo(this.userInfo.dept_id); |
| | | }, |
| | | created(){ |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | created() { |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //判断是否为市局管理员 |
| | | if(this.userInfo.jurisdiction=="1372091709474910209"){ |
| | | this.check = true; |
| | | // this.vaildData(this.permission.accreditationRecords_paper_delete, false); |
| | | }else{ |
| | | if (this.userInfo.jurisdiction == "1372091709474910209") { |
| | | this.check = true; |
| | | // this.vaildData(this.permission.accreditationRecords_paper_delete, false); |
| | | } else { |
| | | this.check = false; |
| | | // this.vaildData(null, false); |
| | | } |
| | |
| | | window.localStorage.getItem("saber-userInfo") |
| | | ).content.dept_id; |
| | | |
| | | const { releaseTimeRange } = this.query; |
| | | params["type"] = 1; |
| | | if (this.userInfo.role_name == "保安公司管理员") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = this.userInfo.dept_id; |
| | | } |
| | | if (this.userInfo.role_name == "培训公司管理员") { |
| | | //如果是培训公司管理员 |
| | | params["createUser"] = this.userInfo.Id; |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //如果是公安管理员 |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | } |
| | | let values = { |
| | | const { releaseTimeRange } = this.query; |
| | | params["type"] = 1; |
| | | if (this.userInfo.role_name == "保安公司管理员") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = this.userInfo.dept_id; |
| | | } |
| | | if (this.userInfo.role_name == "培训公司管理员") { |
| | | //如果是培训公司管理员 |
| | | params["createUser"] = this.userInfo.Id; |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //如果是公安管理员 |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | } |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | | startTime: releaseTimeRange[0], |
| | | endTime: releaseTimeRange[1], |
| | | ...this.query, |
| | | }; |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | | startTime: releaseTimeRange[0], |
| | | endTime: releaseTimeRange[1], |
| | | ...this.query, |
| | | }; |
| | | values.releaseTimeRange = null; |
| | | } |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | values.releaseTimeRange = null; |
| | | } |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | //保安员证信息导出 |
| | | handleExport() { |
| | |
| | | //获取查询条件 |
| | | const { releaseTimeRange } = this.questionBankSearch; |
| | | if (releaseTimeRange) { |
| | | this.questionBankSearch['startTime'] = releaseTimeRange[0]; |
| | | this.questionBankSearch['endTime'] = releaseTimeRange[1]; |
| | | this.questionBankSearch["startTime"] = releaseTimeRange[0]; |
| | | this.questionBankSearch["endTime"] = releaseTimeRange[1]; |
| | | } |
| | | var data = { |
| | | type:1, |
| | | applyUnit:this.questionBankSearch.applyUnit, |
| | | type: 1, |
| | | applyUnit: this.questionBankSearch.applyUnit, |
| | | deptName: this.questionBankSearch.deptName, |
| | | idCardNo: this.questionBankSearch.idCardNo, |
| | | realName: this.questionBankSearch.realName, |
| | |
| | | } |
| | | //序列号url形式,用&拼接 |
| | | data = Qs.stringify(data); |
| | | window.open(`/api/accreditationRecords/export-security-paper?${this.website.tokenHeader}=${getToken()}&`+data); |
| | | window.open( |
| | | `/api/accreditationRecords/export-security-paper?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` + data |
| | | ); |
| | | }); |
| | | }, |
| | | }, |
| | |
| | | <template> |
| | | <basic-container class="desk1"> |
| | | <basic-container |
| | | :class="[ |
| | | 'desk1', |
| | | $store.state.control.windowWidth >= 1024 ? 'tooRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | style="display:none" |
| | | style="display: none" |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | |
| | | >证书打印信息导出 |
| | | </el-button> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | v-if="permission.accreditationRecords_batch_audit || check" |
| | | icon="el-icon-collection-tag" |
| | | @click="handleSecurityAudit" |
| | | >批量审批 |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | v-if="permission.accreditationRecords_batch_audit || check" |
| | | icon="el-icon-collection-tag" |
| | | @click="handleSecurityAudit" |
| | | >批量审批 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="category"> |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="userType"> |
| | | {{ |
| | | row.userType == 6 ? "已制证" : row.userType == 7 ? "未制证" : "" |
| | | }} |
| | | {{ row.userType == 6 ? "已制证" : row.userType == 7 ? "未制证" : "" }} |
| | | </template> |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | |
| | | </avue-crud> |
| | | |
| | | <el-dialog |
| | | title="证书申请审核" |
| | | :visible.sync="dialogFormVisible" |
| | | modal-append-to-body="false" |
| | | append-to-body="true" |
| | | :close-on-click-model="true" |
| | | > |
| | | <avue-form |
| | | ref="formAudit" |
| | | v-model="Audit" |
| | | :option="optionAudit" |
| | | @reset-change="emptytChange" |
| | | @submit="submit" |
| | | ></avue-form> |
| | | title="证书申请审核" |
| | | :visible.sync="dialogFormVisible" |
| | | modal-append-to-body="false" |
| | | append-to-body="true" |
| | | :close-on-click-model="true" |
| | | > |
| | | <avue-form |
| | | ref="formAudit" |
| | | v-model="Audit" |
| | | :option="optionAudit" |
| | | @reset-change="emptytChange" |
| | | @submit="submit" |
| | | ></avue-form> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="批量审批" |
| | |
| | | @submit="submitBatchAudit" |
| | | ></avue-form> |
| | | </el-dialog> |
| | | <div style="position: fixed; top: 9999px; width: 100%; height: 100%"> |
| | | <div class="certificate_box" id="certificateDom"> |
| | | <div class="security_main" ref="certificateBox"> |
| | | <div class="security_m_l_titleName widt"> |
| | | {{ certificateObj.realName }} |
| | | </div> |
| | | <div class="security_m_r_o_jg widt">南昌市公安局</div> |
| | | <div class="security_m_l_titlepaperTimenian widt"> |
| | | {{ certificateYear }} |
| | | </div> |
| | | <div class="security_m_l_titlepaperTimeyue widt"> |
| | | {{ certificateMonth }} |
| | | </div> |
| | | <div class="security_m_l_downsecuritynumber widt"> |
| | | {{ certificateObj.securityNumber }} |
| | | </div> |
| | | <div class="security_m_r_o_right widt"> |
| | | {{ certificateObj.realName }} |
| | | </div> |
| | | <div class="security_m_r_o_rightbirthday widt"> |
| | | {{ |
| | | certificateObj.idCardNo |
| | | ? certificateObj.idCardNo.slice(6, 10) + |
| | | "." + |
| | | certificateObj.idCardNo.slice(10, 12) + |
| | | "." + |
| | | certificateObj.idCardNo.slice(12, 14) |
| | | : "" |
| | | }} |
| | | </div> |
| | | <div class="security_m_r_o_rightaddress security_m_r_o_l_r widt"> |
| | | {{ certificateObj.registered }} |
| | | </div> |
| | | <div class="security_m_r_o_rightcardid"> |
| | | {{ certificateObj.idCardNo }} |
| | | </div> |
| | | </div> |
| | | <div style="position: fixed; top: 9999px; width: 100%; height: 100%"> |
| | | <div class="certificate_box" id="certificateDom"> |
| | | <div class="security_main" ref="certificateBox"> |
| | | <div class="security_m_l_titleName widt"> |
| | | {{ certificateObj.realName }} |
| | | </div> |
| | | <div class="security_m_r_o_jg widt">南昌市公安局</div> |
| | | <div class="security_m_l_titlepaperTimenian widt"> |
| | | {{ certificateYear }} |
| | | </div> |
| | | <div class="security_m_l_titlepaperTimeyue widt"> |
| | | {{ certificateMonth }} |
| | | </div> |
| | | <div class="security_m_l_downsecuritynumber widt"> |
| | | {{ certificateObj.securityNumber }} |
| | | </div> |
| | | <div class="security_m_r_o_right widt"> |
| | | {{ certificateObj.realName }} |
| | | </div> |
| | | <div class="security_m_r_o_rightbirthday widt"> |
| | | {{ |
| | | certificateObj.idCardNo |
| | | ? certificateObj.idCardNo.slice(6, 10) + |
| | | "." + |
| | | certificateObj.idCardNo.slice(10, 12) + |
| | | "." + |
| | | certificateObj.idCardNo.slice(12, 14) |
| | | : "" |
| | | }} |
| | | </div> |
| | | <div class="security_m_r_o_rightaddress security_m_r_o_l_r widt"> |
| | | {{ certificateObj.registered }} |
| | | </div> |
| | | <div class="security_m_r_o_rightcardid"> |
| | | {{ certificateObj.idCardNo }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </basic-container> |
| | | </template> |
| | | |
| | |
| | | add, |
| | | getAccreditationRecords, |
| | | audit, |
| | | batchAudit |
| | | batchAudit, |
| | | } from "@/api/accreditationRecords/accreditationRecords"; |
| | | import { updatePaperTime } from "@/api/system/user"; |
| | | import { getDept } from "@/api/system/dept"; |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | check:false, |
| | | check: false, |
| | | certificateYear: null, |
| | | certificateMonth: null, |
| | | certificateFlag: false, |
| | |
| | | idCardNo: "", |
| | | registered: "", |
| | | }, |
| | | |
| | | |
| | | Audit: {}, |
| | | dialogFormVisible: false, |
| | | dialogBatchAudit:false, |
| | | dialogBatchAudit: false, |
| | | optionAudit: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | |
| | | excelBtn: false, |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "审核状态", |
| | |
| | | excelBtn: false, |
| | | menuWidth: 380, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "所选保安人数", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | saveBtnText: "发布", |
| | | menuWidth: 180, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "申请时间", |
| | |
| | | // display: false, |
| | | }, |
| | | // { |
| | | // label: "所属保安公司", |
| | | // label: "企业名称", |
| | | // searchLabelWidth: "110", |
| | | // // prop: "deptName", |
| | | // prop: "deptId", |
| | |
| | | // minWidth: 260, |
| | | // }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | prop: "deptName", |
| | | // type: "tree", |
| | |
| | | label: "有无照片", |
| | | prop: "isAvatar", |
| | | type: "select", |
| | | search:true, |
| | | search: true, |
| | | searchLabelWidth: 90, |
| | | minWidth: 105, |
| | | searchSpan: 3, |
| | |
| | | editDisplay: false, |
| | | hide: true, |
| | | display: false, |
| | | dicData:[ |
| | | dicData: [ |
| | | { |
| | | label:"全部", |
| | | value:3 |
| | | label: "全部", |
| | | value: 3, |
| | | }, |
| | | { |
| | | label:"有", |
| | | value:1 |
| | | label: "有", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label:"无", |
| | | value:2 |
| | | } |
| | | ] |
| | | label: "无", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(null, false), |
| | | viewBtn: this.vaildData(this.permission.accreditationRecords_paper_view, false), |
| | | viewBtn: this.vaildData( |
| | | this.permission.accreditationRecords_paper_view, |
| | | false |
| | | ), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData(null, false), |
| | | }; |
| | |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //判断是否为市局管理员 |
| | | if(this.userInfo.jurisdiction=="1372091709474910209"){ |
| | | this.check = true; |
| | | // this.vaildData(this.permission.accreditationRecords_paper_delete, false); |
| | | }else{ |
| | | if (this.userInfo.jurisdiction == "1372091709474910209") { |
| | | this.check = true; |
| | | // this.vaildData(this.permission.accreditationRecords_paper_delete, false); |
| | | } else { |
| | | this.check = false; |
| | | // this.vaildData(null, false); |
| | | } |
| | |
| | | } |
| | | } |
| | | const data = { |
| | | ids:str, |
| | | auditStatus:row.auditStatus, |
| | | auditDetail:row.auditDetail, |
| | | auditUser:this.userInfo.Id, |
| | | } |
| | | ids: str, |
| | | auditStatus: row.auditStatus, |
| | | auditDetail: row.auditDetail, |
| | | auditUser: this.userInfo.Id, |
| | | }; |
| | | //提交申请 |
| | | batchAudit(data).then( |
| | | () => { |
| | |
| | | window.localStorage.getItem("saber-userInfo") |
| | | ).content.dept_id; |
| | | |
| | | const { releaseTimeRange } = this.query; |
| | | // params["jurisdiction"] = this.jurisdiction; |
| | | params["type"] = 2; |
| | | if (this.userInfo.role_name == "保安公司管理员") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = this.userInfo.dept_id; |
| | | } |
| | | if (this.userInfo.role_name == "培训公司管理员") { |
| | | //如果是培训公司管理员 |
| | | params["createUser"] = this.userInfo.Id; |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //如果是公安管理员 |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | } |
| | | let values = { |
| | | const { releaseTimeRange } = this.query; |
| | | // params["jurisdiction"] = this.jurisdiction; |
| | | params["type"] = 2; |
| | | if (this.userInfo.role_name == "保安公司管理员") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = this.userInfo.dept_id; |
| | | } |
| | | if (this.userInfo.role_name == "培训公司管理员") { |
| | | //如果是培训公司管理员 |
| | | params["createUser"] = this.userInfo.Id; |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //如果是公安管理员 |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | } |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | | startTime: releaseTimeRange[0], |
| | | endTime: releaseTimeRange[1], |
| | | ...this.query, |
| | | }; |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | | startTime: releaseTimeRange[0], |
| | | endTime: releaseTimeRange[1], |
| | | ...this.query, |
| | | }; |
| | | values.releaseTimeRange = null; |
| | | } |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | values.releaseTimeRange = null; |
| | | } |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | //保安员证信息导出 |
| | | handleExport() { |
| | |
| | | this.questionBankSearch["endTime"] = releaseTimeRange[1]; |
| | | } |
| | | var data = { |
| | | type:2, |
| | | userType:this.questionBankSearch.userType, |
| | | applyUnit:this.questionBankSearch.applyUnit, |
| | | auditStatus:this.questionBankSearch.auditStatus, |
| | | type: 2, |
| | | userType: this.questionBankSearch.userType, |
| | | applyUnit: this.questionBankSearch.applyUnit, |
| | | auditStatus: this.questionBankSearch.auditStatus, |
| | | deptName: this.questionBankSearch.deptName, |
| | | idCardNo: this.questionBankSearch.idCardNo, |
| | | realName: this.questionBankSearch.realName, |
| | |
| | | } |
| | | //序列号url形式,用&拼接 |
| | | data = Qs.stringify(data); |
| | | window.open(`/api/accreditationRecords/export-security-book-paper?${this.website.tokenHeader}=${getToken()}&`+data); |
| | | window.open( |
| | | `/api/accreditationRecords/export-security-book-paper?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` + data |
| | | ); |
| | | }); |
| | | }, |
| | | //保安员证信息导出 |
| | |
| | | this.questionBankSearch["endTime"] = releaseTimeRange[1]; |
| | | } |
| | | var data = { |
| | | type:2, |
| | | userType:this.questionBankSearch.userType, |
| | | applyUnit:this.questionBankSearch.applyUnit, |
| | | auditStatus:this.questionBankSearch.auditStatus, |
| | | type: 2, |
| | | userType: this.questionBankSearch.userType, |
| | | applyUnit: this.questionBankSearch.applyUnit, |
| | | auditStatus: this.questionBankSearch.auditStatus, |
| | | deptName: this.questionBankSearch.deptName, |
| | | idCardNo: this.questionBankSearch.idCardNo, |
| | | realName: this.questionBankSearch.realName, |
| | |
| | | } |
| | | //序列号url形式,用&拼接 |
| | | data = Qs.stringify(data); |
| | | window.open(`/api/accreditationRecords/export-security-book-papers?${this.website.tokenHeader}=${getToken()}&`+data); |
| | | window.open( |
| | | `/api/accreditationRecords/export-security-book-papers?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` + data |
| | | ); |
| | | }); |
| | | }, |
| | | }, |
| | |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-apply-exam-1"> |
| | | <el-col :span="24" class="hasButOne"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'hasButOne', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <avue-crud |
| | |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-receiving" |
| | | :disabled="row.candidateNo==''" |
| | | :disabled="row.candidateNo == ''" |
| | | @click="handlePrint(row)" |
| | | >准考证打印 |
| | | </el-button> |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/apply/import-applys?examId="+examId, |
| | | action: "/api/apply/import-applys?examId=" + examId, |
| | | }, |
| | | { |
| | | label: "模板下载", |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | |
| | | // if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) { |
| | | // this.questionBankOption.column[0].dicUrl = |
| | | // "/api/blade-system/dept/lazy-tree-user?parentId="; |
| | |
| | | }, |
| | | //清册生成 |
| | | handleExport() { |
| | | var obj ={}; |
| | | var obj = {}; |
| | | obj["name"] = "报名清册信息"; |
| | | obj["examId"] = this.$route.query.id; |
| | | this.$router.push({ |
| | |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }); |
| | | }, |
| | | |
| | | |
| | | handleImport() { |
| | | this.excelBox = true; |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-11-05 12:02:26 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 14:19:17 |
| | | * menu-name 报名考试 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-apply-exam"> |
| | | <el-col :span="24" |
| | | class="hasButOne"> |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <avue-crud v-model="obj" |
| | | class="company-box" |
| | | :option="questionBankOption" |
| | | :search.sync="questionBankSearch" |
| | | :table-loading="questionBankLoading" |
| | | :data="questionBankData" |
| | | ref="questionBankCrud" |
| | | :page.sync="questionBankPage" |
| | | @on-load="questionBankOnLoad" |
| | | @selection-change="questionBankSelectionChange" |
| | | @search-change="questionBankSearchChange" |
| | | @search-reset="questionBankSearchReset" |
| | | @current-change="questionBankCurrentChange" |
| | | @size-change="questionBankSizeChange" |
| | | @row-save="questionBankRowSave" |
| | | @row-del="questionBankRowDel"> |
| | | <!-- 自定义按钮 --> |
| | | <!-- <template slot="menuLeft"> |
| | | <el-row class="morpheus-box-apply-exam"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'hasButOne', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box" |
| | | :option="questionBankOption" |
| | | :search.sync="questionBankSearch" |
| | | :table-loading="questionBankLoading" |
| | | :data="questionBankData" |
| | | ref="questionBankCrud" |
| | | :page.sync="questionBankPage" |
| | | @on-load="questionBankOnLoad" |
| | | @selection-change="questionBankSelectionChange" |
| | | @search-change="questionBankSearchChange" |
| | | @search-reset="questionBankSearchReset" |
| | | @current-change="questionBankCurrentChange" |
| | | @size-change="questionBankSizeChange" |
| | | @row-save="questionBankRowSave" |
| | | @row-del="questionBankRowDel" |
| | | > |
| | | <!-- 自定义按钮 --> |
| | | <!-- <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | |
| | | </el-button> |
| | | </template> --> |
| | | |
| | | <!-- <template slot="menuLeft"> |
| | | <!-- <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | @click="questionBankHandleDelete">删 除 |
| | | </el-button> |
| | | </template> --> |
| | | <!-- 自定义按钮 --> |
| | | <template slot="menuLeft"> |
| | | <el-button type="primary" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-folder-checked" |
| | | @click="handleBatchExam" |
| | | v-if="permission.applyexam_exam">生成考试 |
| | | </el-button> |
| | | <!-- v-if="examPersission" --> |
| | | <el-button type="primary" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-folder-checked" |
| | | v-if="permission.applyexam_import" |
| | | @click="handleImport">批量报名 |
| | | </el-button> |
| | | </template> |
| | | <!-- 自定义按钮 --> |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-folder-checked" |
| | | @click="handleBatchExam" |
| | | v-if="permission.applyexam_exam" |
| | | >生成考试 |
| | | </el-button> |
| | | <!-- v-if="examPersission" --> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-folder-checked" |
| | | v-if="permission.applyexam_import" |
| | | @click="handleImport" |
| | | >批量报名 |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template slot-scope="{ type, row }" |
| | | slot="menu"> |
| | | <el-button :type="type" |
| | | size="small" |
| | | icon="el-icon-refresh-left" |
| | | v-if="permission.applyexam_cancel" |
| | | :disabled="row.isApply == 2" |
| | | @click="handleCancel(row)">取消报名 |
| | | </el-button> |
| | | <el-button style="display: none" |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-folder-checked" |
| | | :disabled="row.applyStatus == 4" |
| | | @click="handleAudit(row)">审核 |
| | | </el-button> |
| | | <el-button :type="type" |
| | | size="small" |
| | | icon="el-icon-receiving" |
| | | v-if="permission.applyexam_print && row.candidateNo!=''" |
| | | @click="handlePrint(row)">准考证打印 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{ type, row }" slot="menu"> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-refresh-left" |
| | | v-if="permission.applyexam_cancel" |
| | | :disabled="row.isApply == 2" |
| | | @click="handleCancel(row)" |
| | | >取消报名 |
| | | </el-button> |
| | | <el-button |
| | | style="display: none" |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-folder-checked" |
| | | :disabled="row.applyStatus == 4" |
| | | @click="handleAudit(row)" |
| | | >审核 |
| | | </el-button> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-receiving" |
| | | v-if="permission.applyexam_print && row.candidateNo != ''" |
| | | @click="handlePrint(row)" |
| | | >准考证打印 |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template slot-scope="{ row }" |
| | | slot="age"> |
| | | {{ row.age == -1 ? "" : row.age }} |
| | | </template> |
| | | </avue-crud> |
| | | <template slot-scope="{ row }" slot="age"> |
| | | {{ row.age == -1 ? "" : row.age }} |
| | | </template> |
| | | </avue-crud> |
| | | |
| | | <el-dialog title="考试资格审核" |
| | | :visible.sync="dialogFormVisible" |
| | | modal-append-to-body="false" |
| | | append-to-body="true" |
| | | :close-on-click-model="true"> |
| | | <avue-form ref="formAudit" |
| | | v-model="Audit" |
| | | :option="optionAudit" |
| | | @reset-change="emptytChange" |
| | | @submit="submit"></avue-form> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="考试资格审核" |
| | | :visible.sync="dialogFormVisible" |
| | | modal-append-to-body="false" |
| | | append-to-body="true" |
| | | :close-on-click-model="true" |
| | | > |
| | | <avue-form |
| | | ref="formAudit" |
| | | v-model="Audit" |
| | | :option="optionAudit" |
| | | @reset-change="emptytChange" |
| | | @submit="submit" |
| | | ></avue-form> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="批量报名导入" |
| | | append-to-body |
| | | :visible.sync="excelBox" |
| | | width="555px"> |
| | | <avue-form :option="excelOption" |
| | | v-model="excelForm" |
| | | :upload-after="uploadAfter"> |
| | | <template slot="excelTemplate"> |
| | | <el-button type="primary" |
| | | @click="handleTemplate"> |
| | | 点击下载<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> |
| | | </avue-form> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="批量报名导入" |
| | | append-to-body |
| | | :visible.sync="excelBox" |
| | | width="555px" |
| | | > |
| | | <avue-form |
| | | :option="excelOption" |
| | | v-model="excelForm" |
| | | :upload-after="uploadAfter" |
| | | > |
| | | <template slot="excelTemplate"> |
| | | <el-button type="primary" @click="handleTemplate"> |
| | | 点击下载<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> |
| | | </avue-form> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="考试生成" |
| | | append-to-body |
| | | :visible.sync="dialogExamFormVisible" |
| | | width="900px" |
| | | @close="closeDialog"> |
| | | <avue-form ref="formExamApply" |
| | | v-model="examApply" |
| | | :option="optionExamApply" |
| | | @reset-change="emptytChange" |
| | | @submit="submitExamApply"></avue-form> |
| | | </el-dialog> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-dialog |
| | | title="考试生成" |
| | | append-to-body |
| | | :visible.sync="dialogExamFormVisible" |
| | | width="900px" |
| | | @close="closeDialog" |
| | | > |
| | | <avue-form |
| | | ref="formExamApply" |
| | | v-model="examApply" |
| | | :option="optionExamApply" |
| | | @reset-change="emptytChange" |
| | | @submit="submitExamApply" |
| | | ></avue-form> |
| | | </el-dialog> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getApplyList, |
| | | addApply, |
| | | cancelApply, |
| | | remove, |
| | | addExam, |
| | | getApplyList, |
| | | addApply, |
| | | cancelApply, |
| | | remove, |
| | | addExam, |
| | | } from "@/api/examapi/applyexam"; |
| | | import { mapState } from "vuex"; |
| | | import { mapGetters } from "vuex"; |
| | | import { getRoleDetail } from "@/api/system/role"; |
| | | var DIC = { |
| | | applyStatus: [ |
| | | { |
| | | label: "已报名", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "已取消", |
| | | value: 4, |
| | | }, |
| | | ], |
| | | applyStatus: [ |
| | | { |
| | | label: "已报名", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "已取消", |
| | | value: 4, |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | export default { |
| | | data () { |
| | | return { |
| | | dialogFormVisible: false, |
| | | dialogExamFormVisible: false, |
| | | examPersission: false, |
| | | applyExport: false, |
| | | excelBox: false, |
| | | Audit: {}, |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: "模板上传", |
| | | prop: "excelFile", |
| | | type: "upload", |
| | | drag: true, |
| | | loadText: "模板上传中,请稍等", |
| | | span: 24, |
| | | propsHttp: { |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/apply/import-apply", |
| | | }, |
| | | { |
| | | label: "模板下载", |
| | | prop: "excelTemplate", |
| | | formslot: true, |
| | | span: 24, |
| | | }, |
| | | ], |
| | | data() { |
| | | return { |
| | | dialogFormVisible: false, |
| | | dialogExamFormVisible: false, |
| | | examPersission: false, |
| | | applyExport: false, |
| | | excelBox: false, |
| | | Audit: {}, |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: "模板上传", |
| | | prop: "excelFile", |
| | | type: "upload", |
| | | drag: true, |
| | | loadText: "模板上传中,请稍等", |
| | | span: 24, |
| | | propsHttp: { |
| | | res: "data", |
| | | }, |
| | | optionAudit: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | dialogWidth: 1000, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, //liu |
| | | index: true, |
| | | stripe: true, |
| | | viewBtn: true, |
| | | addBtn: true, |
| | | selection: true, |
| | | excelBtn: false, |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 5, |
| | | span: 24, |
| | | prop: "auditStatus", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | dicData: [ |
| | | { |
| | | label: "审核通过", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "不通过", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "auditDetail", |
| | | }, |
| | | ], |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/apply/import-apply", |
| | | }, |
| | | { |
| | | label: "模板下载", |
| | | prop: "excelTemplate", |
| | | formslot: true, |
| | | span: 24, |
| | | }, |
| | | ], |
| | | }, |
| | | optionAudit: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | dialogWidth: 1000, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, //liu |
| | | index: true, |
| | | stripe: true, |
| | | viewBtn: true, |
| | | addBtn: true, |
| | | selection: true, |
| | | excelBtn: false, |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 5, |
| | | span: 24, |
| | | prop: "auditStatus", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | dicData: [ |
| | | { |
| | | label: "审核通过", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "不通过", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "auditDetail", |
| | | }, |
| | | ], |
| | | }, |
| | | optionExamApply: { |
| | | height: "auto", |
| | | filterBtn: true, |
| | | calcHeight: 30, |
| | | dialogWidth: 950, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, //liu |
| | | index: true, |
| | | stripe: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | excelBtn: false, |
| | | menuWidth: 380, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "考试人数", |
| | | prop: "number", |
| | | type: "number", |
| | | span: 12, |
| | | precision: 0, |
| | | step: 50, |
| | | mock: { |
| | | type: "number", |
| | | max: 1000, |
| | | min: 0, |
| | | precision: 0, |
| | | }, |
| | | optionExamApply: { |
| | | height: "auto", |
| | | filterBtn: true, |
| | | calcHeight: 30, |
| | | dialogWidth: 950, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, //liu |
| | | index: true, |
| | | stripe: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | excelBtn: false, |
| | | menuWidth: 380, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "考试人数", |
| | | prop: "number", |
| | | type: 'number', |
| | | span: 12, |
| | | precision: 0, |
| | | step: 50, |
| | | mock: { |
| | | type: 'number', |
| | | max: 1000, |
| | | min: 0, |
| | | precision: 0 |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入考试人数", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | minRows: 0, |
| | | maxRows: 1000, |
| | | value: 50, |
| | | }, |
| | | { |
| | | label: "序号开始", |
| | | prop: "serialStart", |
| | | span: 6, |
| | | value: 1, |
| | | mock: { |
| | | type: 'number', |
| | | max: 1000, |
| | | min: 1, |
| | | precision: 0 |
| | | }, |
| | | minRows: 1, |
| | | maxRows: 1000, |
| | | type: "number", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入序号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "序号结束", |
| | | prop: "serialEnd", |
| | | span: 6, |
| | | value: 50, |
| | | mock: { |
| | | type: 'number', |
| | | max: 1000, |
| | | min: 1, |
| | | precision: 0 |
| | | }, |
| | | minRows: 1, |
| | | maxRows: 1000, |
| | | type: "number", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入序号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "考试时间", |
| | | prop: "startTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm", |
| | | valueFormat: "yyyy-MM-dd HH:mm", |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择考试时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | span: 12, |
| | | }, |
| | | { |
| | | label: "截止时间", |
| | | prop: "endTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm", |
| | | valueFormat: "yyyy-MM-dd HH:mm", |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择考试时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | span: 12, |
| | | }, |
| | | ], |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入考试人数", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | minRows: 0, |
| | | maxRows: 1000, |
| | | value: 50, |
| | | }, |
| | | { |
| | | label: "序号开始", |
| | | prop: "serialStart", |
| | | span: 6, |
| | | value: 1, |
| | | mock: { |
| | | type: "number", |
| | | max: 1000, |
| | | min: 1, |
| | | precision: 0, |
| | | }, |
| | | questionBankOption: { |
| | | // 操作栏多余按钮去除 |
| | | delBtn: false, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | selection: false, |
| | | menu: true, |
| | | // 导出按钮 |
| | | // excelBtn: true, |
| | | viewBtn: true, |
| | | |
| | | // title: '题库', |
| | | |
| | | align: "center", |
| | | height: "auto", |
| | | calcHeight: 80, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 4, |
| | | index: true, |
| | | indexLabel: "#", |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | //tree 默认展开 |
| | | defaultExpandAll: true, |
| | | // 操作栏宽度 |
| | | menuWidth: 250, |
| | | |
| | | column: [ |
| | | { |
| | | label: "保安姓名", |
| | | prop: "userId", |
| | | type: "tree", |
| | | dicUrl: "", |
| | | hide: true, |
| | | slot: true, |
| | | searchSpan: 4, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | viewDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | viewDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择保安姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "保安姓名", |
| | | prop: "realName", |
| | | searchSpan: 4, |
| | | search: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: true, |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择保安姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "年龄", |
| | | prop: "age", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: true, |
| | | }, |
| | | // { |
| | | // label: "考试名称", |
| | | // prop: "examName", |
| | | // type: "tree", |
| | | // dicUrl: "/api/exampaper/page-tree?examType=1", |
| | | // // search: true, |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: true, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: true, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // props: { |
| | | // label: "examName", |
| | | // value: "id", |
| | | // }, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请选择试卷名称", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // width: 220, |
| | | // }, |
| | | { |
| | | label: "所属公司", |
| | | prop: "deptName", |
| | | search: true, |
| | | slot: true, |
| | | searchSpan: 6, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属公司", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 220, |
| | | }, |
| | | { |
| | | label: "准考证号", |
| | | prop: "candidateNo", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择准考证号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 100, |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "idCardNo", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择准考证号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "报考证件", |
| | | prop: "applyCard", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择准考证号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "试卷分数", |
| | | // prop: "paperScore", |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: true, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false |
| | | // }, |
| | | { |
| | | label: "报名时间", |
| | | prop: "applyTime", |
| | | type: "datetime", |
| | | // span: 24, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | // 表单新增时是否禁止 |
| | | addDisabled: true, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | value: |
| | | new Date().getFullYear() + |
| | | "-" + |
| | | (new Date().getMonth() + 1 < 10 |
| | | ? "0" + (new Date().getMonth() + 1) |
| | | : new Date().getMonth() + 1) + |
| | | "-" + |
| | | (new Date().getDate() < 10 |
| | | ? "0" + new Date().getDate() |
| | | : new Date().getDate()) + |
| | | " " + |
| | | (new Date().getHours() < 10 |
| | | ? "0" + new Date().getHours() |
| | | : new Date().getHours()) + |
| | | ":" + |
| | | (new Date().getMinutes() < 10 |
| | | ? "0" + new Date().getMinutes() |
| | | : new Date().getMinutes()) + |
| | | ":" + |
| | | (new Date().getSeconds() < 10 |
| | | ? "0" + new Date().getSeconds() |
| | | : new Date().getSeconds()), |
| | | |
| | | width: 150, |
| | | }, |
| | | // { |
| | | // label: "考试时间", |
| | | // prop: "examTime", |
| | | // type: "datetime", |
| | | // // span: 24, |
| | | // format: "yyyy-MM-dd HH:mm:ss", |
| | | // valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // width: 150, |
| | | // }, |
| | | |
| | | // { |
| | | // label: "审查状态", |
| | | // prop: "examinationType", |
| | | // slot: true, |
| | | // searchSpan: 5, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // dicData: [ |
| | | // { |
| | | // label: "正常", |
| | | // value: "1", |
| | | // }, |
| | | // { |
| | | // label: "异常", |
| | | // value: "2", |
| | | // }, |
| | | // ], |
| | | // search: true, |
| | | // type: "select", |
| | | // }, |
| | | // { |
| | | // label: "审查明细", |
| | | // prop: "examinationMx", |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // overHidden: true, |
| | | // width: 150, |
| | | // }, |
| | | // { |
| | | // label: "报名状态", |
| | | // search: true, |
| | | // type: "select", |
| | | // searchSpan: 4, |
| | | // prop: "applyStatus", |
| | | // searchValue: 2, |
| | | // dicData: [{ |
| | | // label: '全部', |
| | | // value: 0, |
| | | // }, |
| | | // { |
| | | // label: '已报名', |
| | | // value: 2, |
| | | // }, |
| | | // { |
| | | // label: '已取消', |
| | | // value: 4, |
| | | // } |
| | | // ], |
| | | // props: { |
| | | // label: "label", |
| | | // value: "value" |
| | | // }, |
| | | // editDisplay: false, |
| | | // addDisplay: false, |
| | | // width: 100, |
| | | // }, |
| | | ], |
| | | minRows: 1, |
| | | maxRows: 1000, |
| | | type: "number", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入序号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "序号结束", |
| | | prop: "serialEnd", |
| | | span: 6, |
| | | value: 50, |
| | | mock: { |
| | | type: "number", |
| | | max: 1000, |
| | | min: 1, |
| | | precision: 0, |
| | | }, |
| | | questionBankSearch: {}, |
| | | questionBankLoading: true, |
| | | questionBankData: [], |
| | | questionBankPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | | }; |
| | | }, |
| | | minRows: 1, |
| | | maxRows: 1000, |
| | | type: "number", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入序号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "考试时间", |
| | | prop: "startTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm", |
| | | valueFormat: "yyyy-MM-dd HH:mm", |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择考试时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | span: 12, |
| | | }, |
| | | { |
| | | label: "截止时间", |
| | | prop: "endTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm", |
| | | valueFormat: "yyyy-MM-dd HH:mm", |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择考试时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | span: 12, |
| | | }, |
| | | ], |
| | | }, |
| | | questionBankOption: { |
| | | // 操作栏多余按钮去除 |
| | | delBtn: false, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | selection: false, |
| | | menu: true, |
| | | // 导出按钮 |
| | | // excelBtn: true, |
| | | viewBtn: true, |
| | | |
| | | watch: { |
| | | "form.examname": { |
| | | // form是表单或者表格绑定的数据集,v-model='form' |
| | | handler (val) { |
| | | if (val) { |
| | | //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始 |
| | | var address = val.formattedAddress.toString(); |
| | | if (address.search("县") != -1) { |
| | | this.form.address = address.substring( |
| | | address.indexOf("县") + 1, |
| | | address.length |
| | | ); |
| | | } |
| | | if (address.search("区") != -1) { |
| | | this.form.address = address.substring( |
| | | address.indexOf("区") + 1, |
| | | address.length |
| | | ); |
| | | } |
| | | } |
| | | }, |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | created () { |
| | | // title: '题库', |
| | | |
| | | if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) { |
| | | this.examPersission = true; |
| | | align: "center", |
| | | height: "auto", |
| | | calcHeight: 80, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 4, |
| | | index: true, |
| | | indexLabel: "#", |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | //tree 默认展开 |
| | | defaultExpandAll: true, |
| | | // 操作栏宽度 |
| | | menuWidth: 250, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "保安姓名", |
| | | prop: "userId", |
| | | type: "tree", |
| | | dicUrl: "", |
| | | hide: true, |
| | | slot: true, |
| | | searchSpan: 4, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | viewDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | viewDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择保安姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "保安姓名", |
| | | prop: "realName", |
| | | searchSpan: 4, |
| | | search: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: true, |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择保安姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "年龄", |
| | | prop: "age", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: true, |
| | | }, |
| | | // { |
| | | // label: "考试名称", |
| | | // prop: "examName", |
| | | // type: "tree", |
| | | // dicUrl: "/api/exampaper/page-tree?examType=1", |
| | | // // search: true, |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: true, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: true, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // props: { |
| | | // label: "examName", |
| | | // value: "id", |
| | | // }, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请选择试卷名称", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // width: 220, |
| | | // }, |
| | | { |
| | | label: "所属公司", |
| | | prop: "deptName", |
| | | search: true, |
| | | slot: true, |
| | | searchSpan: 6, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属公司", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 220, |
| | | }, |
| | | { |
| | | label: "准考证号", |
| | | prop: "candidateNo", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择准考证号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 100, |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "idCardNo", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择准考证号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "报考证件", |
| | | prop: "applyCard", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择准考证号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "试卷分数", |
| | | // prop: "paperScore", |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: true, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false |
| | | // }, |
| | | { |
| | | label: "报名时间", |
| | | prop: "applyTime", |
| | | type: "datetime", |
| | | // span: 24, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | // 表单新增时是否禁止 |
| | | addDisabled: true, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | value: |
| | | new Date().getFullYear() + |
| | | "-" + |
| | | (new Date().getMonth() + 1 < 10 |
| | | ? "0" + (new Date().getMonth() + 1) |
| | | : new Date().getMonth() + 1) + |
| | | "-" + |
| | | (new Date().getDate() < 10 |
| | | ? "0" + new Date().getDate() |
| | | : new Date().getDate()) + |
| | | " " + |
| | | (new Date().getHours() < 10 |
| | | ? "0" + new Date().getHours() |
| | | : new Date().getHours()) + |
| | | ":" + |
| | | (new Date().getMinutes() < 10 |
| | | ? "0" + new Date().getMinutes() |
| | | : new Date().getMinutes()) + |
| | | ":" + |
| | | (new Date().getSeconds() < 10 |
| | | ? "0" + new Date().getSeconds() |
| | | : new Date().getSeconds()), |
| | | |
| | | width: 150, |
| | | }, |
| | | // { |
| | | // label: "考试时间", |
| | | // prop: "examTime", |
| | | // type: "datetime", |
| | | // // span: 24, |
| | | // format: "yyyy-MM-dd HH:mm:ss", |
| | | // valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // width: 150, |
| | | // }, |
| | | |
| | | // { |
| | | // label: "审查状态", |
| | | // prop: "examinationType", |
| | | // slot: true, |
| | | // searchSpan: 5, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // dicData: [ |
| | | // { |
| | | // label: "正常", |
| | | // value: "1", |
| | | // }, |
| | | // { |
| | | // label: "异常", |
| | | // value: "2", |
| | | // }, |
| | | // ], |
| | | // search: true, |
| | | // type: "select", |
| | | // }, |
| | | // { |
| | | // label: "审查明细", |
| | | // prop: "examinationMx", |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // overHidden: true, |
| | | // width: 150, |
| | | // }, |
| | | // { |
| | | // label: "报名状态", |
| | | // search: true, |
| | | // type: "select", |
| | | // searchSpan: 4, |
| | | // prop: "applyStatus", |
| | | // searchValue: 2, |
| | | // dicData: [{ |
| | | // label: '全部', |
| | | // value: 0, |
| | | // }, |
| | | // { |
| | | // label: '已报名', |
| | | // value: 2, |
| | | // }, |
| | | // { |
| | | // label: '已取消', |
| | | // value: 4, |
| | | // } |
| | | // ], |
| | | // props: { |
| | | // label: "label", |
| | | // value: "value" |
| | | // }, |
| | | // editDisplay: false, |
| | | // addDisplay: false, |
| | | // width: 100, |
| | | // }, |
| | | ], |
| | | }, |
| | | questionBankSearch: {}, |
| | | questionBankLoading: true, |
| | | questionBankData: [], |
| | | questionBankPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | | }; |
| | | }, |
| | | |
| | | watch: { |
| | | "form.examname": { |
| | | // form是表单或者表格绑定的数据集,v-model='form' |
| | | handler(val) { |
| | | if (val) { |
| | | //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始 |
| | | var address = val.formattedAddress.toString(); |
| | | if (address.search("县") != -1) { |
| | | this.form.address = address.substring( |
| | | address.indexOf("县") + 1, |
| | | address.length |
| | | ); |
| | | } |
| | | if (address.search("区") != -1) { |
| | | this.form.address = address.substring( |
| | | address.indexOf("区") + 1, |
| | | address.length |
| | | ); |
| | | } |
| | | } |
| | | }, |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | created() { |
| | | if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) { |
| | | this.examPersission = true; |
| | | } |
| | | |
| | | this.questionBankSearch['applyStatus'] = 2; |
| | | this.questionBankSearch["applyStatus"] = 2; |
| | | }, |
| | | mounted() {}, |
| | | computed: { |
| | | ...mapState({ |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(null, false), |
| | | viewBtn: this.vaildData(this.permission.applyexam_view, false), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData(null, false), |
| | | }; |
| | | }, |
| | | mounted () { }, |
| | | computed: { |
| | | ...mapState({ |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList () { |
| | | return { |
| | | addBtn: this.vaildData(null, false), |
| | | viewBtn: this.vaildData(this.permission.applyexam_view, false), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData(null, false), |
| | | }; |
| | | }, |
| | | ids () { |
| | | let ids = []; |
| | | this.questionBankSelectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.questionBankSelectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | //准考证查看 |
| | | handlePrint (row) { |
| | | var obj = row; |
| | | obj["name"] = "准考证信息"; |
| | | this.$router.push({ |
| | | path: `/applyexam/papers`, |
| | | query: obj, |
| | | }); |
| | | }, |
| | | questionBankOnLoad (page, params = {}) { |
| | | params = this.questionBankSearch; |
| | | }, |
| | | methods: { |
| | | //准考证查看 |
| | | handlePrint(row) { |
| | | var obj = row; |
| | | obj["name"] = "准考证信息"; |
| | | this.$router.push({ |
| | | path: `/applyexam/papers`, |
| | | query: obj, |
| | | }); |
| | | }, |
| | | questionBankOnLoad(page, params = {}) { |
| | | params = this.questionBankSearch; |
| | | this.questionBankLoading = false; |
| | | this.loading = true; |
| | | //判断角色,如果是保安公司管理员或保安,只能查看当前公司的报名信息 |
| | | var that = this; |
| | | //获取当前登录人员的角色信息 |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if (roleAlias == "保安公司管理员" || roleAlias == "保安") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | } |
| | | getApplyList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.questionBankQuery) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.questionBankPage.total = data.total; |
| | | this.questionBankData = data.records; |
| | | this.questionBankLoading = false; |
| | | this.loading = true; |
| | | //判断角色,如果是保安公司管理员或保安,只能查看当前公司的报名信息 |
| | | var that = this; |
| | | //获取当前登录人员的角色信息 |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if ( |
| | | roleAlias == "保安公司管理员" || |
| | | roleAlias == "保安" |
| | | ) { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | } |
| | | getApplyList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.questionBankQuery) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.questionBankPage.total = data.total; |
| | | this.questionBankData = data.records; |
| | | this.questionBankLoading = false; |
| | | this.questionBankSelectionClear(); |
| | | }); |
| | | }) |
| | | }) |
| | | }, |
| | | questionBankSelectionClear () { |
| | | this.questionBankSelectionList = []; |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }, |
| | | questionBankSelectionChange (list) { |
| | | this.questionBankSelectionList = list; |
| | | }, |
| | | questionBankSearchChange (params, done) { |
| | | this.questionBankQuery = params; |
| | | this.questionBankPage.currentPage = 1; |
| | | this.questionBankOnLoad(this.questionBankPage, params); |
| | | done(); |
| | | }, |
| | | questionBankSearchReset () { |
| | | this.questionBankQuery = {}; |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | }, |
| | | questionBankCurrentChange (currentPage) { |
| | | this.questionBankPage.currentPage = currentPage; |
| | | }, |
| | | questionBankSizeChange (pageSize) { |
| | | this.questionBankPage.pageSize = pageSize; |
| | | }, |
| | | |
| | | // 新增 |
| | | questionBankRowSave (row, done, loading) { |
| | | // debugger; |
| | | addApply({ |
| | | userId: row.userId, |
| | | examId: row.examName, |
| | | applyTime: row.applyTime, |
| | | }).then( |
| | | (res) => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | if (res.data.data == 201) { |
| | | this.$message({ |
| | | type: "warning", |
| | | message: "已报名,不能重复报名", |
| | | }); |
| | | } else if (res.data.data == 201) { |
| | | this.$message({ |
| | | type: "warning", |
| | | message: "报名失败", |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "报名成功", |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | //生成考试弹窗 |
| | | handleBatchExam () { |
| | | this.dialogExamFormVisible = true; |
| | | if (this.questionBankSelectionList.length === 0) { |
| | | this.ids = ""; |
| | | } |
| | | }, |
| | | //生成考试 |
| | | submitExamApply (row, done, loading) { |
| | | var that = this; |
| | | row.startTime = row.startTime + ":00"; |
| | | row.endTime = row.endTime + ":00"; |
| | | if (row.number != ((row.serialEnd - row.serialStart) + 1)) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "考试人数与序号不匹配!", |
| | | }); |
| | | done(); |
| | | return; |
| | | } |
| | | |
| | | var s = new Date(row.startTime); |
| | | var e = new Date(row.endTime); |
| | | if (s > e) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "截止时间不能早于考试考试开始时间!", |
| | | }); |
| | | done(); |
| | | return; |
| | | } |
| | | addExam(Object.assign(row, this.questionBankSearch)).then( |
| | | () => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | that.$refs.formExamApply.resetFields(); |
| | | that.dialogExamFormVisible = false; |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | //关闭窗口清除数据 |
| | | closeDialog () { |
| | | this.$refs.formExamApply.resetFields(); |
| | | }, |
| | | |
| | | questionBankRowDel (row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | //取消报名 |
| | | handleCancel (row) { |
| | | this.$confirm("确定取消报名?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | row.applyStatus = 4; |
| | | return cancelApply(row); |
| | | }) |
| | | .then(() => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | questionBankHandleDelete () { |
| | | if (this.questionBankSelectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleAudit (row) { |
| | | this.dialogFormVisible = true; |
| | | this.Audit = row; |
| | | }, |
| | | |
| | | handleImport () { |
| | | this.excelBox = true; |
| | | }, |
| | | |
| | | handleTemplate () { |
| | | window.open(`/api/apply/export-template`); |
| | | }, |
| | | uploadAfter (res, done, loading, column) { |
| | | window.console.log(column); |
| | | this.excelBox = false; |
| | | this.refreshChange(); |
| | | done(); |
| | | }, |
| | | |
| | | refreshChange () { |
| | | this.questionBankOnLoad(this.page, this.query); |
| | | }, |
| | | this.questionBankSelectionClear(); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | questionBankSelectionClear() { |
| | | this.questionBankSelectionList = []; |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }, |
| | | questionBankSelectionChange(list) { |
| | | this.questionBankSelectionList = list; |
| | | }, |
| | | questionBankSearchChange(params, done) { |
| | | this.questionBankQuery = params; |
| | | this.questionBankPage.currentPage = 1; |
| | | this.questionBankOnLoad(this.questionBankPage, params); |
| | | done(); |
| | | }, |
| | | questionBankSearchReset() { |
| | | this.questionBankQuery = {}; |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | }, |
| | | questionBankCurrentChange(currentPage) { |
| | | this.questionBankPage.currentPage = currentPage; |
| | | }, |
| | | questionBankSizeChange(pageSize) { |
| | | this.questionBankPage.pageSize = pageSize; |
| | | }, |
| | | |
| | | // 新增 |
| | | questionBankRowSave(row, done, loading) { |
| | | // debugger; |
| | | addApply({ |
| | | userId: row.userId, |
| | | examId: row.examName, |
| | | applyTime: row.applyTime, |
| | | }).then( |
| | | (res) => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | if (res.data.data == 201) { |
| | | this.$message({ |
| | | type: "warning", |
| | | message: "已报名,不能重复报名", |
| | | }); |
| | | } else if (res.data.data == 201) { |
| | | this.$message({ |
| | | type: "warning", |
| | | message: "报名失败", |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "报名成功", |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | //生成考试弹窗 |
| | | handleBatchExam() { |
| | | this.dialogExamFormVisible = true; |
| | | if (this.questionBankSelectionList.length === 0) { |
| | | this.ids = ""; |
| | | } |
| | | }, |
| | | //生成考试 |
| | | submitExamApply(row, done, loading) { |
| | | var that = this; |
| | | row.startTime = row.startTime + ":00"; |
| | | row.endTime = row.endTime + ":00"; |
| | | if (row.number != row.serialEnd - row.serialStart + 1) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "考试人数与序号不匹配!", |
| | | }); |
| | | done(); |
| | | return; |
| | | } |
| | | |
| | | var s = new Date(row.startTime); |
| | | var e = new Date(row.endTime); |
| | | if (s > e) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "截止时间不能早于考试考试开始时间!", |
| | | }); |
| | | done(); |
| | | return; |
| | | } |
| | | addExam(Object.assign(row, this.questionBankSearch)).then( |
| | | () => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | that.$refs.formExamApply.resetFields(); |
| | | that.dialogExamFormVisible = false; |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | //关闭窗口清除数据 |
| | | closeDialog() { |
| | | this.$refs.formExamApply.resetFields(); |
| | | }, |
| | | |
| | | questionBankRowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | //取消报名 |
| | | handleCancel(row) { |
| | | this.$confirm("确定取消报名?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | row.applyStatus = 4; |
| | | return cancelApply(row); |
| | | }) |
| | | .then(() => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | questionBankHandleDelete() { |
| | | if (this.questionBankSelectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleAudit(row) { |
| | | this.dialogFormVisible = true; |
| | | this.Audit = row; |
| | | }, |
| | | |
| | | handleImport() { |
| | | this.excelBox = true; |
| | | }, |
| | | |
| | | handleTemplate() { |
| | | window.open(`/api/apply/export-template`); |
| | | }, |
| | | uploadAfter(res, done, loading, column) { |
| | | window.console.log(column); |
| | | this.excelBox = false; |
| | | this.refreshChange(); |
| | | done(); |
| | | }, |
| | | |
| | | refreshChange() { |
| | | this.questionBankOnLoad(this.page, this.query); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | @tree-load="treeLoad"> |
| | | <template slot-scope="{row}" slot="menu"> |
| | | <el-button type="text" |
| | | icon="el-icon-setting" |
| | | size="small" |
| | | v-if="permission.api_scope_setting" |
| | | plain |
| | | style="border: 0;background-color: transparent !important;" |
| | | @click.stop="handleDataScope(row)">权限配置 |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | @tree-load="treeLoad" |
| | | > |
| | | <template slot-scope="{ row }" slot="menu"> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-setting" |
| | | size="small" |
| | | v-if="permission.api_scope_setting" |
| | | plain |
| | | style="border: 0; background-color: transparent !important" |
| | | @click.stop="handleDataScope(row)" |
| | | >权限配置 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" slot="source"> |
| | | <div style="text-align:center"> |
| | | <i :class="row.source"/> |
| | | <template slot-scope="{ row }" slot="source"> |
| | | <div style="text-align: center"> |
| | | <i :class="row.source" /> |
| | | </div> |
| | | </template> |
| | | </avue-crud> |
| | | <el-drawer :title="`[${scopeMenuName}] 接口权限配置`" :visible.sync="drawerVisible" :direction="direction" |
| | | append-to-body |
| | | :before-close="handleDrawerClose" size="1000px"> |
| | | <el-drawer |
| | | :title="`[${scopeMenuName}] 接口权限配置`" |
| | | :visible.sync="drawerVisible" |
| | | :direction="direction" |
| | | append-to-body |
| | | :before-close="handleDrawerClose" |
| | | size="1000px" |
| | | > |
| | | <basic-container> |
| | | <avue-crud :option="optionScope" |
| | | :data="dataScope" |
| | | :page="pageScope" |
| | | v-model="formScope" |
| | | :table-loading="scopeLoading" |
| | | ref="crudScope" |
| | | @row-del="rowDelScope" |
| | | @row-update="rowUpdateScope" |
| | | @row-save="rowSaveScope" |
| | | :before-open="beforeOpenScope" |
| | | @search-change="searchChangeScope" |
| | | @search-reset="searchResetScope" |
| | | @selection-change="selectionChangeScope" |
| | | @current-change="currentChangeScope" |
| | | @size-change="sizeChangeScope" |
| | | @on-load="onLoadScope"> |
| | | <avue-crud |
| | | :option="optionScope" |
| | | :data="dataScope" |
| | | :page="pageScope" |
| | | v-model="formScope" |
| | | :table-loading="scopeLoading" |
| | | ref="crudScope" |
| | | @row-del="rowDelScope" |
| | | @row-update="rowUpdateScope" |
| | | @row-save="rowSaveScope" |
| | | :before-open="beforeOpenScope" |
| | | @search-change="searchChangeScope" |
| | | @search-reset="searchResetScope" |
| | | @selection-change="selectionChangeScope" |
| | | @current-change="currentChangeScope" |
| | | @size-change="sizeChangeScope" |
| | | @on-load="onLoadScope" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDeleteScope">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDeleteScope" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="scopeType"> |
| | | <el-tag>{{row.scopeTypeName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="scopeType"> |
| | | <el-tag>{{ row.scopeTypeName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | add, |
| | | remove, |
| | | update, |
| | | getLazyMenuList, |
| | | getMenu |
| | | } from "@/api/system/menu"; |
| | | import { |
| | | addApiScope, |
| | | removeApiScope, |
| | | updateApiScope, |
| | | getListApiScope, |
| | | getMenuApiScope |
| | | } from "@/api/system/scope"; |
| | | import {mapGetters} from "vuex"; |
| | | import iconList from "@/config/iconList"; |
| | | import { |
| | | add, |
| | | remove, |
| | | update, |
| | | getLazyMenuList, |
| | | getMenu, |
| | | } from "@/api/system/menu"; |
| | | import { |
| | | addApiScope, |
| | | removeApiScope, |
| | | updateApiScope, |
| | | getListApiScope, |
| | | getMenuApiScope, |
| | | } from "@/api/system/scope"; |
| | | import { mapGetters } from "vuex"; |
| | | import iconList from "@/config/iconList"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | parentId: 0, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | drawerVisible: false, |
| | | direction: 'rtl', |
| | | scopeLoading: false, |
| | | scopeMenuId: 0, |
| | | scopeMenuName: "菜单", |
| | | menu: true, |
| | | option: { |
| | | lazy: true, |
| | | tip: false, |
| | | simplePage: true, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | dialogWidth: "60%", |
| | | tree: true, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: false, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "菜单名称", |
| | | prop: "name", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单名称", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "路由地址", |
| | | prop: "path", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入路由地址", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "上级菜单", |
| | | prop: "parentId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/menu/tree", |
| | | hide: true, |
| | | props: { |
| | | label: "title" |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | parentId: 0, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | drawerVisible: false, |
| | | direction: "rtl", |
| | | scopeLoading: false, |
| | | scopeMenuId: 0, |
| | | scopeMenuName: "菜单", |
| | | menu: true, |
| | | option: { |
| | | lazy: true, |
| | | tip: false, |
| | | simplePage: true, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | dialogWidth: "60%", |
| | | tree: true, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: false, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "菜单名称", |
| | | prop: "name", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单名称", |
| | | trigger: "blur", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择上级菜单", |
| | | trigger: "click" |
| | | } |
| | | ] |
| | | ], |
| | | }, |
| | | { |
| | | label: "路由地址", |
| | | prop: "path", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入路由地址", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "上级菜单", |
| | | prop: "parentId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/menu/tree", |
| | | hide: true, |
| | | props: { |
| | | label: "title", |
| | | }, |
| | | { |
| | | label: "菜单图标", |
| | | prop: "source", |
| | | type: "icon", |
| | | slot: true, |
| | | width: 80, |
| | | iconList: iconList, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单图标", |
| | | trigger: "click" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单编号", |
| | | prop: "code", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单编号", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单类型", |
| | | prop: "category", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "菜单", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "按钮", |
| | | value: 2 |
| | | } |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择菜单类型", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单别名", |
| | | prop: "alias", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单别名", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "按钮功能", |
| | | prop: "action", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "工具栏", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "操作栏", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "工具操作栏", |
| | | value: 2 |
| | | } |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择按钮功能", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | width: 80, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单排序", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "新窗口", |
| | | prop: "isOpen", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1 |
| | | }, |
| | | ], |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "菜单备注", |
| | | prop: "remark", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 6, |
| | | hide: true |
| | | } |
| | | ] |
| | | }, |
| | | data: [], |
| | | formScope: {}, |
| | | selectionListScope: [], |
| | | pageScope: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | optionScope: { |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | menuWidth: 200, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "权限名称", |
| | | prop: "scopeName", |
| | | search: true, |
| | | rules: [{ |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择上级菜单", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单图标", |
| | | prop: "source", |
| | | type: "icon", |
| | | slot: true, |
| | | width: 80, |
| | | iconList: iconList, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单图标", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单编号", |
| | | prop: "code", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单类型", |
| | | prop: "category", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "菜单", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "按钮", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择菜单类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单别名", |
| | | prop: "alias", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单别名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "按钮功能", |
| | | prop: "action", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "工具栏", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "操作栏", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "工具操作栏", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择按钮功能", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | width: 80, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单排序", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "新窗口", |
| | | prop: "isOpen", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "菜单备注", |
| | | prop: "remark", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 6, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | formScope: {}, |
| | | selectionListScope: [], |
| | | pageScope: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | }, |
| | | optionScope: { |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | menuWidth: 200, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "权限名称", |
| | | prop: "scopeName", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限名称", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "权限编号", |
| | | prop: "resourceCode", |
| | | search: true, |
| | | width: 180, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "权限路径", |
| | | prop: "scopePath", |
| | | width: 180, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "接口类型", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=api_scope_type", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | trigger: "blur", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | width: 100, |
| | | prop: "scopeType", |
| | | rules: [{ |
| | | ], |
| | | }, |
| | | { |
| | | label: "权限编号", |
| | | prop: "resourceCode", |
| | | search: true, |
| | | width: 180, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "权限路径", |
| | | prop: "scopePath", |
| | | width: 180, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "接口类型", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=api_scope_type", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | width: 100, |
| | | prop: "scopeType", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入通知类型", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | ] |
| | | }, |
| | | dataScope: [] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | dataScope: [], |
| | | }; |
| | | }, |
| | | |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.menu_add, false), |
| | | viewBtn: this.vaildData(this.permission.menu_view, false), |
| | | delBtn: this.vaildData(this.permission.menu_delete, false), |
| | | editBtn: this.vaildData(this.permission.menu_edit, false), |
| | | }; |
| | | }, |
| | | |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.menu_add, false), |
| | | viewBtn: this.vaildData(this.permission.menu_view, false), |
| | | delBtn: this.vaildData(this.permission.menu_delete, false), |
| | | editBtn: this.vaildData(this.permission.menu_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | scopeIds() { |
| | | let ids = []; |
| | | this.selectionListScope.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | // 菜单管理模块 |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | scopeIds() { |
| | | let ids = []; |
| | | this.selectionListScope.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | }, |
| | | methods: { |
| | | // 菜单管理模块 |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.parentId = 0; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.parentId = ""; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.parentId = 0; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.parentId = ''; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getMenu(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => { |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getMenu(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getLazyMenuList(this.parentId, Object.assign(params, this.query)).then( |
| | | (res) => { |
| | | this.data = res.data.data; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | treeLoad(tree, treeNode, resolve) { |
| | | const parentId = tree.id; |
| | | getLazyMenuList(parentId).then(res => { |
| | | resolve(res.data.data); |
| | | }); |
| | | }, |
| | | // 数据权限模块 |
| | | handleDataScope(row) { |
| | | this.drawerVisible = true; |
| | | this.scopeMenuId = row.id; |
| | | this.scopeMenuName = row.name; |
| | | this.onLoadScope(this.pageScope) |
| | | }, |
| | | handleDrawerClose(hide) { |
| | | hide(); |
| | | }, |
| | | rowSaveScope(row, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | addApiScope(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | treeLoad(tree, treeNode, resolve) { |
| | | const parentId = tree.id; |
| | | getLazyMenuList(parentId).then((res) => { |
| | | resolve(res.data.data); |
| | | }); |
| | | }, |
| | | // 数据权限模块 |
| | | handleDataScope(row) { |
| | | this.drawerVisible = true; |
| | | this.scopeMenuId = row.id; |
| | | this.scopeMenuName = row.name; |
| | | this.onLoadScope(this.pageScope); |
| | | }, |
| | | handleDrawerClose(hide) { |
| | | hide(); |
| | | }, |
| | | rowSaveScope(row, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | addApiScope(row).then( |
| | | () => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdateScope(row, index, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | updateApiScope(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdateScope(row, index, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | updateApiScope(row).then( |
| | | () => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowDelScope(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | } |
| | | ); |
| | | }, |
| | | rowDelScope(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeApiScope(row.id); |
| | | }) |
| | | .then(() => { |
| | | return removeApiScope(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | handleDeleteScope() { |
| | | if (this.selectionListScope.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return removeApiScope(this.scopeIds); |
| | | }) |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crudScope.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpenScope(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getMenuApiScope(this.formScope.id).then(res => { |
| | | this.formScope = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchResetScope() { |
| | | this.onLoadScope(this.pageScope); |
| | | }, |
| | | searchChangeScope(params, done) { |
| | | this.onLoadScope(this.pageScope, params); |
| | | done(); |
| | | }, |
| | | selectionChangeScope(list) { |
| | | this.selectionListScope = list; |
| | | }, |
| | | currentChangeScope(currentPage) { |
| | | this.pageScope.currentPage = currentPage; |
| | | }, |
| | | sizeChangeScope(pageSize) { |
| | | this.pageScope.pageSize = pageSize; |
| | | }, |
| | | onLoadScope(page, params = {}) { |
| | | this.scopeLoading = true; |
| | | const values = { |
| | | ...params, |
| | | menuId: this.scopeMenuId, |
| | | } |
| | | getListApiScope(page.currentPage, page.pageSize, Object.assign(values, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.pageScope.total = data.total; |
| | | this.dataScope = data.records; |
| | | this.selectionListScope = []; |
| | | this.scopeLoading = false; |
| | | }); |
| | | }, |
| | | } |
| | | }; |
| | | }, |
| | | handleDeleteScope() { |
| | | if (this.selectionListScope.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeApiScope(this.scopeIds); |
| | | }) |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crudScope.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpenScope(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getMenuApiScope(this.formScope.id).then((res) => { |
| | | this.formScope = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchResetScope() { |
| | | this.onLoadScope(this.pageScope); |
| | | }, |
| | | searchChangeScope(params, done) { |
| | | this.onLoadScope(this.pageScope, params); |
| | | done(); |
| | | }, |
| | | selectionChangeScope(list) { |
| | | this.selectionListScope = list; |
| | | }, |
| | | currentChangeScope(currentPage) { |
| | | this.pageScope.currentPage = currentPage; |
| | | }, |
| | | sizeChangeScope(pageSize) { |
| | | this.pageScope.pageSize = pageSize; |
| | | }, |
| | | onLoadScope(page, params = {}) { |
| | | this.scopeLoading = true; |
| | | const values = { |
| | | ...params, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | getListApiScope( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(values, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.pageScope.total = data.total; |
| | | this.dataScope = data.records; |
| | | this.selectionListScope = []; |
| | | this.scopeLoading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | @tree-load="treeLoad"> |
| | | <template slot-scope="{row}" slot="menu"> |
| | | <el-button type="text" |
| | | icon="el-icon-setting" |
| | | size="small" |
| | | v-if="permission.data_scope_setting" |
| | | plain |
| | | style="border: 0;background-color: transparent !important;" |
| | | @click.stop="handleDataScope(row)">权限配置 |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | @tree-load="treeLoad" |
| | | > |
| | | <template slot-scope="{ row }" slot="menu"> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-setting" |
| | | size="small" |
| | | v-if="permission.data_scope_setting" |
| | | plain |
| | | style="border: 0; background-color: transparent !important" |
| | | @click.stop="handleDataScope(row)" |
| | | >权限配置 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" slot="source"> |
| | | <div style="text-align:center"> |
| | | <i :class="row.source"/> |
| | | <template slot-scope="{ row }" slot="source"> |
| | | <div style="text-align: center"> |
| | | <i :class="row.source" /> |
| | | </div> |
| | | </template> |
| | | </avue-crud> |
| | | <el-drawer :title="`[${scopeMenuName}] 数据权限配置`" :visible.sync="drawerVisible" :direction="direction" |
| | | append-to-body |
| | | :before-close="handleDrawerClose" size="1000px"> |
| | | <el-drawer |
| | | :title="`[${scopeMenuName}] 数据权限配置`" |
| | | :visible.sync="drawerVisible" |
| | | :direction="direction" |
| | | append-to-body |
| | | :before-close="handleDrawerClose" |
| | | size="1000px" |
| | | > |
| | | <basic-container> |
| | | <avue-crud :option="optionScope" |
| | | :data="dataScope" |
| | | :page="pageScope" |
| | | v-model="formScope" |
| | | :table-loading="scopeLoading" |
| | | ref="crudScope" |
| | | @row-del="rowDelScope" |
| | | @row-update="rowUpdateScope" |
| | | @row-save="rowSaveScope" |
| | | :before-open="beforeOpenScope" |
| | | @search-change="searchChangeScope" |
| | | @search-reset="searchResetScope" |
| | | @selection-change="selectionChangeScope" |
| | | @current-change="currentChangeScope" |
| | | @size-change="sizeChangeScope" |
| | | @on-load="onLoadScope"> |
| | | <avue-crud |
| | | :option="optionScope" |
| | | :data="dataScope" |
| | | :page="pageScope" |
| | | v-model="formScope" |
| | | :table-loading="scopeLoading" |
| | | ref="crudScope" |
| | | @row-del="rowDelScope" |
| | | @row-update="rowUpdateScope" |
| | | @row-save="rowSaveScope" |
| | | :before-open="beforeOpenScope" |
| | | @search-change="searchChangeScope" |
| | | @search-reset="searchResetScope" |
| | | @selection-change="selectionChangeScope" |
| | | @current-change="currentChangeScope" |
| | | @size-change="sizeChangeScope" |
| | | @on-load="onLoadScope" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDeleteScope">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDeleteScope" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="scopeType"> |
| | | <el-tag>{{row.scopeTypeName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="scopeType"> |
| | | <el-tag>{{ row.scopeTypeName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | add, |
| | | remove, |
| | | update, |
| | | getLazyMenuList, |
| | | getMenu |
| | | } from "@/api/system/menu"; |
| | | import { |
| | | addDataScope, |
| | | removeDataScope, |
| | | updateDataScope, |
| | | getListDataScope, |
| | | getMenuDataScope |
| | | } from "@/api/system/scope"; |
| | | import {mapGetters} from "vuex"; |
| | | import iconList from "@/config/iconList"; |
| | | import func from "@/util/func"; |
| | | import { |
| | | add, |
| | | remove, |
| | | update, |
| | | getLazyMenuList, |
| | | getMenu, |
| | | } from "@/api/system/menu"; |
| | | import { |
| | | addDataScope, |
| | | removeDataScope, |
| | | updateDataScope, |
| | | getListDataScope, |
| | | getMenuDataScope, |
| | | } from "@/api/system/scope"; |
| | | import { mapGetters } from "vuex"; |
| | | import iconList from "@/config/iconList"; |
| | | import func from "@/util/func"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | parentId: 0, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | drawerVisible: false, |
| | | direction: 'rtl', |
| | | scopeMenuId: 0, |
| | | scopeMenuCode: '', |
| | | scopeMenuName: "菜单", |
| | | scopeLoading: false, |
| | | menu: true, |
| | | watchMode: true, |
| | | option: { |
| | | lazy: true, |
| | | tip: false, |
| | | simplePage: true, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | dialogWidth: "60%", |
| | | tree: true, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: false, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "菜单名称", |
| | | prop: "name", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单名称", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "路由地址", |
| | | prop: "path", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入路由地址", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "上级菜单", |
| | | prop: "parentId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/menu/tree", |
| | | hide: true, |
| | | props: { |
| | | label: "title" |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | parentId: 0, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | drawerVisible: false, |
| | | direction: "rtl", |
| | | scopeMenuId: 0, |
| | | scopeMenuCode: "", |
| | | scopeMenuName: "菜单", |
| | | scopeLoading: false, |
| | | menu: true, |
| | | watchMode: true, |
| | | option: { |
| | | lazy: true, |
| | | tip: false, |
| | | simplePage: true, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | dialogWidth: "60%", |
| | | tree: true, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: false, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "菜单名称", |
| | | prop: "name", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单名称", |
| | | trigger: "blur", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择上级菜单", |
| | | trigger: "click" |
| | | } |
| | | ] |
| | | ], |
| | | }, |
| | | { |
| | | label: "路由地址", |
| | | prop: "path", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入路由地址", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "上级菜单", |
| | | prop: "parentId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/menu/tree", |
| | | hide: true, |
| | | props: { |
| | | label: "title", |
| | | }, |
| | | { |
| | | label: "菜单图标", |
| | | prop: "source", |
| | | type: "icon", |
| | | slot: true, |
| | | width: 80, |
| | | iconList: iconList, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单图标", |
| | | trigger: "click" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单编号", |
| | | prop: "code", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单编号", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单类型", |
| | | prop: "category", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "菜单", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "按钮", |
| | | value: 2 |
| | | } |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择菜单类型", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单别名", |
| | | prop: "alias", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单别名", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "按钮功能", |
| | | prop: "action", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "工具栏", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "操作栏", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "工具操作栏", |
| | | value: 2 |
| | | } |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择按钮功能", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "菜单排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | width: 80, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单排序", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "新窗口", |
| | | prop: "isOpen", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1 |
| | | }, |
| | | ], |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "菜单备注", |
| | | prop: "remark", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 6, |
| | | hide: true |
| | | } |
| | | ] |
| | | }, |
| | | data: [], |
| | | formScope: {}, |
| | | selectionListScope: [], |
| | | pageScope: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | optionScope: { |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | menuWidth: 200, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "权限名称", |
| | | prop: "scopeName", |
| | | search: true, |
| | | value: "", |
| | | rules: [{ |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择上级菜单", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单图标", |
| | | prop: "source", |
| | | type: "icon", |
| | | slot: true, |
| | | width: 80, |
| | | iconList: iconList, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单图标", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单编号", |
| | | prop: "code", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单类型", |
| | | prop: "category", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "菜单", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "按钮", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择菜单类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单别名", |
| | | prop: "alias", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单别名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "按钮功能", |
| | | prop: "action", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "工具栏", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "操作栏", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "工具操作栏", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择按钮功能", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "菜单排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | width: 80, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入菜单排序", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "新窗口", |
| | | prop: "isOpen", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "菜单备注", |
| | | prop: "remark", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 6, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | formScope: {}, |
| | | selectionListScope: [], |
| | | pageScope: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | }, |
| | | optionScope: { |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | menuWidth: 200, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "权限名称", |
| | | prop: "scopeName", |
| | | search: true, |
| | | value: "", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限名称", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "权限编号", |
| | | prop: "resourceCode", |
| | | search: true, |
| | | width: 100, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "权限字段", |
| | | prop: "scopeColumn", |
| | | width: 130, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "规则类型", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=data_scope_type", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | trigger: "blur", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | width: 140, |
| | | prop: "scopeType", |
| | | rules: [{ |
| | | ], |
| | | }, |
| | | { |
| | | label: "权限编号", |
| | | prop: "resourceCode", |
| | | search: true, |
| | | width: 100, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "权限字段", |
| | | prop: "scopeColumn", |
| | | width: 130, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "规则类型", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=data_scope_type", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | width: 140, |
| | | prop: "scopeType", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入通知类型", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "可见字段", |
| | | prop: "scopeField", |
| | | span: 24, |
| | | hide: true, |
| | | value: "*", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "可见字段", |
| | | prop: "scopeField", |
| | | span: 24, |
| | | hide: true, |
| | | value: "*", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据权限可见的字段", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | { |
| | | label: "权限类名", |
| | | prop: "scopeClass", |
| | | span: 24, |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "权限类名", |
| | | prop: "scopeClass", |
| | | span: 24, |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入MybatisMapper对应方法的完整类名路径", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | { |
| | | label: "规则值", |
| | | prop: "scopeValue", |
| | | span: 24, |
| | | minRows: 5, |
| | | type: "textarea", |
| | | display: true, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | ] |
| | | }, |
| | | dataScope: [] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "规则值", |
| | | prop: "scopeValue", |
| | | span: 24, |
| | | minRows: 5, |
| | | type: "textarea", |
| | | display: true, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | dataScope: [], |
| | | }; |
| | | }, |
| | | watch: { |
| | | "formScope.scopeType"() { |
| | | this.initScope(); |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.menu_add, false), |
| | | viewBtn: this.vaildData(this.permission.menu_view, false), |
| | | delBtn: this.vaildData(this.permission.menu_delete, false), |
| | | editBtn: this.vaildData(this.permission.menu_edit, false), |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'formScope.scopeType'() { |
| | | this.initScope(); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.menu_add, false), |
| | | viewBtn: this.vaildData(this.permission.menu_view, false), |
| | | delBtn: this.vaildData(this.permission.menu_delete, false), |
| | | editBtn: this.vaildData(this.permission.menu_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | scopeIds() { |
| | | let ids = []; |
| | | this.selectionListScope.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | scopeIds() { |
| | | let ids = []; |
| | | this.selectionListScope.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | initScope() { |
| | | const scopeType = func.toInt(this.formScope.scopeType); |
| | | const watchMode = this.watchMode; |
| | | let column = "-", name = "暂无"; |
| | | if (scopeType === 1) { |
| | | column = "-"; |
| | | name = "全部可见"; |
| | | } else if (scopeType === 2) { |
| | | column = "create_user"; |
| | | name = "本人可见"; |
| | | } else if (scopeType === 3) { |
| | | column = "create_dept"; |
| | | name = "所在机构可见"; |
| | | } else if (scopeType === 4) { |
| | | column = "create_dept"; |
| | | name = "所在机构可见及子级可见"; |
| | | } else if (scopeType === 5) { |
| | | column = ""; |
| | | name = "自定义"; |
| | | }, |
| | | methods: { |
| | | initScope() { |
| | | const scopeType = func.toInt(this.formScope.scopeType); |
| | | const watchMode = this.watchMode; |
| | | let column = "-", |
| | | name = "暂无"; |
| | | if (scopeType === 1) { |
| | | column = "-"; |
| | | name = "全部可见"; |
| | | } else if (scopeType === 2) { |
| | | column = "create_user"; |
| | | name = "本人可见"; |
| | | } else if (scopeType === 3) { |
| | | column = "create_dept"; |
| | | name = "所在机构可见"; |
| | | } else if (scopeType === 4) { |
| | | column = "create_dept"; |
| | | name = "所在机构可见及子级可见"; |
| | | } else if (scopeType === 5) { |
| | | column = ""; |
| | | name = "自定义"; |
| | | } |
| | | this.$refs.crudScope.option.column.filter((item) => { |
| | | if (watchMode) { |
| | | if (item.prop === "scopeName") { |
| | | this.formScope.scopeName = `${this.scopeMenuName} [${name}]`; |
| | | } |
| | | if (item.prop === "resourceCode") { |
| | | this.formScope.resourceCode = this.scopeMenuCode; |
| | | } |
| | | if (item.prop === "scopeColumn") { |
| | | this.formScope.scopeColumn = column; |
| | | } |
| | | } |
| | | this.$refs.crudScope.option.column.filter(item => { |
| | | if (watchMode) { |
| | | if (item.prop === "scopeName") { |
| | | this.formScope.scopeName = `${this.scopeMenuName} [${name}]`; |
| | | } |
| | | if (item.prop === "resourceCode") { |
| | | this.formScope.resourceCode = this.scopeMenuCode; |
| | | } |
| | | if (item.prop === "scopeColumn") { |
| | | this.formScope.scopeColumn = column; |
| | | } |
| | | } |
| | | if (item.prop === "scopeValue") { |
| | | item.display = scopeType === 5; |
| | | } |
| | | }); |
| | | }, |
| | | // 菜单管理模块 |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | if (item.prop === "scopeValue") { |
| | | item.display = scopeType === 5; |
| | | } |
| | | }); |
| | | }, |
| | | // 菜单管理模块 |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.parentId = 0; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.parentId = ""; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.parentId = 0; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.parentId = ''; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getMenu(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => { |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getMenu(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getLazyMenuList(this.parentId, Object.assign(params, this.query)).then( |
| | | (res) => { |
| | | this.data = res.data.data; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | treeLoad(tree, treeNode, resolve) { |
| | | const parentId = tree.id; |
| | | getLazyMenuList(parentId).then(res => { |
| | | resolve(res.data.data); |
| | | }); |
| | | }, |
| | | // 数据权限模块 |
| | | handleDataScope(row) { |
| | | this.drawerVisible = true; |
| | | this.scopeMenuId = row.id; |
| | | this.scopeMenuCode = row.code; |
| | | this.scopeMenuName = row.name; |
| | | this.onLoadScope(this.pageScope) |
| | | }, |
| | | handleDrawerClose(hide) { |
| | | hide(); |
| | | }, |
| | | rowSaveScope(row, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | addDataScope(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | treeLoad(tree, treeNode, resolve) { |
| | | const parentId = tree.id; |
| | | getLazyMenuList(parentId).then((res) => { |
| | | resolve(res.data.data); |
| | | }); |
| | | }, |
| | | // 数据权限模块 |
| | | handleDataScope(row) { |
| | | this.drawerVisible = true; |
| | | this.scopeMenuId = row.id; |
| | | this.scopeMenuCode = row.code; |
| | | this.scopeMenuName = row.name; |
| | | this.onLoadScope(this.pageScope); |
| | | }, |
| | | handleDrawerClose(hide) { |
| | | hide(); |
| | | }, |
| | | rowSaveScope(row, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | addDataScope(row).then( |
| | | () => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdateScope(row, index, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | updateDataScope(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdateScope(row, index, done, loading) { |
| | | row = { |
| | | ...row, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | updateDataScope(row).then( |
| | | () => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowDelScope(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | } |
| | | ); |
| | | }, |
| | | rowDelScope(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeDataScope(row.id); |
| | | }) |
| | | .then(() => { |
| | | return removeDataScope(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | handleDeleteScope() { |
| | | if (this.selectionListScope.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return removeDataScope(this.scopeIds); |
| | | }) |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crudScope.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpenScope(done, type) { |
| | | if (["add"].includes(type)) { |
| | | this.watchMode = true; |
| | | this.initScope(); |
| | | } |
| | | if (["edit", "view"].includes(type)) { |
| | | this.watchMode = false; |
| | | getMenuDataScope(this.formScope.id).then(res => { |
| | | this.formScope = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchResetScope() { |
| | | this.onLoadScope(this.pageScope); |
| | | }, |
| | | searchChangeScope(params, done) { |
| | | this.onLoadScope(this.pageScope, params); |
| | | done(); |
| | | }, |
| | | selectionChangeScope(list) { |
| | | this.selectionListScope = list; |
| | | }, |
| | | currentChangeScope(currentPage) { |
| | | this.pageScope.currentPage = currentPage; |
| | | }, |
| | | sizeChangeScope(pageSize) { |
| | | this.pageScope.pageSize = pageSize; |
| | | }, |
| | | onLoadScope(page, params = {}) { |
| | | this.scopeLoading = true; |
| | | const values = { |
| | | ...params, |
| | | menuId: this.scopeMenuId, |
| | | } |
| | | getListDataScope(page.currentPage, page.pageSize, Object.assign(values, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.pageScope.total = data.total; |
| | | this.dataScope = data.records; |
| | | this.selectionListScope = []; |
| | | this.scopeLoading = false; |
| | | }); |
| | | }, |
| | | } |
| | | }; |
| | | }, |
| | | handleDeleteScope() { |
| | | if (this.selectionListScope.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeDataScope(this.scopeIds); |
| | | }) |
| | | .then(() => { |
| | | this.onLoadScope(this.pageScope); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crudScope.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpenScope(done, type) { |
| | | if (["add"].includes(type)) { |
| | | this.watchMode = true; |
| | | this.initScope(); |
| | | } |
| | | if (["edit", "view"].includes(type)) { |
| | | this.watchMode = false; |
| | | getMenuDataScope(this.formScope.id).then((res) => { |
| | | this.formScope = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchResetScope() { |
| | | this.onLoadScope(this.pageScope); |
| | | }, |
| | | searchChangeScope(params, done) { |
| | | this.onLoadScope(this.pageScope, params); |
| | | done(); |
| | | }, |
| | | selectionChangeScope(list) { |
| | | this.selectionListScope = list; |
| | | }, |
| | | currentChangeScope(currentPage) { |
| | | this.pageScope.currentPage = currentPage; |
| | | }, |
| | | sizeChangeScope(pageSize) { |
| | | this.pageScope.pageSize = pageSize; |
| | | }, |
| | | onLoadScope(page, params = {}) { |
| | | this.scopeLoading = true; |
| | | const values = { |
| | | ...params, |
| | | menuId: this.scopeMenuId, |
| | | }; |
| | | getListDataScope( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(values, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.pageScope.total = data.total; |
| | | this.dataScope = data.records; |
| | | this.selectionListScope = []; |
| | | this.scopeLoading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <basic-container class="hasButThree"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButThree', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | tip: false, |
| | |
| | | viewBtn: true, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "角色名称", |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-07-19 19:39:45 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 14:16:07 |
| | | * menu-name 报名考试 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-apply-exam"> |
| | | <el-col :span="24" class="hasButOne"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'hasButOne', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box" |
| | |
| | | size="small" |
| | | icon="el-icon-folder-checked" |
| | | v-if="row.isApply != 1 && permission.company_add" |
| | | :disabled="row.examinationType=='1'" |
| | | :disabled="row.examinationType == '1'" |
| | | @click="questionBankRowSave(row)" |
| | | >报名 |
| | | </el-button> |
| | |
| | | excelBtn: false, |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "审核状态", |
| | |
| | | excelBtn: false, |
| | | menuWidth: 320, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | |
| | | defaultExpandAll: true, |
| | | // 操作栏宽度 |
| | | menuWidth: 200, |
| | | |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | <template> |
| | | <basic-container class="desk1"> |
| | | <basic-container |
| | | :class="[ |
| | | 'desk1', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | | @click="handleUploadPage(row)" |
| | | <el-button |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | | @click="handleUploadPage(row)" |
| | | >附件上传 |
| | | </el-button> |
| | | <!-- <el-button |
| | |
| | | import { getListPage, remove, update, add, getNotice } from "@/api/desk/notice"; |
| | | import { getDept } from "@/api/system/dept"; |
| | | import { mapGetters } from "vuex"; |
| | | import { mapState } from 'vuex'; |
| | | import { mapState } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | saveBtnText: "发布", |
| | | menuWidth: 320, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "通知标题", |
| | |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | search: true, |
| | | searchSpan:6, |
| | | searchSpan: 6, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | return ids.join(","); |
| | | }, |
| | | ...mapState({ |
| | | userInfo: state => state.user.userInfo |
| | | }) |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | }, |
| | | mounted() { |
| | | this.getDeptInfo(this.userInfo.dept_id); |
| | |
| | | deptCategory == 1 |
| | | ? (that.deptCategory = true) |
| | | : (that.deptCategory = false); |
| | | |
| | | }); |
| | | }, |
| | | //跳转到附件列表页面 |
| | |
| | | rowSave(row, done, loading) { |
| | | if (this.deptCategory) { |
| | | row.category = 1; |
| | | }else{ |
| | | } else { |
| | | row.category = 2; |
| | | } |
| | | row['type'] = 1; |
| | | row["type"] = 1; |
| | | row.deptId = this.deptId; |
| | | add(row).then( |
| | | () => { |
| | |
| | | <template> |
| | | <basic-container class="desk1"> |
| | | <basic-container |
| | | :class="[ |
| | | 'desk1', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <!-- |
| | | :class="[ |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | :class="[ |
| | | 'dispatchChildoperable', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | :class="[ |
| | | 'securityUnit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | ...this.$store.state.control.clearOtherBut, |
| | | ...this.$store.state.control.changePageSize, |
| | | --> |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | | @click="handleUploadPage(row)" |
| | | <el-button |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | | @click="handleUploadPage(row)" |
| | | >附件上传 |
| | | </el-button> |
| | | <!-- <el-button |
| | |
| | | import { getListPage, remove, update, add, getNotice } from "@/api/desk/notice"; |
| | | import { getDept } from "@/api/system/dept"; |
| | | import { mapGetters } from "vuex"; |
| | | import { mapState } from 'vuex'; |
| | | import { mapState } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | saveBtnText: "发布", |
| | | menuWidth: 320, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "标题", |
| | |
| | | return ids.join(","); |
| | | }, |
| | | ...mapState({ |
| | | userInfo: state => state.user.userInfo |
| | | }) |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | }, |
| | | mounted() { |
| | | this.getDeptInfo(this.userInfo.dept_id); |
| | |
| | | deptCategory == 1 |
| | | ? (that.deptCategory = true) |
| | | : (that.deptCategory = false); |
| | | |
| | | }); |
| | | }, |
| | | //跳转到附件列表页面 |
| | |
| | | }); |
| | | }, |
| | | rowSave(row, done, loading) { |
| | | row['type'] = 3; |
| | | row["type"] = 3; |
| | | row.deptId = this.deptId; |
| | | add(row).then( |
| | | () => { |
| | |
| | | <template> |
| | | <basic-container class="desk1"> |
| | | <basic-container |
| | | :class="[ |
| | | 'desk1', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | | @click="handleUploadPage(row)" |
| | | <el-button |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.notice_upload" |
| | | @click="handleUploadPage(row)" |
| | | >附件上传 |
| | | </el-button> |
| | | <!-- <el-button |
| | |
| | | import { getListPage, remove, update, add, getNotice } from "@/api/desk/notice"; |
| | | import { getDept } from "@/api/system/dept"; |
| | | import { mapGetters } from "vuex"; |
| | | import { mapState } from 'vuex'; |
| | | import { mapState } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | saveBtnText: "发布", |
| | | menuWidth: 320, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "标题", |
| | |
| | | return ids.join(","); |
| | | }, |
| | | ...mapState({ |
| | | userInfo: state => state.user.userInfo |
| | | }) |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | }, |
| | | mounted() { |
| | | this.getDeptInfo(this.userInfo.dept_id); |
| | |
| | | deptCategory == 1 |
| | | ? (that.deptCategory = true) |
| | | : (that.deptCategory = false); |
| | | |
| | | }); |
| | | }, |
| | | //跳转到附件列表页面 |
| | |
| | | }); |
| | | }, |
| | | rowSave(row, done, loading) { |
| | | row['type'] = 2; |
| | | row["type"] = 2; |
| | | row.deptId = this.deptId; |
| | | add(row).then( |
| | | () => { |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="dispatch"> |
| | | <div |
| | | :class="[ |
| | | 'dispatch', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> |
| | | <span v-if="typeTABS.prop === 'tab1'"> --> |
| | | <avue-crud |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query: {}, |
| | | data: [], |
| | |
| | | menuWidth: 160, |
| | | align: "center", |
| | | selection: true, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | //派遣服务公司登记 |
| | | { |
| | | label: "派遣单位名称", |
| | | label: "派遣企业名称", |
| | | prop: "name", |
| | | search: true, |
| | | searchLabelWidth: 110, |
| | |
| | | searchSpan: 4, |
| | | overHidden: true, |
| | | labelWidth: 138, |
| | | parent:false, |
| | | parent: false, |
| | | type: "tree", |
| | | dicUrl: "/api/jurisdiction/lazy-tree", |
| | | props: { |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="dispatchChildoperable"> |
| | | <div |
| | | :class="[ |
| | | 'dispatchChildoperable', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | form: {}, |
| | | query1: {}, |
| | |
| | | // menuWidth: 160, |
| | | align: "center", |
| | | selection: true, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | // }, |
| | | { |
| | |
| | | width: 70, |
| | | labelWidth: 120, |
| | | hide: true, |
| | | defaultExpandAll:true, |
| | | defaultExpandAll: true, |
| | | // props: { |
| | | // label: "realName", |
| | | // value: "id", |
| | |
| | | value: "id", |
| | | }, |
| | | //不包含父节点值 |
| | | leafOnly:true, |
| | | leafOnly: true, |
| | | multiple: true, |
| | | rules: [ |
| | | { |
| | |
| | | if (this.useifid != 266) { |
| | | form["deptId"] = this.useifid; |
| | | } |
| | | console.log(form,123456); |
| | | form["ids"] = form.userIds.join(","), |
| | | delete form.userIds; |
| | | console.log(form,321); |
| | | console.log(form, 123456); |
| | | (form["ids"] = form.userIds.join(",")), delete form.userIds; |
| | | console.log(form, 321); |
| | | saveDispatcher(form).then( |
| | | (res) => { |
| | | this.onLoad(this.page); |
| | |
| | | this.onLoad(this.page, this.query1); |
| | | }, |
| | | |
| | | beforeOpen(done, type,row) { |
| | | beforeOpen(done, type, row) { |
| | | this.initFlag = true; |
| | | if(type=="edit"){ |
| | | console.log(row,123); |
| | | if (type == "edit") { |
| | | console.log(row, 123); |
| | | const userColumn = this.findObject(this.option.column, "userIds"); |
| | | userColumn.multiple = false; |
| | | userColumn.dicUrl = "/api/blade-user/security-dispatcher-tree?deptId="+this.userInfo.dept_id+"&id="+this.form.userIds+"&realName="+this.form.securityName; |
| | | userColumn.dicUrl = |
| | | "/api/blade-user/security-dispatcher-tree?deptId=" + |
| | | this.userInfo.dept_id + |
| | | "&id=" + |
| | | this.form.userIds + |
| | | "&realName=" + |
| | | this.form.securityName; |
| | | } |
| | | if(type=="add"){ |
| | | if (type == "add") { |
| | | const userColumn = this.findObject(this.option.column, "userIds"); |
| | | userColumn.multiple = true; |
| | | userColumn.dicUrl = "/api/blade-user/security-dispatcher-tree?deptId="+this.userInfo.dept_id; |
| | | userColumn.dicUrl = |
| | | "/api/blade-user/security-dispatcher-tree?deptId=" + |
| | | this.userInfo.dept_id; |
| | | } |
| | | done(); |
| | | }, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="dispatchChildoperable"> |
| | | <div |
| | | :class="[ |
| | | 'dispatchChildoperable', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option1" |
| | | :data="data1" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | form: {}, |
| | | query1: {}, |
| | |
| | | // menuWidth: 160, |
| | | align: "center", |
| | | selection: true, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | // }, |
| | | { |
| | |
| | | } |
| | | }, |
| | | { |
| | | label: "派遣单位名称", |
| | | label: "派遣企业名称", |
| | | prop: "name", |
| | | span: 11, |
| | | labelWidth: 130, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | if (i == 1) { |
| | | // console.log("存在"); |
| | | } else { |
| | | |
| | | this.obj0 = {}; |
| | | this.obj0.name = row.name + " 该派遣单位已删除"; |
| | | window.localStorage.removeItem("paqiandata"); |
| | |
| | | viewBtn: true, |
| | | defaultExpandAll: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "题目名称", |
| | |
| | | viewBtn: true, |
| | | defaultExpandAll: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "题目名称", |
| | |
| | | viewBtn: true, |
| | | defaultExpandAll: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "题目名称", |
| | |
| | | viewBtn: true, |
| | | defaultExpandAll: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "题目名称", |
| | |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-09-28 11:45:28 |
| | | * @Last Modified time: 2021-11-23 14:20:02 |
| | | * menu-name 考试缴费管理 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box"> |
| | | <el-col :span="24" class="recruitmentManagement"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'recruitmentManagement', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box" |
| | |
| | | menu: true, |
| | | menuWidth: 186, |
| | | labelWidth: 120, |
| | | |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | // { |
| | | // label: "缴费类型", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-10-25 15:10:09 |
| | | * @Last Modified time: 2021-11-23 14:17:22 |
| | | * menu-name 成绩管理 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box"> |
| | | <el-col :span="24" class="recruitmentManagement"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'recruitmentManagement', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box" |
| | |
| | | menu: true, |
| | | menuWidth: 186, |
| | | labelWidth: 120, |
| | | |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "考试名称", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-07-18 21:02:10 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 14:18:07 |
| | | * menu-name 成绩查看 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-score"> |
| | | <el-col :span="24"> |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box" |
| | |
| | | {{ row.learnGrade == -1 ? "" : row.allGrade }} |
| | | </template> |
| | | <template slot-scope="{ row }" slot="qualified"> |
| | | {{ row.learnGrade == -1 ? "" : row.qualified == 0?"合格":row.qualified==1?"不合格":'' }} |
| | | {{ |
| | | row.learnGrade == -1 |
| | | ? "" |
| | | : row.qualified == 0 |
| | | ? "合格" |
| | | : row.qualified == 1 |
| | | ? "不合格" |
| | | : "" |
| | | }} |
| | | </template> |
| | | |
| | | <template slot-scope="{ row }" slot="menu"> |
| | |
| | | size="mini" |
| | | icon="el-icon-collection" |
| | | class="start-kaoshi" |
| | | :disabled="row.qualified==1" |
| | | :disabled="row.qualified == 1" |
| | | v-if="permission.singleperformance_print" |
| | | @click="securityPrint(row)" |
| | | >保安证打印 |
| | |
| | | menu: true, |
| | | menuWidth: 136, |
| | | labelWidth: 120, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "考试名称", |
| | |
| | | search: true, |
| | | searchSpan: 4, |
| | | slot: true, |
| | | viewDisplay:false, |
| | | viewDisplay: false, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | |
| | | }, |
| | | ], |
| | | // overHidden:true, |
| | | width:230, |
| | | width: 230, |
| | | }, |
| | | { |
| | | label: "用户名", |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width:160, |
| | | width: 160, |
| | | }, |
| | | { |
| | | label: "所属公司", |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width:250, |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: "考试开始时间", |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: "总成绩", |
| | | prop: "allGrade", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入考试名称", |
| | | trigger: "blur" |
| | | }] |
| | | label: "总成绩", |
| | | prop: "allGrade", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入考试名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "是否合格", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | | }; |
| | | }, |
| | | computed:{ |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | |
| | | viewBtn: this.vaildData(null, false), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData(this.permission.user_edit, false), |
| | | excelBtn: this.vaildData(this.permission.singleperformance_export, false), |
| | | excelBtn: this.vaildData( |
| | | this.permission.singleperformance_export, |
| | | false |
| | | ), |
| | | }; |
| | | }, |
| | | }, |
| | |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if ( |
| | | roleAlias == "保安公司管理员" || |
| | | roleAlias == "保安" || |
| | | roleAlias == "未持证保安" |
| | | ) { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | } |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if ( |
| | | roleAlias == "保安公司管理员" || |
| | | roleAlias == "保安" || |
| | | roleAlias == "未持证保安" |
| | | ) { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | } |
| | | that.questionBankLoading = false; |
| | | params["examType"] = 1; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | that.questionBankPage.total = data.total; |
| | | that.questionBankData = data.records; |
| | | that.questionBankLoading = false; |
| | | params["examType"] = 1; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | that.questionBankPage.total = data.total; |
| | | that.questionBankData = data.records; |
| | | that.questionBankLoading = false; |
| | | that.questionBankSelectionClear(); |
| | | }); |
| | | }) |
| | | that.questionBankSelectionClear(); |
| | | }); |
| | | }); |
| | | }); |
| | | |
| | | }, |
| | | questionBankSelectionClear() { |
| | | this.questionBankSelectionList = []; |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-07-18 17:09:52 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 14:16:42 |
| | | * menu-name 考试管理 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-paper"> |
| | | <el-col :span="24"> |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="form" |
| | | class="company-box" |
| | |
| | | |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | style="display:none" |
| | | style="display: none" |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | |
| | | menuWidth: 280, |
| | | |
| | | labelWidth: 140, |
| | | |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "考试名称", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | methods: { |
| | | questionBankOnLoad(page, params = {}) { |
| | | this.questionBankLoading = false; |
| | | params['examType'] = 1; |
| | | params["examType"] = 1; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | |
| | | }, |
| | | // 新增 |
| | | questionBankRowSave(row, done, loading) { |
| | | row.startTime = row.startTime+":00"; |
| | | row['examType'] = 1; |
| | | row.startTime = row.startTime + ":00"; |
| | | row["examType"] = 1; |
| | | // row.endTime = row.examTime[1]; |
| | | // row.examTime = JSON.stringify(row.examTime); |
| | | add(row).then( |
| | |
| | | // if (Array.isArray(row.examTime) != true) { |
| | | // row.examTime = row.examTime.split(","); |
| | | // } |
| | | row.startTime = row.startTime+":00"; |
| | | row.startTime = row.startTime + ":00"; |
| | | // row.endTime = row.examTime[1]; |
| | | // row.examTime = JSON.stringify(row.examTime); |
| | | update(row).then( |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-07-18 16:04:26 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 14:14:38 |
| | | * menu-name 题库查询 |
| | | */ |
| | | <template> |
| | |
| | | <el-row class="morpheus-box"> |
| | | <el-col :span="24"> |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | class="company-box" |
| | | :option="questionBankOption" |
| | |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.subject_delete" |
| | | v-if="permission.subject_delete" |
| | | @click="questionBankHandleDelete" |
| | | >删 除 |
| | | </el-button> |
| | |
| | | type="text" |
| | | size="mini" |
| | | icon="el-icon-edit" |
| | | v-if="permission.subject_edit" |
| | | v-if="permission.subject_edit" |
| | | @click="questionBankHandleAdd(row)" |
| | | >编辑 |
| | | </el-button> |
| | |
| | | type="text" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | v-if="permission.subject_delete" |
| | | v-if="permission.subject_delete" |
| | | @click="questionBankHandleDel(row)" |
| | | >删除 |
| | | </el-button> |
| | |
| | | dialogClickModal: false, |
| | | // 操作栏宽度 |
| | | menuWidth: 226, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "题目名称", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <template slot-scope="{row}" |
| | | slot="suspensionState"> |
| | | <el-tag>{{row.suspensionState===1?'激活':'挂起'}}</el-tag> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot-scope="{ row }" slot="suspensionState"> |
| | | <el-tag>{{ row.suspensionState === 1 ? "激活" : "挂起" }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="流程删除" |
| | | append-to-body |
| | | :visible.sync="followBox" |
| | | width="20%"> |
| | | <el-form :model="form" |
| | | ref="form" |
| | | label-width="80px"> |
| | | <el-dialog |
| | | title="流程删除" |
| | | append-to-body |
| | | :visible.sync="followBox" |
| | | width="20%" |
| | | > |
| | | <el-form :model="form" ref="form" label-width="80px"> |
| | | <el-form-item label="删除理由"> |
| | | <el-input v-model="deleteReason" |
| | | placeholder="请输入删除理由" /> |
| | | <el-input v-model="deleteReason" placeholder="请输入删除理由" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="followBox = false">关 闭</el-button> |
| | | <el-button type="primary" |
| | | @click="handleDelete">确 定</el-button> |
| | | <el-button type="primary" @click="handleDelete">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import {followList, deleteProcessInstance} from "@/api/flow/flow"; |
| | | import { mapGetters } from "vuex"; |
| | | import { followList, deleteProcessInstance } from "@/api/flow/flow"; |
| | | |
| | | export default { |
| | | data() { |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionId: "", |
| | | processInstanceId: "", |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | followBox: false, |
| | | deleteReason: "", |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 100, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "执行id", |
| | | prop: "executionId", |
| | | search: true, |
| | | width: 320, |
| | | }, |
| | | { |
| | | label: "流程key", |
| | | prop: "processDefinitionKey", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "实例id", |
| | | prop: "processInstanceId", |
| | | search: true, |
| | | width: 320, |
| | | }, |
| | | { |
| | | label: "状态", |
| | | prop: "suspensionState", |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "发起人", |
| | | prop: "startUser", |
| | | width: 100, |
| | | }, |
| | | { |
| | | label: "开始时间", |
| | | prop: "startTime", |
| | | width: 165, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | form: {}, |
| | | selectionId: '', |
| | | processInstanceId: '', |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | followBox: false, |
| | | deleteReason: '', |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 100, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "执行id", |
| | | prop: "executionId", |
| | | search: true, |
| | | width: 320, |
| | | }, |
| | | { |
| | | label: "流程key", |
| | | prop: "processDefinitionKey", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "实例id", |
| | | prop: "processInstanceId", |
| | | search: true, |
| | | width: 320, |
| | | }, |
| | | { |
| | | label: "状态", |
| | | prop: "suspensionState", |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "发起人", |
| | | prop: "startUser", |
| | | width: 100, |
| | | }, |
| | | { |
| | | label: '开始时间', |
| | | prop: 'startTime', |
| | | width: 165, |
| | | }, |
| | | ] |
| | | }, |
| | | data: [] |
| | | delBtn: this.vaildData(this.permission.flow_follow_delete, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | delBtn: this.vaildData(this.permission.flow_follow_delete, false), |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | rowDel(row) { |
| | | this.followBox = true; |
| | | this.selectionId = row.id; |
| | | this.processInstanceId = row.processInstanceId; |
| | | }, |
| | | handleDelete() { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return deleteProcessInstance({deleteReason: this.deleteReason, processInstanceId: this.processInstanceId}); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.followBox = false; |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }, |
| | | methods: { |
| | | rowDel(row) { |
| | | this.followBox = true; |
| | | this.selectionId = row.id; |
| | | this.processInstanceId = row.processInstanceId; |
| | | }, |
| | | handleDelete() { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return deleteProcessInstance({ |
| | | deleteReason: this.deleteReason, |
| | | processInstanceId: this.processInstanceId, |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | followList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.followBox = false; |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | followList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-radio-group v-model="mode" size="small"> |
| | | <el-radio-button label="1">通用流程</el-radio-button> |
| | |
| | | </el-radio-group> |
| | | </template> |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_manager_state" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleState(scope.row,scope.index)">变更状态 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_manager_state" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleState(scope.row, scope.index)" |
| | | >变更状态 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_manager_image" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleImage(scope.row,scope.index)">流程图 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_manager_image" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleImage(scope.row, scope.index)" |
| | | >流程图 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_manager_remove" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleSlotDelete(scope.row,scope.index)">删除 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_manager_remove" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleSlotDelete(scope.row, scope.index)" |
| | | >删除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="tenantId"> |
| | | <el-tag>{{row.tenantId===''?'通用':row.tenantId}}</el-tag> |
| | | <template slot-scope="{ row }" slot="tenantId"> |
| | | <el-tag>{{ row.tenantId === "" ? "通用" : row.tenantId }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="version"> |
| | | <el-tag>v{{row.version}}</el-tag> |
| | | <template slot-scope="{ row }" slot="version"> |
| | | <el-tag>v{{ row.version }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="suspensionState"> |
| | | <el-tag>{{row.suspensionState===1?'激活':'挂起'}}</el-tag> |
| | | <template slot-scope="{ row }" slot="suspensionState"> |
| | | <el-tag>{{ row.suspensionState === 1 ? "激活" : "挂起" }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="category"> |
| | | <el-tag>{{row.categoryName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="category"> |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="流程图" |
| | | append-to-body |
| | | :visible.sync="flowBox" |
| | | :fullscreen="true"> |
| | | <el-dialog |
| | | title="流程图" |
| | | append-to-body |
| | | :visible.sync="flowBox" |
| | | :fullscreen="true" |
| | | > |
| | | <iframe |
| | | :src=flowUrl |
| | | :src="flowUrl" |
| | | width="100%" |
| | | height="700" |
| | | title="流程图" |
| | |
| | | marginWidth="0" |
| | | marginHeight="0" |
| | | scrolling="no" |
| | | allowTransparency="yes"> |
| | | allowTransparency="yes" |
| | | > |
| | | </iframe> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="flowBox = false">关 闭</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="流程变更" |
| | | append-to-body |
| | | :visible.sync="stateBox" |
| | | width="20%"> |
| | | <el-form :model="form" |
| | | ref="form" |
| | | label-width="80px"> |
| | | <el-dialog |
| | | title="流程变更" |
| | | append-to-body |
| | | :visible.sync="stateBox" |
| | | width="20%" |
| | | > |
| | | <el-form :model="form" ref="form" label-width="80px"> |
| | | <el-form-item label="流程状态"> |
| | | <el-select v-model="flowState" placeholder="请选择" value=""> |
| | | <el-option |
| | | v-for="item in stateOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="stateBox = false">关 闭</el-button> |
| | | <el-button type="primary" |
| | | @click="handleDoState">确 定</el-button> |
| | | <el-button type="primary" @click="handleDoState">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import {managerList, changeState, deleteDeployment} from "@/api/flow/flow"; |
| | | import {flowCategory} from "@/util/flow"; |
| | | import { mapGetters } from "vuex"; |
| | | import { managerList, changeState, deleteDeployment } from "@/api/flow/flow"; |
| | | import { flowCategory } from "@/util/flow"; |
| | | |
| | | export default { |
| | | data() { |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | mode: "1", |
| | | selectionId: "", |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | flowBox: false, |
| | | flowUrl: "", |
| | | stateBox: false, |
| | | flowState: "", |
| | | stateOptions: [ |
| | | { |
| | | value: "active", |
| | | label: "激活", |
| | | }, |
| | | { |
| | | value: "suspend", |
| | | label: "挂起", |
| | | }, |
| | | ], |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | delBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "保安单位编号", |
| | | prop: "tenantId", |
| | | slot: true, |
| | | width: 120, |
| | | }, |
| | | { |
| | | label: "流程主键", |
| | | prop: "id", |
| | | }, |
| | | { |
| | | label: "流程标识", |
| | | prop: "key", |
| | | search: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "流程名称", |
| | | prop: "name", |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "流程分类", |
| | | type: "select", |
| | | row: true, |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=flow", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "category", |
| | | search: true, |
| | | width: 100, |
| | | }, |
| | | { |
| | | label: "流程版本", |
| | | prop: "version", |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "状态", |
| | | prop: "suspensionState", |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "部署时间", |
| | | prop: "deploymentTime", |
| | | width: 165, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | watch: { |
| | | mode() { |
| | | this.onLoad(this.page); |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | form: {}, |
| | | mode: '1', |
| | | selectionId: '', |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | flowBox: false, |
| | | flowUrl: '', |
| | | stateBox: false, |
| | | flowState: '', |
| | | stateOptions: [{ |
| | | value: 'active', |
| | | label: '激活' |
| | | }, { |
| | | value: 'suspend', |
| | | label: '挂起' |
| | | }], |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | delBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: '保安单位编号', |
| | | prop: 'tenantId', |
| | | slot: true, |
| | | width: 120, |
| | | }, |
| | | { |
| | | label: '流程主键', |
| | | prop: 'id', |
| | | }, |
| | | { |
| | | label: '流程标识', |
| | | prop: 'key', |
| | | search: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '流程名称', |
| | | prop: 'name', |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "流程分类", |
| | | type: "select", |
| | | row: true, |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=flow", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "category", |
| | | search: true, |
| | | width: 100, |
| | | }, |
| | | { |
| | | label: '流程版本', |
| | | prop: 'version', |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: '状态', |
| | | prop: 'suspensionState', |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: '部署时间', |
| | | prop: 'deploymentTime', |
| | | width: 165, |
| | | }, |
| | | ] |
| | | }, |
| | | data: [] |
| | | delBtn: this.vaildData(this.permission.flow_manager_remove, false), |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'mode'() { |
| | | this.onLoad(this.page); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | delBtn: this.vaildData(this.permission.flow_manager_remove, false), |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | deploymentIds() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.deploymentId); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | deploymentIds() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.deploymentId); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return deleteDeployment(this.deploymentIds); |
| | | }) |
| | | .then(() => { |
| | | return deleteDeployment(this.deploymentIds); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleSlotDelete(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return deleteDeployment(row.deploymentId); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleState(row) { |
| | | this.stateBox = true; |
| | | this.selectionId = row.id; |
| | | }, |
| | | handleDoState() { |
| | | if (!this.flowState) { |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "warn", |
| | | message: "请先选择流程状态!" |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | return; |
| | | } |
| | | changeState({processId: this.selectionId, state: this.flowState}).then(res => { |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleSlotDelete(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return deleteDeployment(row.deploymentId); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleState(row) { |
| | | this.stateBox = true; |
| | | this.selectionId = row.id; |
| | | }, |
| | | handleDoState() { |
| | | if (!this.flowState) { |
| | | this.$message({ |
| | | type: "warn", |
| | | message: "请先选择流程状态!", |
| | | }); |
| | | return; |
| | | } |
| | | changeState({ processId: this.selectionId, state: this.flowState }).then( |
| | | (res) => { |
| | | const data = res.data; |
| | | if (data.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: data.msg |
| | | message: data.msg, |
| | | }); |
| | | this.stateBox = false; |
| | | this.onLoad(this.page); |
| | | } else { |
| | | this.$message({ |
| | | type: "warn", |
| | | message: data.msg |
| | | message: data.msg, |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | handleImage(row) { |
| | | this.flowUrl = `/api/blade-flow/process/resource-view?processDefinitionId=${row.id}`; |
| | | this.flowBox = true; |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | const values = { |
| | | ...params, |
| | | category: (params.category) ? flowCategory(params.category) : null, |
| | | mode: this.mode |
| | | }; |
| | | this.loading = true; |
| | | managerList(page.currentPage, page.pageSize, Object.assign(values, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | ); |
| | | }, |
| | | handleImage(row) { |
| | | this.flowUrl = `/api/blade-flow/process/resource-view?processDefinitionId=${row.id}`; |
| | | this.flowBox = true; |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | const values = { |
| | | ...params, |
| | | category: params.category ? flowCategory(params.category) : null, |
| | | mode: this.mode, |
| | | }; |
| | | this.loading = true; |
| | | managerList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(values, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="primary" |
| | | size="small" |
| | | icon="el-icon-circle-plus" |
| | | v-if="permission.flow_model_create" |
| | | plain |
| | | @click="handleCreate">创 建 |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-circle-plus" |
| | | v-if="permission.flow_model_create" |
| | | plain |
| | | @click="handleCreate" |
| | | >创 建 |
| | | </el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_update" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleUpdate(scope.row,scope.index)">配置 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_update" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleUpdate(scope.row, scope.index)" |
| | | >配置 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_deploy" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleDeploy(scope.row,scope.index)">部署 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_deploy" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleDeploy(scope.row, scope.index)" |
| | | >部署 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_download" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleDownload(scope.row,scope.index)">下载 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_download" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleDownload(scope.row, scope.index)" |
| | | >下载 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleSlotDelete(scope.row,scope.index)">删除 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleSlotDelete(scope.row, scope.index)" |
| | | >删除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="version"> |
| | | <el-tag>v{{row.version}}</el-tag> |
| | | <template slot-scope="{ row }" slot="version"> |
| | | <el-tag>v{{ row.version }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="流程配置" |
| | | append-to-body |
| | | :visible.sync="flowBox" |
| | | :fullscreen="true"> |
| | | <el-dialog |
| | | title="流程配置" |
| | | append-to-body |
| | | :visible.sync="flowBox" |
| | | :fullscreen="true" |
| | | > |
| | | <iframe |
| | | :src=flowUrl |
| | | :src="flowUrl" |
| | | width="100%" |
| | | height="700" |
| | | title="流程设计器" |
| | |
| | | marginWidth="0" |
| | | marginHeight="0" |
| | | scrolling="no" |
| | | allowTransparency="yes"> |
| | | allowTransparency="yes" |
| | | > |
| | | </iframe> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="flowBox = false">取 消</el-button> |
| | | <el-button type="primary" @click="handleRefresh">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="流程部署" |
| | | append-to-body |
| | | :visible.sync="deployBox" |
| | | width="20%"> |
| | | <avue-form ref="form" :option="optionDeploy" v-model="form" @submit="handleSubmit"/> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-dialog |
| | | title="流程部署" |
| | | append-to-body |
| | | :visible.sync="deployBox" |
| | | width="20%" |
| | | > |
| | | <avue-form |
| | | ref="form" |
| | | :option="optionDeploy" |
| | | v-model="form" |
| | | @submit="handleSubmit" |
| | | /> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deployBox = false">取 消</el-button> |
| | | <el-button type="primary" @click="handleDoDeploy" :loading="deployLoading">确 定</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="handleDoDeploy" |
| | | :loading="deployLoading" |
| | | >确 定</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import website from '@/config/website'; |
| | | import {modelList, removeModel, deployModel} from "@/api/flow/flow"; |
| | | import {flowCategory} from "@/util/flow"; |
| | | import { mapGetters } from "vuex"; |
| | | import website from "@/config/website"; |
| | | import { modelList, removeModel, deployModel } from "@/api/flow/flow"; |
| | | import { flowCategory } from "@/util/flow"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | optionDeploy: { |
| | | menuBtn: false, |
| | | column: [ |
| | | { |
| | | label: "流程类型", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=flow", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "categoryValue", |
| | | search: true, |
| | | span: 24, |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | optionDeploy: { |
| | | menuBtn: false, |
| | | column: [ |
| | | { |
| | | label: "流程类型", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=flow", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "categoryValue", |
| | | search: true, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择流程类型", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "流程模式", |
| | | prop: "flowMode", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "通用流程", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "定制流程", |
| | | value: 2 |
| | | } |
| | | ], |
| | | value: 1, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请选择流程模式', |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | multiple: true, |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId" |
| | | trigger: "blur", |
| | | }, |
| | | display: false, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请选择所属保安单位', |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | | ], |
| | | }, |
| | | { |
| | | label: "流程模式", |
| | | prop: "flowMode", |
| | | type: "radio", |
| | | dicData: [ |
| | | { |
| | | label: "通用流程", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "定制流程", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | value: 1, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择流程模式", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | multiple: true, |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId", |
| | | }, |
| | | ], |
| | | }, |
| | | selectionId: '', |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | deployLoading: false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | deployBox: false, |
| | | flowBox: false, |
| | | flowUrl: '', |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | delBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: '模型主键', |
| | | prop: 'id', |
| | | }, |
| | | { |
| | | label: '模型标识', |
| | | prop: 'modelKey', |
| | | search: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '模型名称', |
| | | prop: 'name', |
| | | search: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '流程版本', |
| | | prop: 'version', |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: '创建时间', |
| | | prop: 'created', |
| | | width: 165, |
| | | }, |
| | | { |
| | | label: '更新时间', |
| | | prop: 'lastUpdated', |
| | | width: 165, |
| | | }, |
| | | ] |
| | | }, |
| | | data: [] |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'form.flowMode'() { |
| | | this.$refs.form.option.column.filter(item => { |
| | | if (item.prop === "tenantId") { |
| | | item.display = this.form.flowMode === 2; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | }, |
| | | methods: { |
| | | handleSubmit(form, done) { |
| | | this.deployLoading = true; |
| | | deployModel({ |
| | | modelId: this.selectionId, |
| | | category: flowCategory(form.categoryValue), |
| | | tenantIds: form.tenantId.join(",") |
| | | }).then(res => { |
| | | const data = res.data; |
| | | if (data.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: data.msg |
| | | }); |
| | | done(); |
| | | this.$refs.form.resetForm(); |
| | | this.deployBox = false; |
| | | this.deployLoading = false; |
| | | } else { |
| | | done(); |
| | | this.deployLoading = false; |
| | | this.$message({ |
| | | type: "warn", |
| | | message: data.msg |
| | | }); |
| | | } |
| | | }) |
| | | display: false, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属保安单位", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | selectionId: "", |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | deployLoading: false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | deployBox: false, |
| | | flowBox: false, |
| | | flowUrl: "", |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | delBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "模型主键", |
| | | prop: "id", |
| | | }, |
| | | { |
| | | label: "模型标识", |
| | | prop: "modelKey", |
| | | search: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "模型名称", |
| | | prop: "name", |
| | | search: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "流程版本", |
| | | prop: "version", |
| | | slot: true, |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "创建时间", |
| | | prop: "created", |
| | | width: 165, |
| | | }, |
| | | { |
| | | label: "更新时间", |
| | | prop: "lastUpdated", |
| | | width: 165, |
| | | }, |
| | | ], |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | data: [], |
| | | }; |
| | | }, |
| | | watch: { |
| | | "form.flowMode"() { |
| | | this.$refs.form.option.column.filter((item) => { |
| | | if (item.prop === "tenantId") { |
| | | item.display = this.form.flowMode === 2; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return removeModel(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | }, |
| | | methods: { |
| | | handleSubmit(form, done) { |
| | | this.deployLoading = true; |
| | | deployModel({ |
| | | modelId: this.selectionId, |
| | | category: flowCategory(form.categoryValue), |
| | | tenantIds: form.tenantId.join(","), |
| | | }).then((res) => { |
| | | const data = res.data; |
| | | if (data.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: data.msg, |
| | | }); |
| | | }, |
| | | handleCreate() { |
| | | this.flowUrl = `${website.flowDesignUrl}/index.html`; |
| | | this.flowBox = true; |
| | | }, |
| | | handleUpdate(row) { |
| | | this.flowUrl = `${website.flowDesignUrl}/index.html#/editor/${row.id}`; |
| | | this.flowBox = true; |
| | | }, |
| | | handleDeploy(row) { |
| | | this.deployBox = true; |
| | | this.selectionId = row.id; |
| | | }, |
| | | handleDoDeploy() { |
| | | this.$refs.form.submit(); |
| | | }, |
| | | handleDownload(row) { |
| | | window.open(`${website.flowDesignUrl}/app/rest/models/${row.id}/bpmn20`); |
| | | }, |
| | | handleSlotDelete(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return removeModel(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | done(); |
| | | this.$refs.form.resetForm(); |
| | | this.deployBox = false; |
| | | this.deployLoading = false; |
| | | } else { |
| | | done(); |
| | | this.deployLoading = false; |
| | | this.$message({ |
| | | type: "warn", |
| | | message: data.msg, |
| | | }); |
| | | }, |
| | | handleRefresh() { |
| | | this.flowBox = false; |
| | | this.onLoad(this.page); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | modelList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | } |
| | | }; |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeModel(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleCreate() { |
| | | this.flowUrl = `${website.flowDesignUrl}/index.html`; |
| | | this.flowBox = true; |
| | | }, |
| | | handleUpdate(row) { |
| | | this.flowUrl = `${website.flowDesignUrl}/index.html#/editor/${row.id}`; |
| | | this.flowBox = true; |
| | | }, |
| | | handleDeploy(row) { |
| | | this.deployBox = true; |
| | | this.selectionId = row.id; |
| | | }, |
| | | handleDoDeploy() { |
| | | this.$refs.form.submit(); |
| | | }, |
| | | handleDownload(row) { |
| | | window.open(`${website.flowDesignUrl}/app/rest/models/${row.id}/bpmn20`); |
| | | }, |
| | | handleSlotDelete(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeModel(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleRefresh() { |
| | | this.flowBox = false; |
| | | this.onLoad(this.page); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | modelList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | </style> |
| | |
| | | * @Author: liu |
| | | * @Date: 2021-08-26 17:00:55 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-05 14:51:45 |
| | | * @Last Modified time: 2021-11-23 14:41:23 |
| | | */ |
| | | |
| | | |
| | | <template> |
| | | <div> |
| | | <basic-container class="permit"> |
| | | <basic-container |
| | | :class="[ |
| | | 'permit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | data: [], |
| | | userData: "", |
| | |
| | | |
| | | <template> |
| | | <div> |
| | | <basic-container class="permit"> |
| | | <basic-container |
| | | :class="[ |
| | | 'permit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | data: [], |
| | | userData: "", |
| | |
| | | |
| | | <template> |
| | | <div> |
| | | <basic-container class="permit"> |
| | | <basic-container |
| | | :class="[ |
| | | 'permit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | data: [], |
| | | userData: "", |
| | |
| | | |
| | | <template> |
| | | <div> |
| | | <basic-container class="permit"> |
| | | <basic-container |
| | | :class="[ |
| | | 'permit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | data: [], |
| | | |
| | |
| | | |
| | | <template> |
| | | <div> |
| | | <basic-container class="permit"> |
| | | <basic-container |
| | | :class="[ |
| | | 'permit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | data: [], |
| | | |
| | |
| | | |
| | | <template> |
| | | <div> |
| | | <basic-container class="permit"> |
| | | <basic-container |
| | | :class="[ |
| | | 'permit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | data: [], |
| | | userData: "", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | detailFlag: false, |
| | | loading: true, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | detailFlag: false, |
| | | loading: true, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | detailFlag: false, |
| | | loading: true, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getApiList, getApiLogs} from "@/api/logs"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getApiList, getApiLogs } from "@/api/logs"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 120, |
| | | dialogType: "drawer", |
| | | column: [ |
| | | { |
| | | label: "服务id", |
| | | prop: "serviceId", |
| | | width: "120", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "服务host", |
| | | prop: "serverHost", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "服务ip", |
| | | prop: "serverIp", |
| | | width: "160", |
| | | }, |
| | | { |
| | | label: "软件环境", |
| | | prop: "env", |
| | | width: "80", |
| | | }, |
| | | { |
| | | label: "日志名", |
| | | prop: "title", |
| | | }, |
| | | { |
| | | label: "请求方法", |
| | | prop: "method", |
| | | width: "80", |
| | | }, |
| | | { |
| | | label: "请求接口", |
| | | prop: "requestUri", |
| | | }, |
| | | { |
| | | label: "日志时间", |
| | | prop: "createTime", |
| | | width: "180", |
| | | }, |
| | | { |
| | | label: "用户代理", |
| | | prop: "userAgent", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "请求数据", |
| | | prop: "params", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 120, |
| | | dialogType: 'drawer', |
| | | column: [ |
| | | { |
| | | label: "服务id", |
| | | prop: "serviceId", |
| | | width:'120', |
| | | search: true |
| | | }, |
| | | { |
| | | label: "服务host", |
| | | prop: "serverHost", |
| | | search: true |
| | | }, |
| | | { |
| | | label: "服务ip", |
| | | prop: "serverIp", |
| | | width:'160' |
| | | }, |
| | | { |
| | | label: "软件环境", |
| | | prop: "env", |
| | | width:'80', |
| | | }, |
| | | { |
| | | label: "日志名", |
| | | prop: "title" |
| | | }, |
| | | { |
| | | label: "请求方法", |
| | | prop: "method", |
| | | width:'80' |
| | | }, |
| | | { |
| | | label: "请求接口", |
| | | prop: "requestUri" |
| | | }, |
| | | { |
| | | label: "日志时间", |
| | | prop: "createTime", |
| | | width:'180' |
| | | }, |
| | | { |
| | | label: "用户代理", |
| | | prop: "userAgent", |
| | | span: 24, |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "请求数据", |
| | | prop: "params", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true |
| | | } |
| | | ] |
| | | }, |
| | | data: [] |
| | | viewBtn: this.vaildData(this.permission.log_api_view, false), |
| | | }; |
| | | }, |
| | | |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | viewBtn: this.vaildData(this.permission.log_api_view, false) |
| | | }; |
| | | } |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getApiLogs(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage){ |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize){ |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getApiList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getApiLogs(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getApiList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getErrorList, getErrorLogs} from "@/api/logs"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getErrorList, getErrorLogs } from "@/api/logs"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 120, |
| | | dialogType: "drawer", |
| | | column: [ |
| | | { |
| | | label: "服务id", |
| | | prop: "serviceId", |
| | | search: true, |
| | | width: "120", |
| | | }, |
| | | { |
| | | label: "服务host", |
| | | prop: "serverHost", |
| | | search: true, |
| | | width: "150", |
| | | }, |
| | | { |
| | | label: "服务ip", |
| | | prop: "serverIp", |
| | | width: "160", |
| | | }, |
| | | { |
| | | label: "软件环境", |
| | | prop: "env", |
| | | width: "80", |
| | | }, |
| | | { |
| | | label: "请求方法", |
| | | prop: "method", |
| | | width: "80", |
| | | }, |
| | | { |
| | | label: "请求接口", |
| | | prop: "requestUri", |
| | | }, |
| | | { |
| | | label: "日志时间", |
| | | prop: "createTime", |
| | | width: "180", |
| | | }, |
| | | { |
| | | label: "用户代理", |
| | | prop: "userAgent", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "请求数据", |
| | | prop: "params", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "日志数据", |
| | | prop: "stackTrace", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 16, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 120, |
| | | dialogType: 'drawer', |
| | | column: [ |
| | | { |
| | | label: "服务id", |
| | | prop: "serviceId", |
| | | search: true, |
| | | width:'120' |
| | | }, |
| | | { |
| | | label: "服务host", |
| | | prop: "serverHost", |
| | | search: true, |
| | | width:'150' |
| | | }, |
| | | { |
| | | label: "服务ip", |
| | | prop: "serverIp", |
| | | width:'160' |
| | | }, |
| | | { |
| | | label: "软件环境", |
| | | prop: "env", |
| | | width:'80' |
| | | }, |
| | | { |
| | | label: "请求方法", |
| | | prop: "method", |
| | | width:'80' |
| | | }, |
| | | { |
| | | label: "请求接口", |
| | | prop: "requestUri" |
| | | }, |
| | | { |
| | | label: "日志时间", |
| | | prop: "createTime", |
| | | width:'180' |
| | | }, |
| | | { |
| | | label: "用户代理", |
| | | prop: "userAgent", |
| | | span: 24, |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "请求数据", |
| | | prop: "params", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "日志数据", |
| | | prop: "stackTrace", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 16, |
| | | hide: true |
| | | } |
| | | ] |
| | | }, |
| | | data: [] |
| | | viewBtn: this.vaildData(this.permission.log_error_view, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | viewBtn: this.vaildData(this.permission.log_error_view, false) |
| | | }; |
| | | } |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getErrorLogs(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage){ |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize){ |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getErrorList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getErrorLogs(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getErrorList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | :before-open="beforeOpen" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | :before-open="beforeOpen" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getUsualList, getUsualLogs} from "@/api/logs"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getUsualList, getUsualLogs } from "@/api/logs"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 120, |
| | | dialogType: "drawer", |
| | | column: [ |
| | | { |
| | | label: "服务id", |
| | | prop: "serviceId", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "服务host", |
| | | prop: "serverHost", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "服务ip", |
| | | prop: "serverIp", |
| | | }, |
| | | { |
| | | label: "软件环境", |
| | | prop: "env", |
| | | width: "80", |
| | | }, |
| | | { |
| | | label: "日志级别", |
| | | prop: "logLevel", |
| | | }, |
| | | { |
| | | label: "日志id", |
| | | prop: "logId", |
| | | }, |
| | | { |
| | | label: "请求接口", |
| | | prop: "requestUri", |
| | | }, |
| | | { |
| | | label: "日志时间", |
| | | prop: "createTime", |
| | | width: "180", |
| | | }, |
| | | { |
| | | label: "用户代理", |
| | | prop: "userAgent", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "日志数据", |
| | | prop: "logData", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "请求数据", |
| | | prop: "params", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | editBtn: false, |
| | | addBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 120, |
| | | dialogType: 'drawer', |
| | | column: [ |
| | | { |
| | | label: "服务id", |
| | | prop: "serviceId", |
| | | search: true |
| | | }, |
| | | { |
| | | label: "服务host", |
| | | prop: "serverHost", |
| | | search: true |
| | | }, |
| | | { |
| | | label: "服务ip", |
| | | prop: "serverIp" |
| | | }, |
| | | { |
| | | label: "软件环境", |
| | | prop: "env", |
| | | width:'80' |
| | | }, |
| | | { |
| | | label: "日志级别", |
| | | prop: "logLevel" |
| | | }, |
| | | { |
| | | label: "日志id", |
| | | prop: "logId" |
| | | }, |
| | | { |
| | | label: "请求接口", |
| | | prop: "requestUri" |
| | | }, |
| | | { |
| | | label: "日志时间", |
| | | prop: "createTime", |
| | | width:'180' |
| | | }, |
| | | { |
| | | label: "用户代理", |
| | | prop: "userAgent", |
| | | span: 24, |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "日志数据", |
| | | prop: "logData", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "请求数据", |
| | | prop: "params", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 2, |
| | | hide: true |
| | | } |
| | | ] |
| | | }, |
| | | data: [] |
| | | viewBtn: this.vaildData(this.permission.log_usual_view, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | viewBtn: this.vaildData(this.permission.log_usual_view, false) |
| | | }; |
| | | } |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getUsualLogs(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage){ |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize){ |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getUsualList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getUsualLogs(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getUsualList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query: {}, |
| | | data: [], |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query: {}, |
| | | data: [], |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | ref="crud" |
| | | @row-del="rowDel" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | :before-open="beforeOpen" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | ref="crud" |
| | | @row-del="rowDel" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | :before-open="beforeOpen" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.owner_delete" |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.owner_delete" |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="category"> |
| | | <el-tag>{{row.categoryName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="category"> |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, remove, update, add, getNotice} from "@/api/owner/owner"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getList, remove, update, add, getNotice } from "@/api/owner/owner"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 54, |
| | | dialogWidth: 950, |
| | | tip: false, |
| | | searchShow: true, |
| | | labelWidth: 120, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | excelBtn: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "服务单位", |
| | | prop: "company", |
| | | search: true, |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 54, |
| | | dialogWidth: 950, |
| | | tip: false, |
| | | searchShow: true, |
| | | labelWidth: 120, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | excelBtn: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "服务单位", |
| | | prop: "company", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入服务单位", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "联系方式", |
| | | prop: "companyContact", |
| | | }, |
| | | { |
| | | label: "反馈时间", |
| | | prop: "releaseTimeRange", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | searchRange: true, |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入通知时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "反馈时间", |
| | | prop: "feedbackTime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd hh:mm:ss", |
| | | valueFormat: "yyyy-MM-dd hh:mm:ss", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "联系方式", |
| | | prop: "companyContact", |
| | | }, |
| | | { |
| | | label: "反馈时间", |
| | | prop: "releaseTimeRange", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | searchRange: true, |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入通知时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "反馈时间", |
| | | prop: "feedbackTime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd hh:mm:ss", |
| | | valueFormat: "yyyy-MM-dd hh:mm:ss", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入反馈时间", |
| | | trigger: "click" |
| | | }] |
| | | }, { |
| | | label: "反馈意见", |
| | | prop: "opinion", |
| | | }, { |
| | | label: "业主", |
| | | prop: "owner", |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "反馈意见", |
| | | prop: "opinion", |
| | | }, |
| | | { |
| | | label: "业主", |
| | | prop: "owner", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入反馈时间", |
| | | trigger: "click" |
| | | }] |
| | | }, { |
| | | label: "业主联系方式", |
| | | prop: "ownerContact", |
| | | }, { |
| | | label: "备注", |
| | | prop: "remarks", |
| | | }, { |
| | | label: "处置结果", |
| | | prop: "result", |
| | | } |
| | | ] |
| | | }, |
| | | data: [] |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "业主联系方式", |
| | | prop: "ownerContact", |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remarks", |
| | | }, |
| | | { |
| | | label: "处置结果", |
| | | prop: "result", |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.owner_add, false), |
| | | viewBtn: this.vaildData(this.permission.owner_view, false), |
| | | delBtn: this.vaildData(this.permission.owner_delete, false), |
| | | editBtn: this.vaildData(this.permission.owner_edit, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.owner_add, false), |
| | | viewBtn: this.vaildData(this.permission.owner_view, false), |
| | | delBtn: this.vaildData(this.permission.owner_delete, false), |
| | | editBtn: this.vaildData(this.permission.owner_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getNotice(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | const {releaseTimeRange} = this.query; |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | | startTime: releaseTimeRange[0], |
| | | endTime: releaseTimeRange[1], |
| | | ...this.query |
| | | }; |
| | | values.releaseTimeRange = null; |
| | | } |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getNotice(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | const { releaseTimeRange } = this.query; |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | if (releaseTimeRange) { |
| | | values = { |
| | | ...params, |
| | | startTime: releaseTimeRange[0], |
| | | endTime: releaseTimeRange[1], |
| | | ...this.query, |
| | | }; |
| | | values.releaseTimeRange = null; |
| | | } |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | } |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptName", |
| | | disabled: true, |
| | | span: 24, |
| | |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | }, { |
| | | label: '单位名称', |
| | | label: '企业名称', |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, { |
| | |
| | | |
| | | export var practitionersColumns = [{ |
| | | width: 200, |
| | | label: '单位名称', |
| | | label: '企业名称', |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, { |
| | |
| | | display: false |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | // prop: "deptName", |
| | | prop: "deptId", |
| | |
| | | |
| | | |
| | | <template> |
| | | <basic-container class="dispatchChildoperable"> |
| | | <basic-container |
| | | :class="[ |
| | | 'dispatchChildoperable', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option1" |
| | | :data="data1" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | headerAlign: "center", |
| | | align: "center", |
| | | column: trackRecordColumn, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | |
| | | |
| | | <template> |
| | | <basic-container class="dispatchChildoperable"> |
| | | <basic-container |
| | | :class="[ |
| | | 'dispatchChildoperable', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option1" |
| | | :data="data1" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | headerAlign: "center", |
| | | align: "center", |
| | | column: practitionersColumn, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="recruitmentManagement"> |
| | | <div |
| | | :class="[ |
| | | 'recruitmentManagement', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query: {}, |
| | | data: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | useifid: 266, |
| | | }; |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="scope" slot="menu"> |
| | |
| | | size="small" |
| | | @click.stop="handleDesign(scope.row.name)" |
| | | v-if="userInfo.role_name.includes('admin')" |
| | | >设计 |
| | | >设计 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | |
| | | size="small" |
| | | @click.stop="handlePreview(scope.row.name)" |
| | | v-if="userInfo.role_name.includes('admin')" |
| | | >预览 |
| | | >预览 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" slot="name"> |
| | | <el-tag style="cursor:pointer" @click="handlePreview(row.name)">{{ row.name }}</el-tag> |
| | | <template slot-scope="{ row }" slot="name"> |
| | | <el-tag style="cursor: pointer" @click="handlePreview(row.name)">{{ |
| | | row.name |
| | | }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, remove} from "@/api/report/report"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getList, remove } from "@/api/report/report"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | total: 0, |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | |
| | | selection: true, |
| | | viewBtn: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "文件名", |
| | |
| | | { |
| | | label: "更新时间", |
| | | prop: "updateTime", |
| | | } |
| | | ] |
| | | }, |
| | | ], |
| | | }, |
| | | data: [] |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | delBtn: true, |
| | | editBtn: false |
| | | editBtn: false, |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | handlePreview(name) { |
| | | this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`}); |
| | | this.$router.push({ |
| | | path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`, |
| | | }); |
| | | }, |
| | | handleDesign(name) { |
| | | this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`}); |
| | | this.$router.push({ |
| | | path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`, |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件地址", |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件地址", |
| | |
| | | <template> |
| | | <basic-container> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件地址", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件名称", |
| | |
| | | <template> |
| | | <basic-container class="hasButOne"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButOne', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | labelWidth: 100, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "分类", |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.sms_delete" |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.sms_delete" |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button type="text" |
| | | icon="el-icon-video-play" |
| | | size="small" |
| | | v-if="userInfo.role_name.includes('admin')" |
| | | @click="handleDebug(scope.row)">调试 |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-video-play" |
| | | size="small" |
| | | v-if="userInfo.role_name.includes('admin')" |
| | | @click="handleDebug(scope.row)" |
| | | >调试 |
| | | </el-button> |
| | | <el-button type="text" |
| | | icon="el-icon-circle-check" |
| | | size="small" |
| | | v-if="permission.sms_enable" |
| | | @click.stop="handleEnable(scope.row)">启用 |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-circle-check" |
| | | size="small" |
| | | v-if="permission.sms_enable" |
| | | @click.stop="handleEnable(scope.row)" |
| | | >启用 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="status"> |
| | | <el-tag>{{row.statusName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="status"> |
| | | <el-tag>{{ row.statusName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="category"> |
| | | <el-tag>{{row.categoryName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="category"> |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="手机短信发送调试" |
| | | append-to-body |
| | | :visible.sync="box" |
| | | width="550px"> |
| | | <avue-form :option="debugOption" v-model="debugForm" @submit="handleSend"/> |
| | | <el-dialog |
| | | title="手机短信发送调试" |
| | | append-to-body |
| | | :visible.sync="box" |
| | | width="550px" |
| | | > |
| | | <avue-form |
| | | :option="debugOption" |
| | | v-model="debugForm" |
| | | @submit="handleSend" |
| | | /> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, getDetail, add, update, remove, enable, send} from "@/api/resource/sms"; |
| | | import {mapGetters} from "vuex"; |
| | | import func from "@/util/func"; |
| | | import { |
| | | getList, |
| | | getDetail, |
| | | add, |
| | | update, |
| | | remove, |
| | | enable, |
| | | send, |
| | | } from "@/api/resource/sms"; |
| | | import { mapGetters } from "vuex"; |
| | | import func from "@/util/func"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | box: false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | menuWidth: 300, |
| | | labelWidth: 100, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "分类", |
| | | type: "radio", |
| | | value: 1, |
| | | span: 24, |
| | | width: 100, |
| | | searchLabelWidth: 50, |
| | | row: true, |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=sms", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "category", |
| | | search: true, |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | box: false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | menuWidth: 300, |
| | | labelWidth: 100, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "分类", |
| | | type: "radio", |
| | | value: 1, |
| | | span: 24, |
| | | width: 100, |
| | | searchLabelWidth: 50, |
| | | row: true, |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=sms", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "category", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择分类", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "资源编号", |
| | | prop: "smsCode", |
| | | span: 24, |
| | | width: 200, |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "资源编号", |
| | | prop: "smsCode", |
| | | span: 24, |
| | | width: 200, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入资源编号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "模版ID", |
| | | prop: "templateId", |
| | | span: 24, |
| | | width: 200, |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "模版ID", |
| | | prop: "templateId", |
| | | span: 24, |
| | | width: 200, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入模版ID", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "accessKey", |
| | | prop: "accessKey", |
| | | span: 24, |
| | | overHidden: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "accessKey", |
| | | prop: "accessKey", |
| | | span: 24, |
| | | overHidden: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入accessKey", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | { |
| | | label: "secretKey", |
| | | prop: "secretKey", |
| | | span: 24, |
| | | overHidden: true, |
| | | display: true, |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "secretKey", |
| | | prop: "secretKey", |
| | | span: 24, |
| | | overHidden: true, |
| | | display: true, |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入secretKey", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | { |
| | | label: "regionId", |
| | | prop: "regionId", |
| | | span: 24, |
| | | value: "cn-hangzhou", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "短信签名", |
| | | prop: "signName", |
| | | span: 24, |
| | | width: 200, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "regionId", |
| | | prop: "regionId", |
| | | span: 24, |
| | | value: "cn-hangzhou", |
| | | hide: true, |
| | | display: false, |
| | | }, |
| | | { |
| | | label: "短信签名", |
| | | prop: "signName", |
| | | span: 24, |
| | | width: 200, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入短信签名", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | { |
| | | label: "是否启用", |
| | | prop: "status", |
| | | span: 24, |
| | | width: 80, |
| | | align: "center", |
| | | slot: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | hide: true |
| | | }, |
| | | ] |
| | | }, |
| | | data: [], |
| | | debugForm: { |
| | | code: '', |
| | | }, |
| | | debugOption: { |
| | | submitText: "发送", |
| | | column: [ |
| | | { |
| | | label: "资源编号", |
| | | prop: "code", |
| | | disabled: true, |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "发送手机", |
| | | prop: "phones", |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "发送参数", |
| | | prop: "params", |
| | | span: 24, |
| | | placeholder: "例: {'code':2333,'title':'通知标题'}", |
| | | }, |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "是否启用", |
| | | prop: "status", |
| | | span: 24, |
| | | width: 80, |
| | | align: "center", |
| | | slot: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | debugForm: { |
| | | code: "", |
| | | }, |
| | | debugOption: { |
| | | submitText: "发送", |
| | | column: [ |
| | | { |
| | | label: "资源编号", |
| | | prop: "code", |
| | | disabled: true, |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "发送手机", |
| | | prop: "phones", |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "发送参数", |
| | | prop: "params", |
| | | span: 24, |
| | | placeholder: "例: {'code':2333,'title':'通知标题'}", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | "form.category"() { |
| | | const category = func.toInt(this.form.category); |
| | | this.$refs.crud.option.column.filter((item) => { |
| | | if (item.prop === "templateId") { |
| | | if (category === 1) { |
| | | item.label = "模版内容"; |
| | | } else { |
| | | item.label = "模版ID"; |
| | | } |
| | | } |
| | | if (item.prop === "accessKey") { |
| | | if (category === 1) { |
| | | item.label = "apiKey"; |
| | | } else if (category === 4) { |
| | | item.label = "appId"; |
| | | } else { |
| | | item.label = "accessKey"; |
| | | } |
| | | } |
| | | if (item.prop === "secretKey") { |
| | | item.display = category !== 1; |
| | | if (category === 4) { |
| | | item.label = "appKey"; |
| | | } else { |
| | | item.label = "secretKey"; |
| | | } |
| | | } |
| | | if (item.prop === "regionId") { |
| | | if (category === 3) { |
| | | item.display = true; |
| | | item.value = "cn-hangzhou"; |
| | | } else { |
| | | item.display = false; |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.sms_add, false), |
| | | viewBtn: this.vaildData(this.permission.sms_view, false), |
| | | delBtn: this.vaildData(this.permission.sms_delete, false), |
| | | editBtn: this.vaildData(this.permission.sms_edit, false), |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'form.category'() { |
| | | const category = func.toInt(this.form.category); |
| | | this.$refs.crud.option.column.filter(item => { |
| | | if (item.prop === "templateId") { |
| | | if (category === 1) { |
| | | item.label = "模版内容"; |
| | | } else { |
| | | item.label = "模版ID"; |
| | | } |
| | | } |
| | | if (item.prop === "accessKey") { |
| | | if (category === 1) { |
| | | item.label = "apiKey"; |
| | | } else if (category === 4) { |
| | | item.label = "appId"; |
| | | } else { |
| | | item.label = "accessKey"; |
| | | } |
| | | } |
| | | if (item.prop === "secretKey") { |
| | | item.display = category !== 1; |
| | | if (category === 4) { |
| | | item.label = "appKey"; |
| | | } else { |
| | | item.label = "secretKey"; |
| | | } |
| | | } |
| | | if (item.prop === "regionId") { |
| | | if (category === 3) { |
| | | item.display = true; |
| | | item.value = "cn-hangzhou"; |
| | | } else { |
| | | item.display = false; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.sms_add, false), |
| | | viewBtn: this.vaildData(this.permission.sms_view, false), |
| | | delBtn: this.vaildData(this.permission.sms_delete, false), |
| | | editBtn: this.vaildData(this.permission.sms_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }); |
| | | }, |
| | | handleEnable(row) { |
| | | this.$confirm("是否确定启用这条配置?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return enable(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleDebug(row) { |
| | | this.box = true; |
| | | this.debugForm.code = row.smsCode; |
| | | }, |
| | | handleSend(form, done, loading) { |
| | | send(form.code, form.phones, form.params).then((res) => { |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "发送成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | handleEnable(row) { |
| | | this.$confirm("是否确定启用这条配置?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return enable(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleDebug(row) { |
| | | this.box = true; |
| | | this.debugForm.code = row.smsCode; |
| | | }, |
| | | handleSend(form, done, loading) { |
| | | send(form.code, form.phones, form.params).then( |
| | | (res) => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "发送成功!", |
| | | }); |
| | | done(); |
| | | window.console.log(res); |
| | | this.box = false; |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | ); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件地址", |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件地址", |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | attachBox: false, |
| | | selectionList: [], |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "附件地址", |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="dispatchChildoperable"> |
| | | <div |
| | | :class="[ |
| | | 'dispatchChildoperable', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option1" |
| | | :data="data1" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | form1: {}, |
| | | query1: {}, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | form2: {}, |
| | | query2: {}, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | // prop: "deptName", |
| | | prop: "deptId", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | column: [ |
| | | //派遣服务公司登记 |
| | | { |
| | | label: "派遣单位名称", |
| | | label: "派遣企业名称", |
| | | prop: "name", |
| | | search: true, |
| | | searchLabelWidth: 110, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | // prop: "deptName", |
| | | prop: "deptId", |
| | |
| | | <template> |
| | | <basic-container> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | menu: false, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | |
| | | }] |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | searchSpan: 6, |
| | | searchLabelWidth: 110, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属保安公司", |
| | | message: "请输入企业名称", |
| | | trigger: "blur" |
| | | }], |
| | | hide: true, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="equipments"> |
| | | <div |
| | | :class="[ |
| | | 'equipments', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | selection: true, |
| | | labelWidth: 110, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | useifid: 266, |
| | | }; |
| | |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | data.records.forEach(item=>{ |
| | | if(item.numberType==-1){ |
| | | item.numberType=null; |
| | | data.records.forEach((item) => { |
| | | if (item.numberType == -1) { |
| | | item.numberType = null; |
| | | } |
| | | if(item.carType==-1){ |
| | | item.carType=null; |
| | | if (item.carType == -1) { |
| | | item.carType = null; |
| | | } |
| | | }) |
| | | }); |
| | | this.data = data.records; |
| | | console.log(this.data); |
| | | this.loading = false; |
| | |
| | | width: 70, |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | searchSpan: 6, |
| | | searchLabelWidth: 110, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属保安公司", |
| | | message: "请输入企业名称", |
| | | trigger: "blur" |
| | | }], |
| | | hide: true, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="equipments"> |
| | | <div |
| | | :class="[ |
| | | 'equipments', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query: {}, |
| | | data: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | labelWidth: 110, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | |
| | | useifid: 266, |
| | |
| | | export var column = [{ |
| | | label: "id", |
| | | prop: "id", |
| | | hide: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | labelWidth: 160, |
| | | label: "id", |
| | | prop: "id", |
| | | hide: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | labelWidth: 160, |
| | | }, |
| | | // { |
| | | // label: "公务用枪证编号", |
| | | // prop: "gunCardNumber", |
| | | // labelWidth: 160, |
| | | // searchSpan: 4, |
| | | // searchLabelWidth: 130, |
| | | // search: true, |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请输入公务用枪证编号", |
| | | // trigger: "blur" |
| | | // }] |
| | | // }, |
| | | { |
| | | label: "发证企业名称", |
| | | searchLabelWidth: 110, |
| | | labelWidth: 160, |
| | | prop: "issueUnit", |
| | | searchSpan: 4, |
| | | rules: [{ |
| | | required: false, |
| | | message: "请输入发证企业名称", |
| | | trigger: "blur" |
| | | }], |
| | | search: true, |
| | | }, //上面不显示 |
| | | { |
| | | label: "公务用枪编号", |
| | | prop: "cardNumber", |
| | | labelWidth: 160, |
| | | search: true, |
| | | searchSpan: 4, |
| | | searchLabelWidth: 110, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入公务用枪编号", |
| | | trigger: "blur" |
| | | }] |
| | | // search: true, |
| | | }, |
| | | { |
| | | label: "枪型", |
| | | prop: "gunMode", |
| | | // searchSpan: 4, |
| | | width: 70, |
| | | labelWidth: 160, |
| | | rules: [{ |
| | | required: false, |
| | | message: "请输入枪型", |
| | | trigger: "blur" |
| | | }], |
| | | // search: true, |
| | | }, |
| | | { |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | searchSpan: 6, |
| | | searchLabelWidth: 110, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入企业名称", |
| | | trigger: "blur" |
| | | }], |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | search: false, |
| | | overHidden: true, |
| | | dicUrl: "", |
| | | props: { |
| | | label: "title", |
| | | value: "id" |
| | | }, |
| | | // { |
| | | // label: "公务用枪证编号", |
| | | // prop: "gunCardNumber", |
| | | // labelWidth: 160, |
| | | // searchSpan: 4, |
| | | // searchLabelWidth: 130, |
| | | // search: true, |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请输入公务用枪证编号", |
| | | // trigger: "blur" |
| | | // }] |
| | | // }, |
| | | { |
| | | label: "发证单位名称", |
| | | searchLabelWidth: 110, |
| | | labelWidth: 160, |
| | | prop: "issueUnit", |
| | | searchSpan: 4, |
| | | rules: [{ |
| | | required: false, |
| | | message: "请输入发证单位名称", |
| | | trigger: "blur" |
| | | }], |
| | | search: true, |
| | | }, //上面不显示 |
| | | { |
| | | label: "公务用枪编号", |
| | | prop: "cardNumber", |
| | | labelWidth: 160, |
| | | search: true, |
| | | searchSpan: 4, |
| | | searchLabelWidth: 110, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入公务用枪编号", |
| | | trigger: "blur" |
| | | }] |
| | | // search: true, |
| | | }, |
| | | { |
| | | label: "枪型", |
| | | prop: "gunMode", |
| | | // searchSpan: 4, |
| | | width: 70, |
| | | labelWidth: 160, |
| | | rules: [{ |
| | | required: false, |
| | | message: "请输入枪型", |
| | | trigger: "blur" |
| | | }], |
| | | // search: true, |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | prop: "deptId", |
| | | searchSpan: 6, |
| | | searchLabelWidth: 110, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属保安公司", |
| | | trigger: "blur" |
| | | }], |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | search: false, |
| | | overHidden: true, |
| | | dicUrl: "", |
| | | props: { |
| | | label: "title", |
| | | value: "id" |
| | | }, |
| | | type: "tree", |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: "责任人", |
| | | prop: "personInCharge", |
| | | labelWidth: 160, |
| | | rules: [{ |
| | | required: false, |
| | | message: "请输入责任人", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "发证日期", |
| | | labelWidth: 160, |
| | | prop: "issueTime", |
| | | // search: true, |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | // width: 110, |
| | | // overHidden: true, |
| | | // search: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入发证日期", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "有效日期", |
| | | prop: "validTime", |
| | | labelWidth: 160, |
| | | // search: true, |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | searchSpan: 4, |
| | | overHidden: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入有效日期", |
| | | trigger: "blur" |
| | | }] |
| | | } |
| | | type: "tree", |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: "责任人", |
| | | prop: "personInCharge", |
| | | labelWidth: 160, |
| | | rules: [{ |
| | | required: false, |
| | | message: "请输入责任人", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "发证日期", |
| | | labelWidth: 160, |
| | | prop: "issueTime", |
| | | // search: true, |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | // width: 110, |
| | | // overHidden: true, |
| | | // search: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入发证日期", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "有效日期", |
| | | prop: "validTime", |
| | | labelWidth: 160, |
| | | // search: true, |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | searchSpan: 4, |
| | | overHidden: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入有效日期", |
| | | trigger: "blur" |
| | | }] |
| | | } |
| | | ] |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="equipments"> |
| | | <div |
| | | :class="[ |
| | | 'equipments', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | deptIds:"", |
| | | deptIds: "", |
| | | selectionList: [], |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query: {}, |
| | | data: [], |
| | |
| | | selection: true, |
| | | labelWidth: 110, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | useifid: 266, |
| | | }; |
| | |
| | | //保安员基本信息 |
| | | export var securityBaseInfoColumn = [{ |
| | | label: "", |
| | | labelWidth: "20", |
| | | type: 'title', |
| | | prop: "title", |
| | | span: 24, |
| | | styles: { |
| | | fontSize: '24px' |
| | | } |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | disabled: true, |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "登录账号", |
| | | prop: "account", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户姓名", |
| | | prop: "realName", |
| | | disabled: true, |
| | | }, |
| | | { |
| | | label: "用户昵称", |
| | | prop: "name", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "cardid", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "籍贯", |
| | | prop: "nativeplace", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "是否持证", |
| | | prop: "hold", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | type: "select", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "保安员证编号", |
| | | prop: "securitynumber", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "所属辖区", |
| | | prop: "jurisdiction", |
| | | // multiple: true, |
| | | type: "tree", |
| | | dicUrl: "/api/jurisdiction/lazy-tree", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "最高学历", |
| | | prop: "education", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "政治面貌", |
| | | prop: "politicaloutlook", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "身高", |
| | | prop: "height", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "联系地址", |
| | | prop: "address", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "户口所在地", |
| | | prop: "registered", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | type: 'date', |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户性别", |
| | | prop: "sex", |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "男", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "女", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "未知", |
| | | value: 3 |
| | | } |
| | | ], |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户生日", |
| | | type: "date", |
| | | prop: "birthday", |
| | | disabled: true |
| | | label: "", |
| | | labelWidth: "20", |
| | | type: 'title', |
| | | prop: "title", |
| | | span: 24, |
| | | styles: { |
| | | fontSize: '24px' |
| | | } |
| | | }, |
| | | { |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | disabled: true, |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "登录账号", |
| | | prop: "account", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户姓名", |
| | | prop: "realName", |
| | | disabled: true, |
| | | }, |
| | | { |
| | | label: "用户昵称", |
| | | prop: "name", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "cardid", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "籍贯", |
| | | prop: "nativeplace", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "是否持证", |
| | | prop: "hold", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | type: "select", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "保安员证编号", |
| | | prop: "securitynumber", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "所属辖区", |
| | | prop: "jurisdiction", |
| | | // multiple: true, |
| | | type: "tree", |
| | | dicUrl: "/api/jurisdiction/lazy-tree", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "最高学历", |
| | | prop: "education", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "政治面貌", |
| | | prop: "politicaloutlook", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "身高", |
| | | prop: "height", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "联系地址", |
| | | prop: "address", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "户口所在地", |
| | | prop: "registered", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | type: 'date', |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户性别", |
| | | prop: "sex", |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "男", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "女", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "未知", |
| | | value: 3 |
| | | } |
| | | ], |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户生日", |
| | | type: "date", |
| | | prop: "birthday", |
| | | disabled: true |
| | | } |
| | | |
| | | |
| | | ] |
| | | |
| | | |
| | | export var securityBaseInfoColumns = [{ |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId" |
| | | }, |
| | | disabled: true, |
| | | span: 24, |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId" |
| | | }, |
| | | disabled: true, |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "登录账号", |
| | | prop: "account", |
| | | disabled: true |
| | | }, |
| | | { |
| | | label: "用户姓名", |
| | | prop: "realName", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入用户姓名", |
| | | trigger: "blur" |
| | | }, { |
| | | min: 2, |
| | | max: 5, |
| | | message: '姓名长度在2到5个字符' |
| | | }] |
| | | }, |
| | | { |
| | | label: "用户昵称", |
| | | prop: "name" |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | overHidden: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入手机号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "cardid", |
| | | hide: true, |
| | | overHidden: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入身份证号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "籍贯", |
| | | prop: "nativeplace", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "最高学历", |
| | | prop: "education", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择学历", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "政治面貌", |
| | | prop: "politicaloutlook", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "身高", |
| | | prop: "height", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "联系地址", |
| | | prop: "address", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "户口所在地", |
| | | prop: "registered", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | type: 'date', |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "用户性别", |
| | | prop: "sex", |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "男", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "登录账号", |
| | | prop: "account", |
| | | disabled: true |
| | | label: "女", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "用户姓名", |
| | | prop: "realName", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入用户姓名", |
| | | trigger: "blur" |
| | | }, { |
| | | min: 2, |
| | | max: 5, |
| | | message: '姓名长度在2到5个字符' |
| | | }] |
| | | }, |
| | | { |
| | | label: "用户昵称", |
| | | prop: "name" |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | overHidden: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入手机号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "cardid", |
| | | hide: true, |
| | | overHidden: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入身份证号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "籍贯", |
| | | prop: "nativeplace", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "最高学历", |
| | | prop: "education", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择学历", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "政治面貌", |
| | | prop: "politicaloutlook", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "身高", |
| | | prop: "height", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "联系地址", |
| | | prop: "address", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "户口所在地", |
| | | prop: "registered", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | type: 'date', |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | hide: true, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: "用户性别", |
| | | prop: "sex", |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "男", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "女", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "未知", |
| | | value: 3 |
| | | } |
| | | ], |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "用户生日", |
| | | type: "date", |
| | | prop: "birthday", |
| | | hide: true |
| | | label: "未知", |
| | | value: 3 |
| | | } |
| | | ], |
| | | hide: true |
| | | }, |
| | | { |
| | | label: "用户生日", |
| | | type: "date", |
| | | prop: "birthday", |
| | | hide: true |
| | | } |
| | | ] |
| | | |
| | | |
| | |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | }, { |
| | | label: '单位名称', |
| | | label: '企业名称', |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, { |
| | |
| | | |
| | | export var practitionersColumns = [{ |
| | | width: 200, |
| | | label: '单位名称', |
| | | label: '企业名称', |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, { |
| | |
| | | |
| | | //表现 |
| | | export var trackRecordColumn = [{ |
| | | label: "id", |
| | | prop: "id", |
| | | hide: true, |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | }, { |
| | | label: '时间', |
| | | type: 'date', |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | prop: "time", |
| | | formslot: true, |
| | | }, |
| | | // { |
| | | // label: '工作态度', |
| | | // prop: "workingattitude", |
| | | // formslot: true, |
| | | label: "id", |
| | | prop: "id", |
| | | hide: true, |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | }, { |
| | | label: '时间', |
| | | type: 'date', |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | prop: "time", |
| | | formslot: true, |
| | | }, |
| | | // { |
| | | // label: '工作态度', |
| | | // prop: "workingattitude", |
| | | // formslot: true, |
| | | // }, |
| | | { |
| | | label: '工作表现', |
| | | prop: "achievements", |
| | | formslot: true, |
| | | }, { |
| | | label: '表现评定', |
| | | prop: "score", |
| | | type: "select", |
| | | // dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType", |
| | | // props: { |
| | | // label: "dictValue", |
| | | // value: "dictKey" |
| | | // }, |
| | | dicData: [{ |
| | | label: "优秀", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '工作表现', |
| | | prop: "achievements", |
| | | formslot: true, |
| | | }, { |
| | | label: '表现评定', |
| | | prop: "score", |
| | | type: "select", |
| | | // dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType", |
| | | // props: { |
| | | // label: "dictValue", |
| | | // value: "dictKey" |
| | | // }, |
| | | dicData: [{ |
| | | label: "优秀", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "良好", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "一般", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "差", |
| | | value: 3 |
| | | }, |
| | | ], |
| | | dataType: "number", |
| | | slot: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择表现", |
| | | trigger: "blur" |
| | | }] |
| | | } |
| | | label: "良好", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "一般", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "差", |
| | | value: 3 |
| | | }, |
| | | ], |
| | | dataType: "number", |
| | | slot: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择表现", |
| | | trigger: "blur" |
| | | }] |
| | | } |
| | | // { |
| | | // label: '服务公司', |
| | | // prop: "departmentName", |
| | |
| | | |
| | | |
| | | export var securityFormPageColumn = [{ |
| | | label: "姓名", |
| | | prop: "realName", |
| | | search: true, |
| | | searchSpan: 3, |
| | | width: 60, |
| | | searchLabelWidth: 50, |
| | | display: false |
| | | label: "姓名", |
| | | prop: "realName", |
| | | search: true, |
| | | searchSpan: 3, |
| | | width: 60, |
| | | searchLabelWidth: 50, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | // prop: "deptName", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | // hide: true, |
| | | slot: true, |
| | | searchSpan: 5, |
| | | display: false, |
| | | search: true, |
| | | minWidth: 260 |
| | | }, |
| | | { |
| | | label: "性别", |
| | | prop: "sexs", |
| | | width: 80, |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "男", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | searchLabelWidth: "110", |
| | | // prop: "deptName", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | // hide: true, |
| | | slot: true, |
| | | searchSpan: 5, |
| | | display: false, |
| | | search: true, |
| | | minWidth: 260 |
| | | label: "女", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "性别", |
| | | prop: "sexs", |
| | | width: 80, |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "男", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "女", |
| | | value: 2, |
| | | }, |
| | | // { |
| | | // label: "未知", |
| | | // value: 3, |
| | | // }, |
| | | ], |
| | | display: false |
| | | }, |
| | | { |
| | | label: "身份证号码", |
| | | prop: "cardid", |
| | | search: true, |
| | | searchLabelWidth: 90, |
| | | searchSpan: 4, |
| | | minWidth: 140, |
| | | display: false |
| | | }, |
| | | // { |
| | | // label: "未知", |
| | | // value: 3, |
| | | // }, |
| | | ], |
| | | display: false |
| | | }, |
| | | { |
| | | label: "身份证号码", |
| | | prop: "cardid", |
| | | search: true, |
| | | searchLabelWidth: 90, |
| | | searchSpan: 4, |
| | | minWidth: 140, |
| | | display: false |
| | | }, |
| | | |
| | | { |
| | | label: "籍贯", |
| | | prop: "nativeplace", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | hide: true, |
| | | width: 55, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "籍贯", |
| | | prop: "nativeplace", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | hide: true, |
| | | width: 55, |
| | | display: false |
| | | }, |
| | | |
| | | { |
| | | label: "出生日期", |
| | | prop: "birthday", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | display: false, |
| | | hide: true, |
| | | { |
| | | label: "出生日期", |
| | | prop: "birthday", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | display: false, |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "年龄", |
| | | prop: "age", |
| | | width: 55, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "学历", |
| | | prop: "education", |
| | | display: false, |
| | | width: 90, |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | type: "select", |
| | | // hide: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择学历", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | prop: "phone", |
| | | minWidth: 100, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "健康状态", |
| | | prop: "healstats", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "保安证编号", |
| | | prop: "securitynumber", |
| | | search: true, |
| | | searchLabelWidth: 90, |
| | | minWidth: 105, |
| | | searchSpan: 3, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | // hide: true, |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: '是否派遣', |
| | | prop: 'dispatch', |
| | | type: 'select', |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | dicData: [{ |
| | | label: '未派遣', |
| | | value: '1' |
| | | }, { |
| | | label: '已派遣', |
| | | value: '0' |
| | | }] |
| | | }, |
| | | { |
| | | label: "是否持证", |
| | | prop: "hold", |
| | | slot: true, |
| | | search: true, |
| | | searchSpan: 3, |
| | | width: 69, |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "是", |
| | | value: "1", |
| | | }, |
| | | { |
| | | label: "年龄", |
| | | prop: "age", |
| | | width: 55, |
| | | display: false |
| | | label: "否", |
| | | value: "2", |
| | | }, |
| | | { |
| | | label: "学历", |
| | | prop: "education", |
| | | display: false, |
| | | width: 90, |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | type: "select", |
| | | // hide: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择学历", |
| | | trigger: "blur" |
| | | }], |
| | | label: "已吊销", |
| | | value: "3", |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | prop: "phone", |
| | | minWidth: 100, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "健康状态", |
| | | prop: "healstats", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: "保安证编号", |
| | | prop: "securitynumber", |
| | | search: true, |
| | | searchLabelWidth: 90, |
| | | minWidth: 105, |
| | | searchSpan: 3, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | // hide: true, |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | hide: true, |
| | | display: false |
| | | }, |
| | | { |
| | | label: '是否派遣', |
| | | prop: 'dispatch', |
| | | type: 'select', |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | dicData: [{ |
| | | label: '未派遣', |
| | | value: '1' |
| | | }, { |
| | | label: '已派遣', |
| | | value: '0' |
| | | }] |
| | | }, |
| | | { |
| | | label: "是否持证", |
| | | prop: "hold", |
| | | slot: true, |
| | | search: true, |
| | | searchSpan: 3, |
| | | width: 69, |
| | | type: "select", |
| | | dicData: [{ |
| | | label: "是", |
| | | value: "1", |
| | | }, |
| | | { |
| | | label: "否", |
| | | value: "2", |
| | | }, |
| | | { |
| | | label: "已吊销", |
| | | value: "3", |
| | | }, |
| | | ], |
| | | display: false, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | ], |
| | | display: false, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择", |
| | | trigger: "blur" |
| | | }], |
| | | }, |
| | | |
| | | { |
| | | label: "是否制证", |
| | | prop: "userType", |
| | | type: "select", |
| | | slot: true, |
| | | search: true, |
| | | // searchValue: 7, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | searchSpan: 3, |
| | | width: 69, |
| | | dicData: [{ |
| | | label: "已制证", |
| | | value: 6, |
| | | }, |
| | | { |
| | | label: "未制证", |
| | | value: 7, |
| | | } |
| | | ], |
| | | { |
| | | label: "是否制证", |
| | | prop: "userType", |
| | | type: "select", |
| | | slot: true, |
| | | search: true, |
| | | // searchValue: 7, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | searchSpan: 3, |
| | | width: 69, |
| | | dicData: [{ |
| | | label: "已制证", |
| | | value: 6, |
| | | }, |
| | | { |
| | | label: "未制证", |
| | | value: 7, |
| | | } |
| | | ], |
| | | }, |
| | | |
| | | // { |
| | | // label: "发证日期", |
| | | // prop: "papertime", |
| | | // type: "date", |
| | | // format: "yyyy-MM-dd", |
| | | // valueFormat: "yyyy-MM-dd", |
| | | // // searchRange: true, |
| | | // // searchSpan: 6, |
| | | // // hide: true, |
| | | // // addDisplay: false, |
| | | // // editDisplay: false, |
| | | // // viewDisplay: false, |
| | | // // search: true, |
| | | // // rules: [{ |
| | | // // required: true, |
| | | // // message: "请输入时间", |
| | | // // trigger: "blur" |
| | | // // }] |
| | | // }, |
| | | { |
| | | label: "在职状态", |
| | | prop: "status", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | searchValue: 1, |
| | | display: false, |
| | | hide: true, |
| | | searchSpan: 3, |
| | | width: 80, |
| | | search: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择在职状态", |
| | | trigger: "blur" |
| | | }] |
| | | // { |
| | | // label: "发证日期", |
| | | // prop: "papertime", |
| | | // type: "date", |
| | | // format: "yyyy-MM-dd", |
| | | // valueFormat: "yyyy-MM-dd", |
| | | // // searchRange: true, |
| | | // // searchSpan: 6, |
| | | // // hide: true, |
| | | // // addDisplay: false, |
| | | // // editDisplay: false, |
| | | // // viewDisplay: false, |
| | | // // search: true, |
| | | // // rules: [{ |
| | | // // required: true, |
| | | // // message: "请输入时间", |
| | | // // trigger: "blur" |
| | | // // }] |
| | | // }, |
| | | { |
| | | label: "在职状态", |
| | | prop: "status", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | }, |
| | | dataType: "number", |
| | | searchValue: 1, |
| | | display: false, |
| | | hide: true, |
| | | searchSpan: 3, |
| | | width: 80, |
| | | search: true, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择在职状态", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "审查状态", |
| | | prop: "examinationType", |
| | | type: "select", |
| | | display: false, |
| | | searchSpan: 3, |
| | | search: false, |
| | | hide: true, |
| | | width: 80, |
| | | dicData: [{ |
| | | label: "全部", |
| | | value: 6, |
| | | }, |
| | | { |
| | | label: "审查状态", |
| | | prop: "examinationType", |
| | | type: "select", |
| | | display: false, |
| | | searchSpan: 3, |
| | | search: false, |
| | | hide: true, |
| | | width: 80, |
| | | dicData: [{ |
| | | label: "全部", |
| | | value: 6, |
| | | }, |
| | | { |
| | | label: "正常", |
| | | value: "0", |
| | | }, |
| | | { |
| | | label: "异常", |
| | | value: 1, |
| | | } |
| | | ], |
| | | label: "正常", |
| | | value: "0", |
| | | }, |
| | | { |
| | | label: "异常", |
| | | value: 1, |
| | | } |
| | | ], |
| | | }, |
| | | ] |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | roleId: "1412226235153731586", |
| | | deptId: "1413470343230877697", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | init: { |
| | | roleTree: [], |
| | |
| | | icon: "el-icon-user-solid", |
| | | column: [ |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | // dicUrl: |
| | |
| | | column: [ |
| | | { |
| | | width: 200, |
| | | label: "单位名称", |
| | | label: "企业名称", |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | roleId: "1412226235153731586", |
| | | deptId: "1413470343230877697", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | init: { |
| | | roleTree: [], |
| | |
| | | icon: "el-icon-user-solid", |
| | | column: [ |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | // dicUrl: |
| | |
| | | column: [ |
| | | { |
| | | width: 200, |
| | | label: "单位名称", |
| | | label: "企业名称", |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | roleId: "1412226235153731586", |
| | | deptId: "1413470343230877697", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | init: { |
| | | roleTree: [], |
| | |
| | | icon: "el-icon-user-solid", |
| | | column: [ |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | // dicUrl: |
| | |
| | | //compatibility for firefox and chrome |
| | | var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; |
| | | var pc = new myPeerConnection({ |
| | | iceServers: [] |
| | | }), |
| | | noop = function() {}, |
| | | iceServers: [] |
| | | }), |
| | | noop = function () { }, |
| | | localIPs = {}, |
| | | ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g, |
| | | key; |
| | |
| | | pc.createDataChannel(""); |
| | | |
| | | // create offer and set local description |
| | | pc.createOffer().then(function(sdp) { |
| | | sdp.sdp.split('\n').forEach(function(line) { |
| | | pc.createOffer().then(function (sdp) { |
| | | sdp.sdp.split('\n').forEach(function (line) { |
| | | if (line.indexOf('candidate') < 0) return; |
| | | line.match(ipRegex).forEach(iterateIP); |
| | | }); |
| | | |
| | | pc.setLocalDescription(sdp, noop, noop); |
| | | }).catch(function(reason) { |
| | | }).catch(function (reason) { |
| | | // An error occurred, so handle the failure to connect |
| | | }); |
| | | |
| | | //sten for candidate events |
| | | pc.onicecandidate = function(ice) { |
| | | pc.onicecandidate = function (ice) { |
| | | if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return; |
| | | ice.candidate.candidate.match(ipRegex).forEach(iterateIP); |
| | | }; |
| | |
| | | //连接方法 |
| | | function CertCtl_connect() { |
| | | var baseURL = ""; |
| | | getUserIP(function(ip) { |
| | | getUserIP(function (ip) { |
| | | // alert("Got IP! :" + ip); |
| | | baseURL = ip; |
| | | }); |
| | | console.log(baseURL, 666666); |
| | | // console.log(baseURL, 666666); |
| | | var result = ""; |
| | | var iParam1 = "1"; |
| | | //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步 |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | //返回值readyState 0: 请求未初始化 |
| | | // 1: 服务器连接已建立 |
| | | // 2:请求已接收 |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //发送请求 |
| | | try { |
| | | CertCtl.xhr.send(); |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) { |
| | | result = CertCtl.xhr.responseText; |
| | | CertCtl.xhr.readyState = 1; |
| | |
| | | //result页面回显 |
| | | document.getElementById("result").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | //断开连接方法 |
| | |
| | | //result页面回显 |
| | | document.getElementById("result").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | //获取状态方法 |
| | |
| | | //result页面回显 |
| | | document.getElementById("result").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | //读卡方法 |
| | |
| | | //result页面回显 |
| | | document.getElementById("result").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | function readIDCardSN() { |
| | |
| | | //result页面回显 |
| | | document.getElementById("result").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | function getSAMID() { |
| | |
| | | //result页面回显 |
| | | document.getElementById("result").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | function readM1Card() { |
| | |
| | | //result页面回显 |
| | | document.getElementById("ACardResult").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | function writeM1Card() { |
| | |
| | | //result页面回显 |
| | | document.getElementById("ACardResult").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | function handleAPDUCMD() { |
| | |
| | | //result页面回显 |
| | | document.getElementById("ACardResult").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | /* |
| | |
| | | //result页面回显 |
| | | document.getElementById("ACardResult").value = result; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | |
| | | export default CertCtl; |
| | |
| | | } |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | prop: "deptName", |
| | | disabled: true, |
| | | span: 24, |
| | |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | }, { |
| | | label: '单位名称', |
| | | label: '企业名称', |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, { |
| | |
| | | |
| | | export var practitionersColumns = [{ |
| | | width: 200, |
| | | label: '单位名称', |
| | | label: '企业名称', |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, { |
| | |
| | | display: false |
| | | }, |
| | | { |
| | | label: "所属保安公司", |
| | | label: "企业名称", |
| | | searchLabelWidth: "110", |
| | | // prop: "deptName", |
| | | prop: "deptId", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | page2: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | query2: {}, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="securityUnit"> |
| | | <div |
| | | :class="[ |
| | | 'securityUnit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="securityUnit"> |
| | | <div |
| | | :class="[ |
| | | 'securityUnit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | submitBtn: true, |
| | | gutter: 30, |
| | | column: column0, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | obj1: { |
| | | title1: "保安单位出资人员", |
| | |
| | | submitBtn: false, |
| | | gutter: 30, |
| | | column: column1, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | obj2: { |
| | | title2: "主要管理人员信息", |
| | |
| | | submitBtn: false, |
| | | gutter: 30, |
| | | column: column2, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | |
| | | forms: false, |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="securityUnit"> |
| | | <div |
| | | :class="[ |
| | | 'securityUnit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="securityUnit"> |
| | | <div |
| | | :class="[ |
| | | 'securityUnit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | border: true, |
| | | |
| | | selection: true, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | ...column, |
| | | { |
| | |
| | | <template> |
| | | <basic-container> |
| | | <div class="securityUnit"> |
| | | <div |
| | | :class="[ |
| | | 'securityUnit', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :data="data" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | <!-- </span> --> |
| | | </el-tab-pane> |
| | | <!-- <span v-else-if="typeTABS.prop === 'tab2'" class="tab"> --> |
| | | <el-tab-pane label="保安单位出资人员" name="tab2"> |
| | | <el-tab-pane |
| | | label="保安单位出资人员" |
| | | name="tab2" |
| | | :class="[ |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <basic-container> |
| | | <avue-crud |
| | | :option="option1" |
| | |
| | | <!-- </span> --> |
| | | </el-tab-pane> |
| | | <!-- <span v-else-if="typeTABS.prop === 'tab3'" class="tab"> --> |
| | | <el-tab-pane label="主要管理人员信息" name="tab3"> |
| | | <el-tab-pane |
| | | label="主要管理人员信息" |
| | | name="tab3" |
| | | :class="[ |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <basic-container> |
| | | <avue-crud |
| | | :option="option2" |
| | |
| | | excelOption1: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "文件上传", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query1: {}, |
| | | data1: [], |
| | |
| | | menuWidth: 200, |
| | | align: "center", |
| | | selection: true, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: column1, |
| | | }, |
| | | |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | query2: {}, |
| | | data2: [], |
| | |
| | | menuAlign: "center", |
| | | align: "center", |
| | | selection: true, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: column2, |
| | | }, |
| | | }; |
| | |
| | | <template> |
| | | <basic-container> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | menu: false, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | align: "center", |
| | | selection: true, |
| | | column: column, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | |
| | | treeData: [], |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.social_delete" |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.social_delete" |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | <el-button type="success" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | @click="handleImport">导入 |
| | | </el-button> |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | @click="handleImport" |
| | | >导入 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="用户数据导入" |
| | | append-to-body |
| | | :visible.sync="excelBox" |
| | | width="555px"> |
| | | <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"> |
| | | <template slot="excelTemplate"> |
| | | <el-button type="primary" @click="handleTemplate"> |
| | | 点击下载<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> |
| | | </avue-form> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="用户数据导入" |
| | | append-to-body |
| | | :visible.sync="excelBox" |
| | | width="555px" |
| | | > |
| | | <avue-form |
| | | :option="excelOption" |
| | | v-model="excelForm" |
| | | :upload-after="uploadAfter" |
| | | > |
| | | <template slot="excelTemplate"> |
| | | <el-button type="primary" @click="handleTemplate"> |
| | | 点击下载<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> |
| | | </avue-form> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, getDetail, add, update, remove} from "@/api/social/social"; |
| | | import {mapGetters} from "vuex"; |
| | | import {getToken} from "@/util/auth"; |
| | | import { getList, getDetail, add, update, remove } from "@/api/social/social"; |
| | | import { mapGetters } from "vuex"; |
| | | import { getToken } from "@/util/auth"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | excelBox: false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height:'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | | prop: "namb", |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | excelBox: false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | | prop: "namb", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入姓名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "性别", |
| | | prop: "sex", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "性别", |
| | | prop: "sex", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入性别", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "民族", |
| | | prop: "nation", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入民族", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "出生日期", |
| | | prop: "birthday", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "出生日期", |
| | | prop: "birthday", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入出生日期", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | prop: "telephone", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | prop: "telephone", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入联系电话", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "cardid", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "cardid", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入身份证号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "户籍所在地址", |
| | | prop: "residence", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "户籍所在地址", |
| | | prop: "residence", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入户籍所在地址", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "居住地址 ", |
| | | prop: "address", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "居住地址 ", |
| | | prop: "address", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入居住地址 ", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "户籍性质", |
| | | prop: "nature", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "户籍性质", |
| | | prop: "nature", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入户籍性质", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "个人缴费额", |
| | | prop: "amount", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "个人缴费额", |
| | | prop: "amount", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入个人缴费额", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "参保时间", |
| | | prop: "insuredtime", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "参保时间", |
| | | prop: "insuredtime", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入参保时间", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "所属机构", |
| | | prop: "deptid", |
| | | addDisplay: false, |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dept/selectIn", |
| | | props: { |
| | | label: "deptname", |
| | | value: "deptid" |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属机构", |
| | | prop: "deptid", |
| | | addDisplay: false, |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dept/selectIn", |
| | | props: { |
| | | label: "deptname", |
| | | value: "deptid", |
| | | }, |
| | | ] |
| | | }, |
| | | data: [], |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: '模板上传', |
| | | prop: 'excelFile', |
| | | type: 'upload', |
| | | drag: true, |
| | | loadText: '模板上传中,请稍等', |
| | | span: 24, |
| | | propsHttp: { |
| | | res: 'data' |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: "模板上传", |
| | | prop: "excelFile", |
| | | type: "upload", |
| | | drag: true, |
| | | loadText: "模板上传中,请稍等", |
| | | span: 24, |
| | | propsHttp: { |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/social/import-user", |
| | | }, |
| | | { |
| | | label: "数据覆盖", |
| | | prop: "isCovered", |
| | | type: "switch", |
| | | align: "center", |
| | | hide: true, |
| | | width: 80, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | tip: '请上传 .xls,.xlsx 标准格式文件', |
| | | action: "/api/social/import-user" |
| | | }, |
| | | { |
| | | label: "数据覆盖", |
| | | prop: "isCovered", |
| | | type: "switch", |
| | | align: "center", |
| | | hide:true, |
| | | width: 80, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1 |
| | | } |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择是否覆盖", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: '模板下载', |
| | | prop: 'excelTemplate', |
| | | formslot: true, |
| | | span: 24, |
| | | } |
| | | ] |
| | | } |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择是否覆盖", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "模板下载", |
| | | prop: "excelTemplate", |
| | | formslot: true, |
| | | span: 24, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | "excelForm.isCovered"() { |
| | | if (this.excelForm.isCovered !== "") { |
| | | const column = this.findObject(this.excelOption.column, "excelFile"); |
| | | column.action = |
| | | `/api/social/import-user?isCovered=${this.excelForm.isCovered}` + |
| | | "&deptid=" + |
| | | this.userInfo.dept_id; |
| | | } |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission", "userInfo"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.social_add, false), |
| | | viewBtn: this.vaildData(this.permission.social_view, false), |
| | | delBtn: this.vaildData(this.permission.social_delete, false), |
| | | editBtn: this.vaildData(this.permission.social_edit, false), |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'excelForm.isCovered'() { |
| | | if (this.excelForm.isCovered !== '') { |
| | | const column = this.findObject(this.excelOption.column, "excelFile"); |
| | | column.action = `/api/social/import-user?isCovered=${this.excelForm.isCovered}`+"&deptid="+this.userInfo.dept_id; |
| | | } |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | computed: { |
| | | ... mapGetters(["permission", "userInfo"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.social_add, false), |
| | | viewBtn: this.vaildData(this.permission.social_view, false), |
| | | delBtn: this.vaildData(this.permission.social_delete, false), |
| | | editBtn: this.vaildData(this.permission.social_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | loading(); |
| | | window.console.log(error); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | loading(); |
| | | console.log(error); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | handleTemplate() { |
| | | window.open( |
| | | `/api/social/export-template?${this.website.tokenHeader}=${getToken()}` |
| | | ); |
| | | }, |
| | | uploadAfter(res, done, loading, column) { |
| | | window.console.log(column); |
| | | this.excelBox = false; |
| | | this.refreshChange(); |
| | | done(); |
| | | }, |
| | | handleImport() { |
| | | this.excelBox = true; |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | handleTemplate() { |
| | | window.open(`/api/social/export-template?${this.website.tokenHeader}=${getToken()}`); |
| | | }, |
| | | uploadAfter(res, done, loading, column) { |
| | | window.console.log(column); |
| | | this.excelBox = false; |
| | | this.refreshChange(); |
| | | done(); |
| | | }, |
| | | handleImport() { |
| | | this.excelBox = true; |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage){ |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize){ |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | <template> |
| | | <basic-container class="hasButOne"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButOne', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "应用id", |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | lazy: true, |
| | |
| | | viewBtn: true, |
| | | menuWidth: 300, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "机构名称", |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="optionParent" |
| | | :table-loading="loading" |
| | |
| | | }, |
| | | dataParent: [], |
| | | dataChild: [], |
| | | optionParent: optionParent, |
| | | optionChild: optionChild, |
| | | optionParent: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 10, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: true, |
| | | menuWidth: 250, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "字典编号", |
| | | prop: "code", |
| | | search: true, |
| | | slot: true, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典名称", |
| | | prop: "dictValue", |
| | | search: true, |
| | | align: "center", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | align: "right", |
| | | width: 100, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典排序", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "封存", |
| | | prop: "isSealed", |
| | | type: "switch", |
| | | align: "center", |
| | | width: 100, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择封存", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典备注", |
| | | prop: "remark", |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | optionChild: { |
| | | height: "auto", |
| | | calcHeight: 95, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 10, |
| | | tree: true, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: true, |
| | | menuWidth: 300, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "字典编号", |
| | | prop: "code", |
| | | addDisabled: true, |
| | | editDisabled: true, |
| | | search: true, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典名称", |
| | | prop: "dictValue", |
| | | search: true, |
| | | align: "center", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "上级字典", |
| | | prop: "parentId", |
| | | type: "tree", |
| | | dicData: [], |
| | | hide: true, |
| | | props: { |
| | | label: "title", |
| | | }, |
| | | addDisabled: true, |
| | | editDisabled: true, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择上级字典", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典键值", |
| | | prop: "dictKey", |
| | | width: 80, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典键值", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | align: "right", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典排序", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "封存", |
| | | prop: "isSealed", |
| | | type: "switch", |
| | | align: "center", |
| | | width: 80, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择封存", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典备注", |
| | | prop: "remark", |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="optionParent" |
| | | :table-loading="loading" |
| | |
| | | }, |
| | | dataParent: [], |
| | | dataChild: [], |
| | | optionParent: optionParent, |
| | | optionChild: optionChild, |
| | | optionParent: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 10, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: true, |
| | | menuWidth: 250, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "字典编号", |
| | | prop: "code", |
| | | search: true, |
| | | slot: true, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典名称", |
| | | prop: "dictValue", |
| | | search: true, |
| | | align: "center", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | align: "right", |
| | | width: 100, |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典排序", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "封存", |
| | | prop: "isSealed", |
| | | type: "switch", |
| | | align: "center", |
| | | width: 100, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择封存", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典备注", |
| | | prop: "remark", |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | optionChild: { |
| | | height: "auto", |
| | | calcHeight: 95, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 10, |
| | | tree: true, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | viewBtn: true, |
| | | menuWidth: 300, |
| | | dialogWidth: 880, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "字典编号", |
| | | prop: "code", |
| | | addDisabled: true, |
| | | editDisabled: true, |
| | | search: true, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典编号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典名称", |
| | | prop: "dictValue", |
| | | search: true, |
| | | align: "center", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "上级字典", |
| | | prop: "parentId", |
| | | type: "tree", |
| | | dicData: [], |
| | | hide: true, |
| | | props: { |
| | | label: "title", |
| | | }, |
| | | addDisabled: true, |
| | | editDisabled: true, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择上级字典", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典键值", |
| | | prop: "dictKey", |
| | | width: 80, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典键值", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | align: "right", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入字典排序", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "封存", |
| | | prop: "isSealed", |
| | | type: "switch", |
| | | align: "center", |
| | | width: 80, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择封存", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "字典备注", |
| | | prop: "remark", |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | <template> |
| | | <basic-container class="hasButTwo"> |
| | | <basic-container |
| | | :class="[ |
| | | 'hasButTwo', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | lazy: true, |
| | |
| | | viewBtn: true, |
| | | menuWidth: 300, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "菜单名称", |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud v-bind="bindVal" |
| | | v-on="onEvent" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | v-bind="bindVal" |
| | | v-on="onEvent" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | :option="option" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.param_delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.param_delete" |
| | | plain |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | export default window.$crudCommon({ |
| | | data() { |
| | | return {} |
| | | }, |
| | | computed: { |
| | | permissionList() { |
| | | export default window.$crudCommon( |
| | | { |
| | | data() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.param_add, false), |
| | | viewBtn: this.vaildData(this.permission.param_view, false), |
| | | delBtn: this.vaildData(this.permission.param_delete, false), |
| | | editBtn: this.vaildData(this.permission.param_edit, false) |
| | | option: { |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | }; |
| | | } |
| | | }, |
| | | computed: { |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.param_add, false), |
| | | viewBtn: this.vaildData(this.permission.param_view, false), |
| | | delBtn: this.vaildData(this.permission.param_delete, false), |
| | | editBtn: this.vaildData(this.permission.param_edit, false), |
| | | }; |
| | | }, |
| | | }, |
| | | methods: {}, |
| | | }, |
| | | methods: {} |
| | | }, { |
| | | //模块路径 |
| | | name: 'system/param', |
| | | }) |
| | | { |
| | | //模块路径 |
| | | name: "system/param", |
| | | } |
| | | ); |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container :class="[ |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]"> |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.post_delete" |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.post_delete" |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="category"> |
| | | <el-tag>{{row.categoryName}}</el-tag> |
| | | <template slot-scope="{ row }" slot="category"> |
| | | <el-tag>{{ row.categoryName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, getDetail, add, update, remove} from "@/api/system/post"; |
| | | import {mapGetters} from "vuex"; |
| | | import website from "@/config/website"; |
| | | import { getList, getDetail, add, update, remove } from "@/api/system/post"; |
| | | import { mapGetters } from "vuex"; |
| | | import website from "@/config/website"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: website.tenantMode, |
| | | span: 24, |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId" |
| | | }, |
| | | hide: !website.tenantMode, |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: website.tenantMode, |
| | | span: 24, |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId", |
| | | }, |
| | | hide: !website.tenantMode, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入所属保安单位", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | | { |
| | | label: "岗位类型", |
| | | prop: "category", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=post_category", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | trigger: "click", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | search: true, |
| | | rules: [{ |
| | | ], |
| | | }, |
| | | { |
| | | label: "岗位类型", |
| | | prop: "category", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=post_category", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择岗位类型", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "岗位编号", |
| | | prop: "postCode", |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "岗位编号", |
| | | prop: "postCode", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入岗位编号", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "岗位名称", |
| | | prop: "postName", |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "岗位名称", |
| | | prop: "postName", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入岗位名称", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "岗位排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "岗位排序", |
| | | prop: "sort", |
| | | type: "number", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入岗位排序", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "岗位描述", |
| | | prop: "remark", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 6, |
| | | hide: true, |
| | | }, |
| | | ] |
| | | }, |
| | | data: [] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "岗位描述", |
| | | prop: "remark", |
| | | type: "textarea", |
| | | span: 24, |
| | | minRows: 6, |
| | | hide: true, |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.post_add, false), |
| | | viewBtn: this.vaildData(this.permission.post_view, false), |
| | | delBtn: this.vaildData(this.permission.post_delete, false), |
| | | editBtn: this.vaildData(this.permission.post_edit, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.post_add, false), |
| | | viewBtn: this.vaildData(this.permission.post_view, false), |
| | | delBtn: this.vaildData(this.permission.post_delete, false), |
| | | editBtn: this.vaildData(this.permission.post_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.tenant_delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.tenant_delete" |
| | | plain |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | <el-button size="small" |
| | | plain |
| | | v-if="userInfo.role_name.includes('administrator')" |
| | | icon="el-icon-setting" |
| | | @click="handleSetting">授权配置 |
| | | <el-button |
| | | size="small" |
| | | plain |
| | | v-if="userInfo.role_name.includes('administrator')" |
| | | icon="el-icon-setting" |
| | | @click="handleSetting" |
| | | >授权配置 |
| | | </el-button> |
| | | <el-button size="small" |
| | | plain |
| | | v-if="userInfo.role_name.includes('administrator')" |
| | | icon="el-icon-coin" |
| | | @click="handleDatasource">数据源配置 |
| | | <el-button |
| | | size="small" |
| | | plain |
| | | v-if="userInfo.role_name.includes('administrator')" |
| | | icon="el-icon-coin" |
| | | @click="handleDatasource" |
| | | >数据源配置 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="accountNumber"> |
| | | <el-tag>{{ row.accountNumber > 0 ? row.accountNumber : '不限制' }}</el-tag> |
| | | <template slot-scope="{ row }" slot="accountNumber"> |
| | | <el-tag>{{ |
| | | row.accountNumber > 0 ? row.accountNumber : "不限制" |
| | | }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="expireTime"> |
| | | <el-tag>{{ row.expireTime ? row.expireTime : '不限制' }}</el-tag> |
| | | <template slot-scope="{ row }" slot="expireTime"> |
| | | <el-tag>{{ row.expireTime ? row.expireTime : "不限制" }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="保安单位授权配置" |
| | | append-to-body |
| | | :visible.sync="box" |
| | | width="450px"> |
| | | <avue-form :option="settingOption" v-model="settingForm" @submit="handleSubmit"/> |
| | | <el-dialog |
| | | title="保安单位授权配置" |
| | | append-to-body |
| | | :visible.sync="box" |
| | | width="450px" |
| | | > |
| | | <avue-form |
| | | :option="settingOption" |
| | | v-model="settingForm" |
| | | @submit="handleSubmit" |
| | | /> |
| | | </el-dialog> |
| | | <el-dialog title="保安单位数据源配置" |
| | | append-to-body |
| | | :visible.sync="datasourceBox" |
| | | width="450px"> |
| | | <avue-form :option="datasourceOption" v-model="datasourceForm" @submit="handleDatasourceSubmit"/> |
| | | <el-dialog |
| | | title="保安单位数据源配置" |
| | | append-to-body |
| | | :visible.sync="datasourceBox" |
| | | width="450px" |
| | | > |
| | | <avue-form |
| | | :option="datasourceOption" |
| | | v-model="datasourceForm" |
| | | @submit="handleDatasourceSubmit" |
| | | /> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, getDetail, remove, update, add, setting, datasource} from "@/api/system/tenant"; |
| | | import {mapGetters} from "vuex"; |
| | | import { |
| | | getList, |
| | | getDetail, |
| | | remove, |
| | | update, |
| | | add, |
| | | setting, |
| | | datasource, |
| | | } from "@/api/system/tenant"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | labelWidth: '125', |
| | | labelWidth: "125", |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | |
| | | viewBtn: true, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "保安单位ID", |
| | | prop: "tenantId", |
| | | width: 130, |
| | | searchLabelWidth:"150", |
| | | searchSpan:5, |
| | | searchLabelWidth: "150", |
| | | searchSpan: 5, |
| | | search: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | span: 24, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入保安单位ID", |
| | | trigger: "blur" |
| | | }] |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入保安单位ID", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "保安单位名称", |
| | | searchLabelWidth:"150", |
| | | label: "保安企业名称", |
| | | searchLabelWidth: "150", |
| | | prop: "tenantName", |
| | | searchSpan:5, |
| | | searchSpan: 5, |
| | | search: true, |
| | | width: 280, |
| | | span: 24, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入参数名称", |
| | | trigger: "blur" |
| | | }] |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入参数名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "联系人", |
| | | searchLabelWidth:"100", |
| | | searchLabelWidth: "100", |
| | | prop: "linkman", |
| | | width: 200, |
| | | search: true, |
| | | searchSpan:5, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入联系人", |
| | | trigger: "blur" |
| | | }] |
| | | searchSpan: 5, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入联系人", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | |
| | | { |
| | | label: "系统背景", |
| | | prop: "backgroundUrl", |
| | | type: 'upload', |
| | | listType: 'picture-img', |
| | | action: '/api/blade-resource/oss/endpoint/put-file', |
| | | type: "upload", |
| | | listType: "picture-img", |
| | | action: "/api/blade-resource/oss/endpoint/put-file", |
| | | propsHttp: { |
| | | res: 'data', |
| | | url: 'link', |
| | | res: "data", |
| | | url: "link", |
| | | }, |
| | | hide: true, |
| | | span: 24, |
| | | }, |
| | | ] |
| | | ], |
| | | }, |
| | | data: [], |
| | | settingForm: {}, |
| | |
| | | valueFormat: "yyyy-MM-dd hh:mm:ss", |
| | | span: 24, |
| | | }, |
| | | ] |
| | | ], |
| | | }, |
| | | datasourceForm: {}, |
| | | datasourceOption: { |
| | |
| | | dicUrl: "/api/blade-develop/datasource/select", |
| | | props: { |
| | | label: "name", |
| | | value: "id" |
| | | value: "id", |
| | | }, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择数据源", |
| | | trigger: "blur" |
| | | }] |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择数据源", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | ] |
| | | } |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | addBtn: this.vaildData(this.permission.tenant_add, false), |
| | | viewBtn: this.vaildData(this.permission.tenant_view, false), |
| | | delBtn: this.vaildData(this.permission.tenant_delete, false), |
| | | editBtn: this.vaildData(this.permission.tenant_edit, false) |
| | | editBtn: this.vaildData(this.permission.tenant_edit, false), |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | tenantId() { |
| | | return this.selectionList[0].tenantId; |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | getDetail(this.form.id).then((res) => { |
| | | const data = res.data.data; |
| | | if (!(data.accountNumber > 0)) { |
| | | data.accountNumber = "不限制"; |
| | |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | |
| | | return; |
| | | } |
| | | if (this.selectionList.length === 1) { |
| | | getDetail(this.selectionList[0].id).then(res => { |
| | | getDetail(this.selectionList[0].id).then((res) => { |
| | | const data = res.data.data; |
| | | this.settingForm.accountNumber = data.accountNumber; |
| | | this.settingForm.expireTime = data.expireTime; |
| | | }); |
| | | } else { |
| | | this.settingForm.accountNumber = -1; |
| | | this.settingForm.expireTime = ''; |
| | | this.settingForm.expireTime = ""; |
| | | } |
| | | this.box = true; |
| | | }, |
| | |
| | | this.$message.warning("只能选择一条数据"); |
| | | return; |
| | | } |
| | | getDetail(this.selectionList[0].id).then(res => { |
| | | getDetail(this.selectionList[0].id).then((res) => { |
| | | const data = res.data.data; |
| | | this.datasourceForm.datasourceId = data.datasourceId; |
| | | }); |
| | | this.datasourceBox = true; |
| | | }, |
| | | handleSubmit(form, done, loading) { |
| | | setting(this.ids, form).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "配置成功!" |
| | | }); |
| | | done(); |
| | | this.box = false; |
| | | }, error => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | setting(this.ids, form).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "配置成功!", |
| | | }); |
| | | done(); |
| | | this.box = false; |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | handleDatasourceSubmit(form, done, loading) { |
| | | datasource(this.tenantId, form.datasourceId).then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "配置成功!" |
| | | }); |
| | | done(); |
| | | this.datasourceBox = false; |
| | | }, error => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | datasource(this.tenantId, form.datasourceId).then( |
| | | () => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "配置成功!", |
| | | }); |
| | | done(); |
| | | this.datasourceBox = false; |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <basic-container class="topmenu"> |
| | | <basic-container |
| | | :class="[ |
| | | 'topmenu', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | menuGrantList: [], |
| | |
| | | selection: true, |
| | | dialogWidth: 900, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "菜单名", |
| | |
| | | grant, |
| | | resetPassword, |
| | | getJurisdiction, |
| | | getJurisdictionDetail |
| | | getJurisdictionDetail, |
| | | } from "@/api/system/user"; |
| | | import { getDeptTree, getDeptLazyTree } from "@/api/system/dept"; |
| | | import { getRoleTree } from "@/api/system/role"; |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | platformPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | init: { |
| | | roleTree: [], |
| | |
| | | viewBtn: true, |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "登录账号", |
| | |
| | | } |
| | | |
| | | // getJurisdictionDetail(this.userInfo.jurisdiction).then((res)=>{ |
| | | // console.log(res.data.data,123); |
| | | // }) |
| | | var parentId = this.userInfo.dept_id; |
| | | if (parentId == "1123598813738675201") { |
| | | parentId = 0; |
| | | } |
| | | getDeptLazyTree(parentId).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | // console.log(res.data.data,123); |
| | | // }) |
| | | var parentId = this.userInfo.dept_id; |
| | | if (parentId == "1123598813738675201") { |
| | | parentId = 0; |
| | | } |
| | | getDeptLazyTree(parentId).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | |
| | | getUser(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | |
| | | } |
| | | |
| | | var parentId1 = this.userInfo.dept_id; |
| | | if (parentId1 == "1123598813738675201") { |
| | | parentId = 0; |
| | | } |
| | | if (parentId1 == "1123598813738675201") { |
| | | parentId = 0; |
| | | } |
| | | getDeptLazyTree(parentId1).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | } |
| | | this.initFlag = true; |
| | | done(); |
| | |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="sizes[1]"> |
| | | <basic-container> |
| | | <basic-container |
| | | :class="[ |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :search.sync="search" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | platformPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | init: { |
| | | roleTree: [], |
| | |
| | | viewBtn: true, |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "登录账号", |
| | |
| | | }, |
| | | created() { |
| | | console.log(this.userInfo.role_name); |
| | | if (this.userInfo.role_name == "保安公司管理员" || this.userInfo.role_name == "分公司管理员") { |
| | | if ( |
| | | this.userInfo.role_name == "保安公司管理员" || |
| | | this.userInfo.role_name == "分公司管理员" |
| | | ) { |
| | | this.deptids = this.userInfo.dept_id; |
| | | this.sizes = [0, 24]; |
| | | this.isguanli = false; |
| | |
| | | <template> |
| | | <basic-container> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "标题", |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | :before-open="beforeOpen" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | :page.sync="page" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | :before-open="beforeOpen" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.code_delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.code_delete" |
| | | plain |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-refresh" |
| | | @click="handleBuild">代码生成 |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-refresh" |
| | | @click="handleBuild" |
| | | >代码生成 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button type="text" |
| | | size="small" |
| | | icon="el-icon-document-copy" |
| | | v-if="permission.code_edit" |
| | | class="none-border" |
| | | @click.stop="handleCopy(scope.row)">复制 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-document-copy" |
| | | v-if="permission.code_edit" |
| | | class="none-border" |
| | | @click.stop="handleCopy(scope.row)" |
| | | >复制 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, getCode, build, remove, add, update, copy} from "@/api/tool/code"; |
| | | import {mapGetters} from "vuex"; |
| | | import { |
| | | getList, |
| | | getCode, |
| | | build, |
| | | remove, |
| | | add, |
| | | update, |
| | | copy, |
| | | } from "@/api/tool/code"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | loading: true, |
| | | query: {}, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | dialogWidth: 900, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | labelWidth: 120, |
| | | menuWidth: 250, |
| | | viewBtn: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "数据源", |
| | | prop: "datasourceId", |
| | | search: true, |
| | | span: 24, |
| | | type: "select", |
| | | dicUrl: "/api/blade-develop/datasource/select", |
| | | props: { |
| | | label: "name", |
| | | value: "id" |
| | | }, |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | selectionList: [], |
| | | loading: true, |
| | | query: {}, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | dialogWidth: 900, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | selection: true, |
| | | labelWidth: 120, |
| | | menuWidth: 250, |
| | | viewBtn: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "数据源", |
| | | prop: "datasourceId", |
| | | search: true, |
| | | span: 24, |
| | | type: "select", |
| | | dicUrl: "/api/blade-develop/datasource/select", |
| | | props: { |
| | | label: "name", |
| | | value: "id", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择数据源", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "模块名", |
| | | prop: "codeName", |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "模块名", |
| | | prop: "codeName", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入模块名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "服务名", |
| | | prop: "serviceName", |
| | | search: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "服务名", |
| | | prop: "serviceName", |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入服务名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "表名", |
| | | prop: "tableName", |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "表名", |
| | | prop: "tableName", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入表名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "表前缀", |
| | | prop: "tablePrefix", |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "表前缀", |
| | | prop: "tablePrefix", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入表前缀", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "主键名", |
| | | prop: "pkName", |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "主键名", |
| | | prop: "pkName", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入主键名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "包名", |
| | | prop: "packageName", |
| | | overHidden: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "包名", |
| | | prop: "packageName", |
| | | overHidden: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入包名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "基础业务", |
| | | prop: "baseMode", |
| | | type: 'radio', |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=yes_no", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | trigger: "blur", |
| | | }, |
| | | dataType: "number", |
| | | hide: true, |
| | | rules: [{ |
| | | ], |
| | | }, |
| | | { |
| | | label: "基础业务", |
| | | prop: "baseMode", |
| | | type: "radio", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=yes_no", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择基础业务", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "包装器", |
| | | prop: "wrapMode", |
| | | type: 'radio', |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=yes_no", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | trigger: "blur", |
| | | }, |
| | | dataType: "number", |
| | | hide: true, |
| | | rules: [{ |
| | | ], |
| | | }, |
| | | { |
| | | label: "包装器", |
| | | prop: "wrapMode", |
| | | type: "radio", |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=yes_no", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择包装器", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "后端生成路径", |
| | | prop: "apiPath", |
| | | span: 24, |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "后端生成路径", |
| | | prop: "apiPath", |
| | | span: 24, |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入后端生成路径", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "前端生成路径", |
| | | prop: "webPath", |
| | | span: 24, |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "前端生成路径", |
| | | prop: "webPath", |
| | | span: 24, |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入前端生成路径", |
| | | trigger: "blur" |
| | | }] |
| | | } |
| | | ] |
| | | }, |
| | | data: [] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.code_add, false), |
| | | viewBtn: this.vaildData(this.permission.code_view, false), |
| | | delBtn: this.vaildData(this.permission.code_delete, false), |
| | | editBtn: this.vaildData(this.permission.code_edit, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.code_add, false), |
| | | viewBtn: this.vaildData(this.permission.code_view, false), |
| | | delBtn: this.vaildData(this.permission.code_delete, false), |
| | | editBtn: this.vaildData(this.permission.code_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleBuild() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("是否生成选中模块的代码?", { |
| | | title: "代码生成确认", |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return build(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleCopy(row) { |
| | | copy(row.id).then(() => { |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleBuild() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("是否生成选中模块的代码?", { |
| | | title: "代码生成确认", |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return build(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | handleCopy(row) { |
| | | copy(row.id).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "复制成功!" |
| | | }); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "复制成功!", |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getCode(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getCode(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | :before-open="beforeOpen" |
| | | v-model="form" |
| | | ref="crud" |
| | | @row-update="rowUpdate" |
| | | @row-save="rowSave" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.datasource_delete" |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | v-if="permission.datasource_delete" |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {getList, getDetail, add, update, remove} from "@/api/tool/datasource"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getList, getDetail, add, update, remove } from "@/api/tool/datasource"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | dialogWidth: 900, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "名称", |
| | | prop: "name", |
| | | width: 120, |
| | | rules: [{ |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | loading: true, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | selectionList: [], |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | dialogWidth: 900, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | viewBtn: true, |
| | | selection: true, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "名称", |
| | | prop: "name", |
| | | width: 120, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入数据源名称", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "驱动类", |
| | | prop: "driverClass", |
| | | type: 'select', |
| | | dicData: [ |
| | | { |
| | | label: 'com.mysql.cj.jdbc.Driver', |
| | | value: 'com.mysql.cj.jdbc.Driver', |
| | | }, { |
| | | label: 'org.postgresql.Driver', |
| | | value: 'org.postgresql.Driver', |
| | | }, { |
| | | label: 'oracle.jdbc.OracleDriver', |
| | | value: 'oracle.jdbc.OracleDriver', |
| | | } |
| | | ], |
| | | width: 200, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "驱动类", |
| | | prop: "driverClass", |
| | | type: "select", |
| | | dicData: [ |
| | | { |
| | | label: "com.mysql.cj.jdbc.Driver", |
| | | value: "com.mysql.cj.jdbc.Driver", |
| | | }, |
| | | { |
| | | label: "org.postgresql.Driver", |
| | | value: "org.postgresql.Driver", |
| | | }, |
| | | { |
| | | label: "oracle.jdbc.OracleDriver", |
| | | value: "oracle.jdbc.OracleDriver", |
| | | }, |
| | | ], |
| | | width: 200, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入驱动类", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "用户名", |
| | | prop: "username", |
| | | width: 120, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "用户名", |
| | | prop: "username", |
| | | width: 120, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入用户名", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "密码", |
| | | prop: "password", |
| | | hide: true, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "密码", |
| | | prop: "password", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入密码", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "连接地址", |
| | | prop: "url", |
| | | span: 24, |
| | | rules: [{ |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "连接地址", |
| | | prop: "url", |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入连接地址", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | minRows: 3, |
| | | hide: true, |
| | | type: "textarea" |
| | | }, |
| | | ] |
| | | }, |
| | | data: [] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | span: 24, |
| | | minRows: 3, |
| | | hide: true, |
| | | type: "textarea", |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.datasource_add, false), |
| | | viewBtn: this.vaildData(this.permission.datasource_view, false), |
| | | delBtn: this.vaildData(this.permission.datasource_delete, false), |
| | | editBtn: this.vaildData(this.permission.datasource_edit, false), |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.datasource_add, false), |
| | | viewBtn: this.vaildData(this.permission.datasource_view, false), |
| | | delBtn: this.vaildData(this.permission.datasource_delete, false), |
| | | editBtn: this.vaildData(this.permission.datasource_edit, false) |
| | | }; |
| | | }, |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then(() => { |
| | | }, |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | }); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then(() => { |
| | | } |
| | | ); |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | handleDelete() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择至少一条数据"); |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-apply-exam-1"> |
| | | <el-col :span="24" class="hasButOne"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'hasButOne', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <avue-crud |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | export var infoColumn = [{ |
| | | label: "申请单位名称", |
| | | label: "申请企业名称", |
| | | |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569", |
| | | width: 180, |
| | | hide: true, |
| | | viewDisplay: false, |
| | | props: { |
| | | label: "title", |
| | | value: "id" |
| | | }, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择申请单位名称", |
| | | trigger: "blur" |
| | | }] |
| | | }, { |
| | | label: "申请单位名称", |
| | | prop: "deptName", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dept/tree", |
| | | width: 180, |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569", |
| | | width: 180, |
| | | hide: true, |
| | | viewDisplay: false, |
| | | props: { |
| | | label: "title", |
| | | value: "id" |
| | | }, |
| | | { |
| | | label: "考试名称", |
| | | searchSpan: 4, |
| | | width: 180, |
| | | prop: "trainExamName", |
| | | search: true, |
| | | }, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择申请企业名称", |
| | | trigger: "blur" |
| | | }] |
| | | }, { |
| | | label: "申请企业名称", |
| | | prop: "deptName", |
| | | type: "select", |
| | | dicUrl: "/api/blade-system/dept/tree", |
| | | width: 180, |
| | | editDisplay: false, |
| | | addDisplay: false |
| | | }, |
| | | { |
| | | label: "考试名称", |
| | | searchSpan: 4, |
| | | width: 180, |
| | | prop: "trainExamName", |
| | | search: true, |
| | | }, |
| | | |
| | | { |
| | | label: "开始时间", |
| | | prop: "startTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | width: 180, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择开始时间", |
| | | trigger: "blur" |
| | | }] |
| | | { |
| | | label: "开始时间", |
| | | prop: "startTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | width: 180, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择开始时间", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "结束时间", |
| | | prop: "endTime", |
| | | type: "datetime", |
| | | width: 180, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择结束时间", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | | { |
| | | label: "申请时间", |
| | | prop: "createTime", |
| | | type: "datetime", |
| | | width: 180, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择结束时间", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | | { |
| | | label: "审核时间", |
| | | prop: "auditTime", |
| | | type: "datetime", |
| | | width: 180, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择结束时间", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | | { |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 4, |
| | | prop: "auditStatus", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur" |
| | | }], |
| | | dicData: [{ |
| | | label: "审核通过", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "结束时间", |
| | | prop: "endTime", |
| | | type: "datetime", |
| | | width: 180, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择结束时间", |
| | | trigger: "click" |
| | | }] |
| | | label: "不通过", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "申请时间", |
| | | prop: "createTime", |
| | | type: "datetime", |
| | | width: 180, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择结束时间", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | | { |
| | | label: "审核时间", |
| | | prop: "auditTime", |
| | | type: "datetime", |
| | | width: 180, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择结束时间", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | | { |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 4, |
| | | prop: "auditStatus", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur" |
| | | }], |
| | | dicData: [{ |
| | | label: "审核通过", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "不通过", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "待审核", |
| | | value: 3 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | prop: "auditDetail" |
| | | label: "待审核", |
| | | value: 3 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | prop: "auditDetail" |
| | | } |
| | | ] |
| | | |
| | | |
| | | export var auditColumn = [{ |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 5, |
| | | span: 24, |
| | | prop: "auditStatus", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur" |
| | | }], |
| | | dicData: [{ |
| | | label: "审核通过", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "不通过", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "待审核", |
| | | value: 3 |
| | | } |
| | | ] |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 5, |
| | | span: 24, |
| | | prop: "auditStatus", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur" |
| | | }], |
| | | dicData: [{ |
| | | label: "审核通过", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "auditDetail" |
| | | label: "不通过", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "待审核", |
| | | value: 3 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "auditDetail" |
| | | } |
| | | ] |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-07-18 17:09:52 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 14:12:55 |
| | | * menu-name 考试管理 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-paper"> |
| | | <el-col :span="24"> |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="form" |
| | | class="company-box" |
| | |
| | | |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | style="display:none" |
| | | style="display: none" |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | column: auditColumn, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | }, |
| | | questionBankOption: { |
| | | // 操作栏多余按钮去除 |
| | |
| | | // 操作栏宽度 |
| | | menuWidth: 280, |
| | | labelWidth: 140, |
| | | |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "考试名称", |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | span:24, |
| | | span: 24, |
| | | width: 200, |
| | | }, |
| | | // { |
| | |
| | | editDetail: false, |
| | | // hide: true, |
| | | display: false, |
| | | width: 80 |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: "申请人所属学校", |
| | |
| | | type: "textarea", |
| | | span: 24, |
| | | slot: true, |
| | | hide:true, |
| | | hide: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | this.questionBankLoading = false; |
| | | params["examType"] = 2; |
| | | //如果是培训公司管理员,则只能看到当前培训公司申请的考试 |
| | | if(this.userInfo.role_name =="培训公司管理员"){ |
| | | params['deptId'] = this.userInfo.dept_id; |
| | | if (this.userInfo.role_name == "培训公司管理员") { |
| | | params["deptId"] = this.userInfo.dept_id; |
| | | } |
| | | getList( |
| | | page.currentPage, |
| | |
| | | }); |
| | | } |
| | | }, |
| | | examScoreViews(row){ |
| | | examScoreViews(row) { |
| | | //模拟考试 |
| | | if (row.examType == 2) { |
| | | this.$router.push({ |
| | |
| | | // 新增 |
| | | questionBankRowSave(row, done, loading) { |
| | | row.startTime = row.startTime + ":00"; |
| | | row['examType'] = 2; |
| | | row["examType"] = 2; |
| | | // row.endTime = row.examTime[1]; |
| | | // row.examTime = JSON.stringify(row.examTime); |
| | | add(row).then( |
| | |
| | | // row.examTime = row.examTime.split(","); |
| | | // } |
| | | const data = { |
| | | id:row.id, |
| | | startTime:row.startTime + ":00", |
| | | endTime:row.endTime + ":00", |
| | | } |
| | | id: row.id, |
| | | startTime: row.startTime + ":00", |
| | | endTime: row.endTime + ":00", |
| | | }; |
| | | // row.startTime = row.startTime + ":00"; |
| | | // row.endTime = row.endTime + ":00"; |
| | | // row.endTime = row.examTime[1]; |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-11-04 18:54:44 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-11-23 13:55:09 |
| | | * menu-name 成绩修改管理 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box"> |
| | | <el-col :span="24" |
| | | class="recruitmentManagement"> |
| | | <el-card> |
| | | <div class="exam-card-body"> |
| | | <avue-crud v-model="obj" |
| | | class="company-box" |
| | | :option="questionBankOption" |
| | | :search.sync="questionBankSearch" |
| | | :table-loading="questionBankLoading" |
| | | :data="questionBankData" |
| | | :permission="permissionList" |
| | | ref="questionBankCrud" |
| | | :page.sync="questionBankPage" |
| | | @on-load="questionBankOnLoad" |
| | | @selection-change="questionBankSelectionChange" |
| | | @search-change="questionBankSearchChange" |
| | | @search-reset="questionBankSearchReset" |
| | | @current-change="questionBankCurrentChange" |
| | | @size-change="questionBankSizeChange" |
| | | @row-update="questionBankRowUpdate" |
| | | @refresh-change="refreshChange"> |
| | | |
| | | <!-- 自定义按钮 --> |
| | | <template slot="menuLeft"> |
| | | <!-- <el-button type="danger" |
| | | <el-row class="morpheus-box"> |
| | | <el-col |
| | | :span="24" |
| | | :class="[ |
| | | 'recruitmentManagement', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <el-card> |
| | | <div |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box" |
| | | :option="questionBankOption" |
| | | :search.sync="questionBankSearch" |
| | | :table-loading="questionBankLoading" |
| | | :data="questionBankData" |
| | | :permission="permissionList" |
| | | ref="questionBankCrud" |
| | | :page.sync="questionBankPage" |
| | | @on-load="questionBankOnLoad" |
| | | @selection-change="questionBankSelectionChange" |
| | | @search-change="questionBankSearchChange" |
| | | @search-reset="questionBankSearchReset" |
| | | @current-change="questionBankCurrentChange" |
| | | @size-change="questionBankSizeChange" |
| | | @row-update="questionBankRowUpdate" |
| | | @refresh-change="refreshChange" |
| | | > |
| | | <!-- 自定义按钮 --> |
| | | <template slot="menuLeft"> |
| | | <!-- <el-button type="danger" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDelete">新增 |
| | | </el-button> --> |
| | | <!-- <el-button type="danger" |
| | | <!-- <el-button type="danger" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDelete">删除 |
| | | </el-button> --> |
| | | </template> |
| | | |
| | | </template> |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | :type="type" |
| | | :size="size" |
| | | icon="el-icon-folder-checked" |
| | | v-if="permission.score_audit_check || check" |
| | | @click="handleAudit(row)" |
| | | >审核 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <template slot-scope="{ type, size, row }" |
| | | slot="menu"> |
| | | |
| | | <el-button :type="type" |
| | | :size="size" |
| | | icon="el-icon-folder-checked" |
| | | v-if="permission.score_audit_check || check" |
| | | @click="handleAudit(row)">审核 |
| | | </el-button> |
| | | </template> |
| | | |
| | | </avue-crud> |
| | | |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-dialog title="成绩修改审核" |
| | | :visible.sync="dialogFormVisible" |
| | | modal-append-to-body="false" |
| | | append-to-body="true" |
| | | :close-on-click-model="true"> |
| | | <avue-form ref="formAudit" |
| | | v-model="Audit" |
| | | :option="optionAudit" |
| | | @reset-change="emptytChange" |
| | | @submit="submit"></avue-form> |
| | | </el-dialog> |
| | | |
| | | </el-row> |
| | | <el-dialog |
| | | title="成绩修改审核" |
| | | :visible.sync="dialogFormVisible" |
| | | modal-append-to-body="false" |
| | | append-to-body="true" |
| | | :close-on-click-model="true" |
| | | > |
| | | <avue-form |
| | | ref="formAudit" |
| | | v-model="Audit" |
| | | :option="optionAudit" |
| | | @reset-change="emptytChange" |
| | | @submit="submit" |
| | | ></avue-form> |
| | | </el-dialog> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getList, update,applyAudit } from "@/api/examapi/modifiedGrades"; |
| | | import { getList, update, applyAudit } from "@/api/examapi/modifiedGrades"; |
| | | import { mapGetters } from "vuex"; |
| | | import { getRoleDetail } from "@/api/system/role"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | Audit: {}, |
| | | dialogFormVisible: false, |
| | | optionAudit: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | dialogWidth: 1000, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, //liu |
| | | index: true, |
| | | stripe: true, |
| | | viewBtn: false, |
| | | addBtn: false, |
| | | editBtn: false, |
| | | selection: true, |
| | | excelBtn: false, |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 5, |
| | | span: 24, |
| | | prop: "status", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | dicData: [ |
| | | { |
| | | label: "待审核", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "审核通过", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "审核不通过", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "auditDetail", |
| | | }, |
| | | ], |
| | | }, |
| | | obj: { |
| | | name: "张三", |
| | | }, |
| | | questionBankOption: { |
| | | // 操作栏多余按钮去除 |
| | | delBtn: false, |
| | | editBtn: true, |
| | | addBtn: false, |
| | | selection: false, |
| | | check: false, |
| | | // 导出按钮 |
| | | // excelBtn: true, |
| | | // excelBtnText: "成绩导出", |
| | | viewBtn: true, |
| | | // title: '成绩', |
| | | align: "center", |
| | | height: "auto", |
| | | calcHeight: 80, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 4, |
| | | index: true, |
| | | indexLabel: "序号", |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | // 操作栏宽度 |
| | | menu: true, |
| | | menuWidth: 295, |
| | | labelWidth: 120, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "考试名称", |
| | | prop: "examName", |
| | | search: true, |
| | | searchSpan: 5, |
| | | slot: true, |
| | | viewDisplay: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | viewDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入试卷名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 210, |
| | | // overHidden:true, |
| | | }, |
| | | |
| | | data () { |
| | | { |
| | | label: "姓名", |
| | | prop: "realName", |
| | | search: true, |
| | | searchSpan: 3, |
| | | slot: true, |
| | | viewDisplay: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | viewDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入试卷名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 80, |
| | | // overHidden:true, |
| | | }, |
| | | |
| | | return { |
| | | Audit: {}, |
| | | dialogFormVisible: false, |
| | | optionAudit: { |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | dialogWidth: 1000, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, //liu |
| | | index: true, |
| | | stripe: true, |
| | | viewBtn: false, |
| | | addBtn: false, |
| | | editBtn: false, |
| | | selection: true, |
| | | excelBtn: false, |
| | | menuWidth: 230, |
| | | dialogClickModal: false, |
| | | column: [{ |
| | | label: "审核状态", |
| | | search: true, |
| | | searchSpan: 5, |
| | | span: 24, |
| | | prop: "status", |
| | | slot: true, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | type: "select", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择审核类型", |
| | | trigger: "blur" |
| | | }], |
| | | dicData: [{ |
| | | label: "待审核", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "审核通过", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "审核不通过", |
| | | value: 3, |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: "审核明细", |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "auditDetail" |
| | | } |
| | | ], |
| | | }, |
| | | obj: { |
| | | name: "张三", |
| | | }, |
| | | questionBankOption: { |
| | | // 操作栏多余按钮去除 |
| | | delBtn: false, |
| | | editBtn: true, |
| | | addBtn: false, |
| | | selection: false, |
| | | check:false, |
| | | // 导出按钮 |
| | | // excelBtn: true, |
| | | // excelBtnText: "成绩导出", |
| | | viewBtn: true, |
| | | // title: '成绩', |
| | | align: "center", |
| | | height: "auto", |
| | | calcHeight: 80, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 4, |
| | | index: true, |
| | | indexLabel: "序号", |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | // 操作栏宽度 |
| | | menu: true, |
| | | menuWidth: 295, |
| | | labelWidth: 120, |
| | | column: [ |
| | | { |
| | | label: "考试名称", |
| | | prop: "examName", |
| | | search: true, |
| | | searchSpan: 5, |
| | | slot: true, |
| | | viewDisplay: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | viewDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入试卷名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 210, |
| | | // overHidden:true, |
| | | }, |
| | | { |
| | | label: "所属公司", |
| | | prop: "deptName", |
| | | search: true, |
| | | searchSpan: 4, |
| | | // dicUrl: '/api/blade-system/dept/tree', |
| | | // props: { |
| | | // label: "title", |
| | | // value: "id", |
| | | // }, |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入所属公司", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 230, |
| | | }, |
| | | |
| | | { |
| | | label: "姓名", |
| | | prop: "realName", |
| | | search: true, |
| | | searchSpan: 3, |
| | | slot: true, |
| | | viewDisplay: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | viewDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入试卷名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 80, |
| | | // overHidden:true, |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | | prop: "idCardNo", |
| | | search: true, |
| | | searchSpan: 4, |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入保安姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 140, |
| | | }, |
| | | |
| | | { |
| | | label: "所属公司", |
| | | prop: "deptName", |
| | | search: true, |
| | | searchSpan: 4, |
| | | // dicUrl: '/api/blade-system/dept/tree', |
| | | // props: { |
| | | // label: "title", |
| | | // value: "id", |
| | | // }, |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入所属公司", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 230, |
| | | }, |
| | | { |
| | | label: "原理论成绩", |
| | | prop: "oldScore", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 88, |
| | | }, |
| | | |
| | | { |
| | | label: "身份证号", |
| | | prop: "idCardNo", |
| | | search: true, |
| | | searchSpan: 4, |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入保安姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 140, |
| | | }, |
| | | { |
| | | label: "修改后理论成绩", |
| | | prop: "newScore", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 88, |
| | | }, |
| | | |
| | | { |
| | | label: "原理论成绩", |
| | | prop: "oldScore", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 88 |
| | | }, |
| | | { |
| | | label: "申请理由", |
| | | prop: "applyCause", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | }, |
| | | |
| | | { |
| | | label: "修改后理论成绩", |
| | | prop: "newScore", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 88 |
| | | }, |
| | | { |
| | | label: "修改申请时间", |
| | | prop: "createTime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | slot: true, |
| | | searchSpan: 4, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: false, |
| | | width: 120, |
| | | }, |
| | | |
| | | { |
| | | label: "申请理由", |
| | | prop: "applyCause", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | }, |
| | | { |
| | | label: "审核时间", |
| | | prop: "auditTime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | slot: true, |
| | | searchSpan: 4, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: false, |
| | | width: 120, |
| | | }, |
| | | |
| | | { |
| | | label: "修改申请时间", |
| | | prop: "createTime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | slot: true, |
| | | searchSpan: 4, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: false, |
| | | width: 120 |
| | | }, |
| | | { |
| | | label: "审核状态", |
| | | prop: "status", |
| | | type: "select", |
| | | slot: true, |
| | | search: true, |
| | | searchSpan: 3, |
| | | dicData: [ |
| | | { |
| | | label: "待审核", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "审核通过", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "审核不通过", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 96, |
| | | }, |
| | | |
| | | { |
| | | label: "审核时间", |
| | | prop: "auditTime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | slot: true, |
| | | searchSpan: 4, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: false, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: false, |
| | | width: 120 |
| | | }, |
| | | |
| | | { |
| | | label: "审核状态", |
| | | prop: "status", |
| | | type: "select", |
| | | slot: true, |
| | | search: true, |
| | | searchSpan: 3, |
| | | dicData: [ |
| | | { |
| | | label: "待审核", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "审核通过", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "审核不通过", |
| | | value: 3, |
| | | } |
| | | ], |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 96 |
| | | }, |
| | | |
| | | { |
| | | label: "审核明细", |
| | | prop: "auditDetail", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 68, |
| | | } |
| | | ], |
| | | }, |
| | | questionBankSearch: {}, |
| | | questionBankLoading: true, |
| | | questionBankData: [], |
| | | questionBankPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | | |
| | | }; |
| | | }, |
| | | created(){ |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //判断是否为市局管理员 |
| | | if(this.userInfo.jurisdiction=="1372091709474910209"){ |
| | | this.check = true; |
| | | }else{ |
| | | this.check = false; |
| | | } |
| | | { |
| | | label: "审核明细", |
| | | prop: "auditDetail", |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | | // 表单新增时是否可见 |
| | | addDisplay: true, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | | editDisabled: true, |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 68, |
| | | }, |
| | | ], |
| | | }, |
| | | questionBankSearch: {}, |
| | | questionBankLoading: true, |
| | | questionBankData: [], |
| | | questionBankPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | | }; |
| | | }, |
| | | created() { |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //判断是否为市局管理员 |
| | | if (this.userInfo.jurisdiction == "1372091709474910209") { |
| | | this.check = true; |
| | | } else { |
| | | this.check = false; |
| | | } |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(null, false), |
| | | viewBtn: this.vaildData(this.permission.score_audit_view, false), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData(this.permission.score_audit_edit, false), |
| | | }; |
| | | }, |
| | | mounted () { }, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList () { |
| | | return { |
| | | addBtn: this.vaildData(null, false), |
| | | viewBtn: this.vaildData( |
| | | this.permission.score_audit_view, |
| | | false |
| | | ), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData( |
| | | this.permission.score_audit_edit, |
| | | false |
| | | ), |
| | | }; |
| | | }, |
| | | }, |
| | | methods: { |
| | | getNewTime() { |
| | | var nowTime = new Date(); |
| | | |
| | | var oneHoursAgo = new Date( |
| | | new Date(nowTime).getTime() - 1 * 60 * 60 * 1000 |
| | | ); |
| | | var oneHoursAgoY = oneHoursAgo.getFullYear(); |
| | | var oneHoursAgoM = |
| | | oneHoursAgo.getMonth() + 1 < 10 |
| | | ? "0" + (oneHoursAgo.getMonth() + 1) |
| | | : oneHoursAgo.getMonth() + 1; |
| | | var oneHoursAgoD = |
| | | oneHoursAgo.getDate() < 10 |
| | | ? "0" + oneHoursAgo.getDate() |
| | | : oneHoursAgo.getDate(); |
| | | var oneHoursAgoH = |
| | | oneHoursAgo.getHours() < 10 |
| | | ? "0" + oneHoursAgo.getHours() |
| | | : oneHoursAgo.getHours(); |
| | | var oneHoursAgom = |
| | | oneHoursAgo.getMinutes() < 10 |
| | | ? "0" + oneHoursAgo.getMinutes() |
| | | : oneHoursAgo.getMinutes(); |
| | | var oneHoursAgos = |
| | | oneHoursAgo.getSeconds() < 10 |
| | | ? "0" + oneHoursAgo.getSeconds() |
| | | : oneHoursAgo.getSeconds(); |
| | | |
| | | /** |
| | | * @return 返回1小时,2小时,3小时,4小时,24小时 |
| | | */ |
| | | return ( |
| | | oneHoursAgoY + |
| | | "-" + |
| | | oneHoursAgoM + |
| | | "-" + |
| | | oneHoursAgoD + |
| | | " " + |
| | | oneHoursAgoH + |
| | | ":" + |
| | | oneHoursAgom + |
| | | ":" + |
| | | oneHoursAgos |
| | | ); |
| | | }, |
| | | methods: { |
| | | getNewTime () { |
| | | var nowTime = new Date() |
| | | |
| | | var oneHoursAgo = new Date(new Date(nowTime).getTime() - 1 * 60 * 60 * 1000) |
| | | var oneHoursAgoY = oneHoursAgo.getFullYear() |
| | | var oneHoursAgoM = oneHoursAgo.getMonth() + 1 < 10 ? '0' + (oneHoursAgo.getMonth() + 1) : oneHoursAgo.getMonth() + 1 |
| | | var oneHoursAgoD = oneHoursAgo.getDate() < 10 ? '0' + oneHoursAgo.getDate() : oneHoursAgo.getDate() |
| | | var oneHoursAgoH = oneHoursAgo.getHours() < 10 ? '0' + oneHoursAgo.getHours() : oneHoursAgo.getHours() |
| | | var oneHoursAgom = oneHoursAgo.getMinutes() < 10 ? '0' + oneHoursAgo.getMinutes() : oneHoursAgo.getMinutes() |
| | | var oneHoursAgos = oneHoursAgo.getSeconds() < 10 ? '0' + oneHoursAgo.getSeconds() : oneHoursAgo.getSeconds() |
| | | |
| | | /** |
| | | * @return 返回1小时,2小时,3小时,4小时,24小时 |
| | | */ |
| | | return oneHoursAgoY + '-' + oneHoursAgoM + '-' + oneHoursAgoD + ' ' + oneHoursAgoH + ':' + oneHoursAgom + ':' + oneHoursAgos |
| | | }, |
| | | |
| | | handleAudit (row) { |
| | | this.dialogFormVisible = true; |
| | | this.Audit = row; |
| | | }, |
| | | //审核 |
| | | submit (row, done, loading) { |
| | | |
| | | row.auditTime = this.getNewTime() |
| | | const data = { |
| | | id:row.id, |
| | | status:row.status, |
| | | auditDetail:row.auditDetail, |
| | | auditUser:this.userInfo.Id |
| | | } |
| | | |
| | | applyAudit(data).then( |
| | | () => { |
| | | this.dialogFormVisible = false; |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | questionBankOnLoad (page, params = {}) { |
| | | //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩 |
| | | var that = this; |
| | | //获取当前登录人员的角色信息 |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if (roleAlias == "保安公司管理员" || roleAlias == "保安") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | } |
| | | if (roleAlias == "培训公司管理员") { |
| | | //如果是培训公司管理员 |
| | | params["trainUnitId"] = that.userInfo.dept_id; |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //如果是公安管理员 |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | } |
| | | that.questionBankLoading = false; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.questionBankQuery) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | that.questionBankPage.total = data.total; |
| | | that.questionBankData = data.records; |
| | | that.questionBankLoading = false; |
| | | that.questionBankSelectionClear(); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | questionBankSelectionClear () { |
| | | this.questionBankSelectionList = []; |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }, |
| | | questionBankSelectionChange (list) { |
| | | this.questionBankSelectionList = list; |
| | | }, |
| | | questionBankSearchChange (params, done) { |
| | | this.questionBankQuery = params; |
| | | this.questionBankPage.currentPage = 1; |
| | | this.questionBankOnLoad(this.questionBankPage, params); |
| | | done(); |
| | | }, |
| | | questionBankSearchReset () { |
| | | this.questionBankQuery = {}; |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | }, |
| | | questionBankCurrentChange (currentPage) { |
| | | this.questionBankPage.currentPage = currentPage; |
| | | }, |
| | | questionBankSizeChange (pageSize) { |
| | | this.questionBankPage.pageSize = pageSize; |
| | | }, |
| | | |
| | | questionBankRowUpdate (row, index, done, loading) { |
| | | update({ |
| | | id: row.id, |
| | | newScore: row.newScore |
| | | }).then( |
| | | () => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | refreshChange () { |
| | | this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery); |
| | | }, |
| | | |
| | | handleAudit(row) { |
| | | this.dialogFormVisible = true; |
| | | this.Audit = row; |
| | | }, |
| | | //审核 |
| | | submit(row, done, loading) { |
| | | row.auditTime = this.getNewTime(); |
| | | const data = { |
| | | id: row.id, |
| | | status: row.status, |
| | | auditDetail: row.auditDetail, |
| | | auditUser: this.userInfo.Id, |
| | | }; |
| | | |
| | | applyAudit(data).then( |
| | | () => { |
| | | this.dialogFormVisible = false; |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | questionBankOnLoad(page, params = {}) { |
| | | //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩 |
| | | var that = this; |
| | | //获取当前登录人员的角色信息 |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if (roleAlias == "保安公司管理员" || roleAlias == "保安") { |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | } |
| | | if (roleAlias == "培训公司管理员") { |
| | | //如果是培训公司管理员 |
| | | params["trainUnitId"] = that.userInfo.dept_id; |
| | | } |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | //如果是公安管理员 |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | } |
| | | that.questionBankLoading = false; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.questionBankQuery) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | that.questionBankPage.total = data.total; |
| | | that.questionBankData = data.records; |
| | | that.questionBankLoading = false; |
| | | that.questionBankSelectionClear(); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | questionBankSelectionClear() { |
| | | this.questionBankSelectionList = []; |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | }, |
| | | questionBankSelectionChange(list) { |
| | | this.questionBankSelectionList = list; |
| | | }, |
| | | questionBankSearchChange(params, done) { |
| | | this.questionBankQuery = params; |
| | | this.questionBankPage.currentPage = 1; |
| | | this.questionBankOnLoad(this.questionBankPage, params); |
| | | done(); |
| | | }, |
| | | questionBankSearchReset() { |
| | | this.questionBankQuery = {}; |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | }, |
| | | questionBankCurrentChange(currentPage) { |
| | | this.questionBankPage.currentPage = currentPage; |
| | | }, |
| | | questionBankSizeChange(pageSize) { |
| | | this.questionBankPage.pageSize = pageSize; |
| | | }, |
| | | |
| | | questionBankRowUpdate(row, index, done, loading) { |
| | | update({ |
| | | id: row.id, |
| | | newScore: row.newScore, |
| | | }).then( |
| | | () => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | refreshChange() { |
| | | this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .morpheus-box { |
| | | position: relative; |
| | | position: relative; |
| | | } |
| | | </style> |
| src/views/trainExam/performance.vue
src/views/trainExam/singleperformance.vue
src/views/traincompany/index.vue
src/views/trainingRegistration/data.js
src/views/trainingRegistration/index.vue
src/views/util/demo/dict-classic.vue
src/views/work/claim.vue
src/views/work/done.vue
src/views/work/send.vue
src/views/work/start.vue
src/views/work/todo.vue
src/views/workreport/workreply.vue
src/views/workreport/workreport.vue
src/views/zc/zc.vue |