vue-apps/com.actionsoft.apps.coe.pal/views/workspace/WorkspaceUpdate.vue

197 lines
6.9 KiB
Vue
Raw Normal View History

2022-06-28 01:29:37 +08:00
<template>
<el-dialog
:title="title"
:visible.sync="dialogVisible"
:close-on-click-modal=false
width="450px"
:before-close="handleClose" class="workspace-update">
<div style="border: 1px solid #F2F2F2;padding: 0px 10px 10px 10px;">
<awsui-form ref="ruleForm" :model="ruleForm" label-position="top" :rules="rules">
<awsui-form-item label="名称" prop="name">
<awsui-input v-model="ruleForm.name" placeholder="公司名称或项目名称" maxlength="36" :validate-event=false></awsui-input>
</awsui-form-item>
<awsui-form-item label="描述">
<awsui-input v-model="ruleForm.desc" type="textarea" placeholder="请输入描述" maxlength="255" show-word-limit></awsui-input>
</awsui-form-item>
<awsui-form-item label="管理员" prop="admin">
<awsui-select v-model="ruleForm.admin" :options="adminOptions" multiple placeholder="请选择管理员" :validate-event=false @change="updateAdminData"></awsui-select>
</awsui-form-item>
<awsui-form-item label="分类方法">
<div>
<el-radio-group fill="#4E7FF9" v-model="ruleForm.type" size="mini" :disabled="wsId != ''">
<el-tooltip class="item" effect="dark" placement="bottom-start">
<span slot="content">二分法流程分为"核心经营流程""支持管理流程"</span>
<el-radio-button label="二分法"></el-radio-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" placement="bottom-start">
<span slot="content">三分法流程分为"战略流程""运营流程""支持流程"</span>
<el-radio-button label="三分法"></el-radio-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" placement="bottom-start">
<span slot="content">可自己定义流程结构</span>
<el-radio-button label="自定义"></el-radio-button>
</el-tooltip>
</el-radio-group>
</div>
</awsui-form-item>
</awsui-form>
</div>
<span slot="footer" class="dialog-footer">
<awsui-button class="button-general-color" :disabled="buttonDisabled" type="primary" @click="save">确定</awsui-button>
<awsui-button @click="cancel()">取消</awsui-button>
</span>
</el-dialog>
</template>
<script>
import awsuiAxios from "../../awsuiAxios";
export default {
name: "WorkspaceUpdate",
data() {
return {
title : '新建资产库',
buttonDisabled : false,
wsId : '',
dialogVisible : false,
adminOptions : [],
obj : null,// 其他vue页面传递过来的this可以执行相应回调函数
ruleForm: {
name : '',
desc : '',
admin : '',
type : '二分法',
},
rules: {
name: [{ required: true, message: '请输入资产库名称', trigger: 'blur' }],
admin: [{ required: true, message: '请选择管理员', trigger: 'change' }]
}
}
},
mounted() {
},
methods : {
openUpdateWsDlg(action, wsId, obj) {
if (action == 'create') {
this.title = '新建资产库';
this.obj = obj;
} else {
this.title = '修改资产库';
this.wsId = wsId;
this.obj = obj;
}
this.initData();
this.dialogVisible = true;
},
cancel() {
this.$refs['ruleForm'].resetFields();
this.buttonDisabled = false;
this.dialogVisible = false;
},
handleClose(done) {
this.buttonDisabled = false;
this.$refs['ruleForm'].resetFields();
done();
},
initData() {// 初始化数据
const that = this;
// 查询资产库数据,若新建只查询用户若更新查询所有的wsId是否有值为判断依据
const data = {
url:'jd',
data:{
cmd : 'com.actionsoft.apps.coe.pal_ws_update_data_query',
wsId : that.wsId
}
};
awsuiAxios.post(data).then(function (ro) {
if (ro.result == 'ok') {
let data = ro.data;
that.ruleForm.name = data.name;
that.ruleForm.type = data.type == 0 ? "二分法" : data.type == 1 ? "三分法" : "自定义";
that.ruleForm.desc = data.desc;
that.ruleForm.admin = data.admin;
that.adminOptions = data.adminOptions;
} else {
that.$message.error(ro.msg);
}
}).catch(error=>{
console.log(error);
})
},
updateAdminData(val) {
this.ruleForm.admin = val;
},
save() {
const that = this;
// 名称,管理员,描述
const name = that.ruleForm.name;
const desc = that.ruleForm.desc;
const admin = that.ruleForm.admin;
if (name == "") {
that.$message({message: '[名称]不允许为空',type: 'warning'});
return;
}
if (name.length > 36) {
that.$message({message: '[名称]不允许超过36个字',type: 'warning'});
return;
}
if (desc.length > 255) {
that.$message({message: '[描述]不允许超过255个字符',type: 'warning'});
return;
}
if (admin.length == 0) {
that.$message({message: '[管理员]不允许为空',type: 'warning'});
return;
}
that.buttonDisabled = true;
const data = {
url:'jd',
data:{
cmd : 'com.actionsoft.apps.coe.pal_ws_update_save',
wsId : that.wsId,
name : that.ruleForm.name,
type : that.ruleForm.type == '二分法' ? 0 : that.ruleForm.type == '三分法' ? 1 : 2,
desc : that.ruleForm.desc,
admin : that.ruleForm.admin.join(',')
}
};
awsuiAxios.post(data).then(function (ro) {
if (ro.result == 'ok') {
that.$message({
message: ro.msg,
duration: 2000,
type: 'success'
});
that.cancel();
if (that.obj != null) {
that.obj.updateWorkspaceCallback();
}
} else {
that.$message.error(ro.msg);
}
that.buttonDisabled = false;
}).catch(error=>{
console.log(error);
})
}
}
}
</script>
<style scoped>
.inline-block {
display: inline-block;
}
.label-padding {
padding-bottom: 8px;
padding-top: 8px;
}
.workspace-update >>> .el-dialog__body {
padding: 10px 20px;
color: #606266;
font-size: 14px;
word-break: break-all;
}
</style>