Authored by xwx

【禅道#1274】 乙方运维人员信息录入功能开发

... ... @@ -2,9 +2,18 @@
<div>
<!-- 人员信息总汇-->
<el-divider content-position="left">人员信息汇总</el-divider>
<el-button @click="add" style="float:right;margin-right: 6px;margin-bottom: 6px">录入</el-button>
<cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
:showBorder="true" :currentPage="currentPage" :total="total" :loading="false"
:showPage="true" :height="height" :pageSize="pageSize"></cm-table-page>
:showBorder="true" :currentPage="currentPage" :total="total" :loading="false" :showSelection="true"
:showPage="true" :showTools="true" :height="height" :pageSize="pageSize">
<template #tools="{scope}">
<div class="list-handle">
<span class="icon-bg">
<i class="el-icon-delete" title="删除" @click="deleteUser(scope.row)"></i>
</span>
</div>
</template>
</cm-table-page>
</div>
<cm-dialog :title="title" width="80%" :showDialogVisible="dialogFlg" @hidedialog="showDialog" :showFooter="false">
<template v-slot>
... ... @@ -14,7 +23,7 @@
height="500"
:docTypeName="docTypeName"
:pageSize="pageSize"
:treeNode="treeNode" :parentNode="parentNode" :projectId="projectId"></component>
:treeNode="treeNode" :parentNode="parentNode" :projectId="projectId" :isAdd="isAdd"></component>
</div>
</template>
</cm-dialog>
... ...
... ... @@ -53,6 +53,7 @@ export default {
let docTypeName = Vue.ref('');
let componentName = Vue.ref('');
let dialogFlg = Vue.ref(false);
let isAdd = Vue.ref(false);
let columns = Vue.ref([{
... ... @@ -64,6 +65,7 @@ export default {
title.value = "个人信息";
componentName.value = "USER";
props.parentNode.id = row.id;
isAdd.value = false;
showDialog(true);
}
}, {
... ... @@ -107,6 +109,7 @@ export default {
title.value = "个人信息";
componentName.value = "USER";
props.parentNode.id = row.id;
isAdd.value = false;
showDialog(true);
},
render: function (row) {
... ... @@ -172,6 +175,29 @@ export default {
let currentPage = Vue.ref(1);
let total = Vue.ref(0);
let add=()=>{
title.value = "运维人员录入";
componentName.value = "USER";
isAdd.value = true;
showDialog(true);
}
let deleteUser = (row) =>{
let params={
id:row.id
}
proxy.$http.get("/api-web/bOpsPerson/delete", params, function (res) {
if (res.success){
proxy.$global.showMsg("删除成功!","success");
getPage();
}else {
proxy.$global.showMsg("删除失败!","error");
}
});
}
// 获取表格数据
let getPage = (obj) => {
if (!props.treeNode.map || !props.treeNode.map.nodeType) {
... ... @@ -228,7 +254,10 @@ export default {
docTypeName,
dialogFlg,
showDialog,
componentName
componentName,
add,
isAdd,
deleteUser
}
}
}
... ...
... ... @@ -21,7 +21,7 @@
<el-row :gutter="5">
<el-col :span="8">
<el-form-item label="姓名" prop="nickname" class="form-class">
<el-input v-model="ruleForm.nickname" :readonly="true"></el-input>
<el-input v-model="ruleForm.nickname" :readonly="whether"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
... ... @@ -100,7 +100,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="在职状态" prop="certificate" :readonly="true" class="form-class">
<el-radio-group v-model="ruleForm.state" :disabled="true">
<el-radio-group v-model="ruleForm.state" :disabled="whether">
<el-radio :label="1">在职</el-radio>
<el-radio :label="2">离职</el-radio>
</el-radio-group>
... ...
... ... @@ -185,8 +185,11 @@ const assets = (props, {attrs, slots, emit}) => {
* 时间:2021/11/3 20:17
*/
let showDialog = (flg) => {
if (!props.isAdd){
op.value = flg;
}
proxy.$global.showMsg("请先添加用户!","error");
}
let okFunc = () => {
let flg = btnType.value.flg;
... ... @@ -233,6 +236,10 @@ export default {
type: String,
default: ''
},
isAdd: {
type: Boolean,
default: false
}
},
data() {
return {
... ... @@ -256,11 +263,11 @@ export default {
company: '',
headImgUrl: '',
post: '',
projectId: null,
quitTime: '',
state: '',
idcard:'',
politicsStatus:''
politicsStatus:'',
busId:''
})
... ... @@ -330,16 +337,19 @@ export default {
*/
let rules=Vue.ref({
nickname: [
{ message: '请输入姓名', trigger: 'blur' }
{ required: true,message: '请输入姓名', trigger: 'blur' }
],
phone: [
{ validator: checkPhone, trigger: 'blur' }
{ required: true,message:'请输入手机号',validator: checkPhone, trigger: 'blur' }
],
company: [
{ message:'请输入所在公司', trigger: 'blur' }
{ required: true,message:'请输入所在公司', trigger: 'blur' }
],
idcard: [
{ validator:checkIdCard,message:'请输入正确的身份证号', trigger: 'blur'}
],
entryTime: [
{ required: true,message:'请选择入职时间', trigger: 'blur'}
]
});
... ... @@ -353,6 +363,7 @@ export default {
proxy.$refs.rule.validate((valid) => {
if (valid) {
console.log('submit!!');
ruleForm.value.busId = props.treeNode.map.nodeType.projectId;
proxy.$http.post("/api-web/bOpsPerson/saveOrUpdate", ruleForm.value, function (res) {
if (res && res.code == 0) {
proxy.$global.showMsg('保存成功!');
... ... @@ -411,12 +422,18 @@ export default {
getAssetType,
icon
} = assets(props, {attrs, slots, emit});
let whether = Vue.ref(true);
// // 挂载完
Vue.onMounted(() => {
getAssetType();
if (!props.isAdd){
getPage();
getAssets();
}else {
whether.value = false;
}
getAssetType();
})
// 监听编辑状态
... ... @@ -447,6 +464,7 @@ export default {
// 资产属性
icon,
rules,
whether
}
}
}
... ...