|
@@ -3,8 +3,8 @@
|
|
|
:title="textMap[addOrEditData.status]"
|
|
|
:visible.sync="addOrEditData.visible"
|
|
|
@opened="initData"
|
|
|
- width="60%"
|
|
|
- top="1%"
|
|
|
+ width="600px"
|
|
|
+ top="10%"
|
|
|
>
|
|
|
<el-form
|
|
|
ref="dataForm"
|
|
@@ -12,85 +12,41 @@
|
|
|
:model="org"
|
|
|
label-position="left"
|
|
|
label-width="90px"
|
|
|
- style="width: 700px; margin-left:30px;"
|
|
|
+ style="width: 400px; margin-left:30px;"
|
|
|
>
|
|
|
- <el-form-item label="ID" v-if="addOrEditData.status === 'update'">
|
|
|
- <el-input v-model="org.orgId" disabled />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="名称" prop="name">
|
|
|
- <el-input v-model="org.name" />
|
|
|
+ <el-form-item label="上级组织" prop="parentId">
|
|
|
+ <el-cascader
|
|
|
+ v-model="org.parentId"
|
|
|
+ :options="orgGroupList"
|
|
|
+ :props="defaultProps"
|
|
|
+ :show-all-levels="false"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item
|
|
|
- label="标识"
|
|
|
- prop="identify"
|
|
|
- v-if="addOrEditData.status === 'create'"
|
|
|
- >
|
|
|
- <el-input v-model="org.identify" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="标识" prop="identify" v-else>
|
|
|
- {{ org.identify }}
|
|
|
+ <el-form-item label="组织名称" prop="name">
|
|
|
+ <el-input v-model="org.name" clearable />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="组织类型" prop="orgGroup" v-if="org.type === -1">
|
|
|
- <span>超级管理员</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="组织类型" prop="orgGroup" v-else>
|
|
|
- <el-select
|
|
|
- v-model="org.orgGroupId"
|
|
|
- class="filter-item"
|
|
|
- placeholder="Please select"
|
|
|
- >
|
|
|
+ <el-form-item label="组织分类" prop="category">
|
|
|
+ <el-select v-model="org.category" class="filter-item" clearable>
|
|
|
<el-option
|
|
|
- v-for="orgGroup in orgGroupList"
|
|
|
- :key="orgGroup.orgGroupId"
|
|
|
- :label="orgGroup.orgGroupName"
|
|
|
- :value="orgGroup.orgGroupId"
|
|
|
+ v-for="orgGroup in orgCategory"
|
|
|
+ :key="orgGroup.value"
|
|
|
+ :label="orgGroup.label"
|
|
|
+ :value="orgGroup.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="用户名"
|
|
|
- prop="username"
|
|
|
- v-if="addOrEditData.status === 'create'"
|
|
|
- >
|
|
|
- <el-input v-model="org.username" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="密码"
|
|
|
- v-if="addOrEditData.status === 'create'"
|
|
|
- prop="password"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- type="password"
|
|
|
- v-model="org.password"
|
|
|
- placeholder="请输入大于6位数密码"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="级别" v-if="addOrEditData.status === 'update'">
|
|
|
- <el-input v-model="org.level" disabled />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="秘钥"
|
|
|
- prop="secret"
|
|
|
- v-if="addOrEditData.status === 'update'"
|
|
|
- >
|
|
|
- <el-input v-model="org.secret" disabled />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="详细地址">
|
|
|
- <el-input v-model="addr.address" />
|
|
|
+ <el-form-item label="排序" prop="sortCode">
|
|
|
+ <el-input v-model="org.sortCode" clearable />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="dialogFormVisible = false">取消</el-button>
|
|
|
+ <el-button @click="handleClose">取消</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
- v-has="'sysOrg:save'"
|
|
|
+ :loading="btnloading"
|
|
|
@click="addOrEditData.status === 'create' ? createData() : updateData()"
|
|
|
>确认</el-button
|
|
|
>
|
|
@@ -100,10 +56,9 @@
|
|
|
|
|
|
<script>
|
|
|
import waves from "@/directive/waves"; // 水波纹指令
|
|
|
-/*获取组织组信息*/
|
|
|
-import { queryOrgGroupALL } from "@/api/auth/orgGroup";
|
|
|
+import { orgCategory } from "@/constants/index";
|
|
|
/* 组织 */
|
|
|
-import { createOrg, updateOrg, getOrgById } from "@/api/auth/org";
|
|
|
+import { fetchGropList, createOrg, updateOrg } from "@/api/auth/org";
|
|
|
|
|
|
export default {
|
|
|
name: "addOrEditOrgDialog", //添加 或 编辑组织信息
|
|
@@ -113,104 +68,72 @@ export default {
|
|
|
props: ["addOrEditData"],
|
|
|
data() {
|
|
|
return {
|
|
|
- props: {},
|
|
|
- pcdDataList: null,
|
|
|
- pList: null,
|
|
|
- cList: null,
|
|
|
- dList: null,
|
|
|
+ orgCategory,
|
|
|
+ btnloading: false,
|
|
|
+ defaultProps: {
|
|
|
+ label: "name",
|
|
|
+ value: "id",
|
|
|
+ checkStrictly: true,
|
|
|
+ emitPath: false
|
|
|
+ },
|
|
|
org: {
|
|
|
- orgId: null,
|
|
|
- identify: null,
|
|
|
+ parentId: null,
|
|
|
name: null,
|
|
|
- type: 0,
|
|
|
- secret: null,
|
|
|
- orgParentId: null,
|
|
|
- username: null,
|
|
|
- password: null,
|
|
|
- orgGroup: null,
|
|
|
- addr: null
|
|
|
- },
|
|
|
- addr: {
|
|
|
- provId: null,
|
|
|
- cityId: null,
|
|
|
- dictId: null,
|
|
|
- address: null
|
|
|
+ category: null,
|
|
|
+ sortCode: null
|
|
|
},
|
|
|
textMap: {
|
|
|
- create: "添加",
|
|
|
- update: "更新"
|
|
|
+ create: "新建组织",
|
|
|
+ update: "编辑组织"
|
|
|
},
|
|
|
- orgGroupList: null,
|
|
|
+ orgGroupList: [],
|
|
|
rules: {
|
|
|
- name: [{ required: true, message: "请填写名称", trigger: "change" }],
|
|
|
- identify: [
|
|
|
- { required: true, message: "请填写标识", trigger: "change" }
|
|
|
+ name: [{ required: true, message: "请填写组织名称", trigger: "blur" }],
|
|
|
+ parentId: [
|
|
|
+ { required: true, message: "请选择上级组织", trigger: "change" }
|
|
|
],
|
|
|
- type: [{ required: true, message: "请选择类型", trigger: "blur" }],
|
|
|
- secret: [{ required: true, message: "请输入密钥", trigger: "change" }],
|
|
|
- username: [
|
|
|
- { required: true, message: "请填写用户名", trigger: "change" }
|
|
|
+ category: [
|
|
|
+ { required: true, message: "请选择组织分类", trigger: "change" }
|
|
|
],
|
|
|
- password: [
|
|
|
- { required: true, message: "请填写密码", trigger: "change", min: 6 }
|
|
|
- ]
|
|
|
+ sortCode: [{ required: true, message: "请输入排序", trigger: "blur" }]
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
- watch: {},
|
|
|
methods: {
|
|
|
- initData() {
|
|
|
+ async initData() {
|
|
|
//对整个表单进行重置,将所有字段值重置为初始值并移除校验结果
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs["dataForm"].resetFields();
|
|
|
- });
|
|
|
- queryOrgGroupALL().then(response => {
|
|
|
- this.orgGroupList = response.data;
|
|
|
+ // this.$nextTick(() => {
|
|
|
+ // this.$refs["dataForm"].resetFields();
|
|
|
+ // });
|
|
|
+ await fetchGropList().then(response => {
|
|
|
+ const data = response.data;
|
|
|
+ this.orgGroupList = [
|
|
|
+ { id: 0, name: "顶级", weight: 1, children: data }
|
|
|
+ ];
|
|
|
});
|
|
|
- if (this.addOrEditData.orgId != null) {
|
|
|
- this.queryOrgEntity();
|
|
|
+ if (this.addOrEditData.status === "update") {
|
|
|
+ this.org = this.addOrEditData.orgData;
|
|
|
}
|
|
|
},
|
|
|
- queryOrgEntity() {
|
|
|
- getOrgById(this.addOrEditData.orgId).then(response => {
|
|
|
- this.org = Object.assign({}, response.data); // copy obj
|
|
|
- if (response.addr != null) {
|
|
|
- let addrData = response.addr;
|
|
|
- //省份
|
|
|
- this.addr.provId = addrData.provId;
|
|
|
- if (addrData.provId != null) {
|
|
|
- this.cList = addrData.cityList;
|
|
|
- }
|
|
|
- //城市
|
|
|
- this.addr.cityId = addrData.cityId;
|
|
|
- if (addrData.cityId != null) {
|
|
|
- this.dList = addrData.dictList;
|
|
|
- }
|
|
|
- //区域
|
|
|
- this.addr.dictId = addrData.dictId;
|
|
|
- //地址
|
|
|
- this.addr.address = addrData.address;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
createData() {
|
|
|
//保存组织
|
|
|
this.$refs["dataForm"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- this.org.addr = this.addr;
|
|
|
- createOrg(this.org).then(
|
|
|
- () => {
|
|
|
+ this.btnloading = true;
|
|
|
+ createOrg(this.org)
|
|
|
+ .then(() => {
|
|
|
this.$notify({
|
|
|
title: "成功",
|
|
|
- message: "创建成功",
|
|
|
+ message: "新建成功",
|
|
|
type: "success",
|
|
|
duration: 3000
|
|
|
});
|
|
|
//重新加载 -- 调用父节点
|
|
|
this.$emit("refreshTable");
|
|
|
- },
|
|
|
- error => {}
|
|
|
- );
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ this.btnloading = false;
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
},
|
|
@@ -219,21 +142,40 @@ export default {
|
|
|
this.$refs["dataForm"].validate(valid => {
|
|
|
if (valid) {
|
|
|
this.org.addr = this.addr;
|
|
|
- updateOrg(this.org).then(() => {
|
|
|
- this.$notify({
|
|
|
- title: "成功",
|
|
|
- message: "更新成功",
|
|
|
- type: "success",
|
|
|
- duration: 3000
|
|
|
+ updateOrg(this.org)
|
|
|
+ .then(() => {
|
|
|
+ this.$notify({
|
|
|
+ title: "成功",
|
|
|
+ message: "编辑成功",
|
|
|
+ type: "success",
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ //重新加载 -- 调用父节点
|
|
|
+ this.$emit("refreshTable");
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ this.btnloading = false;
|
|
|
});
|
|
|
- //重新加载 -- 调用父节点
|
|
|
- this.$emit("refreshTable");
|
|
|
- });
|
|
|
}
|
|
|
});
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.$refs["dataForm"].resetFields();
|
|
|
+ this.addOrEditData.visible = false;
|
|
|
+ this.org = {
|
|
|
+ parentId: null,
|
|
|
+ name: null,
|
|
|
+ category: null,
|
|
|
+ sortCode: null
|
|
|
+ };
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style scoped></style>
|
|
|
+<style rel="stylesheet/scss" lang="scss" scoped>
|
|
|
+.el-cascader,
|
|
|
+.el-select {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+</style>
|