224 lines
11 KiB
JavaScript
224 lines
11 KiB
JavaScript
const UNIT_MANAGE_TEMPLATE = {
|
|
template: /*language=HTML*/ `
|
|
<div>
|
|
<el-card shadow="never" style="border: 1px solid var(--border-color-lighter);">
|
|
<el-row :gutter="10" type="flex">
|
|
<el-input placeholder="请输入单位名称" clearable size="small" style="width: 300px" v-model="pageForm.unitName"></el-input>
|
|
<el-button type="primary" class="ml5" size="small" icon="el-icon-search" @click="doSearch"></el-button>
|
|
</el-row>
|
|
</el-card>
|
|
<el-card shadow="never" style="border: 1px solid var(--border-color-lighter); margin-top: 10px">
|
|
<table-tool label="单位列表">
|
|
<el-button @click="openAdd" type="primary" size="small">新建单位</el-button>
|
|
</table-tool>
|
|
<el-table :data="tableData" size="mini">
|
|
<el-table-column label="序号" type="index" width="60">
|
|
<template v-slot="scope">{{scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="单位名称" prop="name"></el-table-column>
|
|
<el-table-column label="单位代码" prop="unitcode" width="200"></el-table-column>
|
|
<el-table-column label="单位等级" prop="unitLevel" width="100"></el-table-column>
|
|
<el-table-column label="操作" width="200px">
|
|
<template v-slot="scope">
|
|
<el-button size="mini" type="primary" @click="openEdit(scope.row.id)">编辑</el-button>
|
|
<el-button size="mini" type="danger" @click="doDelete(scope.row.id)">删除</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<!--#include("/layouts/pagination.html"){}#-->
|
|
</el-card>
|
|
|
|
<el-dialog title="设置单位" :visible.sync="dialogVisible" :close-on-click-modal="false" width="40%" top="2%">
|
|
<el-form :model="formData" ref="form" :rules="formRules" size="small" label-width="80px">
|
|
<el-form-item label="上级单位">
|
|
<el-input maxlength="100" disabled :value="currentData?.name" type="text"></el-input>
|
|
</el-form-item>
|
|
<el-form-item prop="name" label="单位名称">
|
|
<el-input maxlength="100" placeholder="请输入单位名称" v-model="formData.name" auto-complete="off" tabindex="2" type="text"></el-input>
|
|
</el-form-item>
|
|
<!-- <el-form-item prop="aliasName" label="单位别名">-->
|
|
<!-- <el-input maxlength="100" placeholder="请输入单位别名" v-model="formData.aliasName" auto-complete="off" tabindex="3" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-form-item prop="unitcode" label="单位编码">
|
|
<el-input maxlength="100" placeholder="请输入单位编码" v-model="formData.unitcode" auto-complete="off" tabindex="4" type="text"></el-input>
|
|
</el-form-item>
|
|
<el-form-item prop="unitLevel" label="单位等级">
|
|
<el-select v-model="formData.unitLevel" placeholder="请输入单位等级" style="width: 100%">
|
|
<el-option v-if="unitLevel === 1" label="一级单位" :value="1"></el-option>
|
|
<el-option v-if="unitLevel === 2" label="二级单位" :value="2"></el-option>
|
|
<el-option v-if="unitLevel === 3" label="三级单位" :value="3"></el-option>
|
|
<el-option v-if="unitLevel === 4" label="四级单位" :value="4"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="unionId" label="所属工会">
|
|
<el-select v-model="formData.unionId" placeholder="请选择所属工会" style="width: 100%">
|
|
<el-option :key="item.id" :label="item.name" :value="item.id"
|
|
v-for="item in unions"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<!-- <el-form-item prop="address" label="单位地址">-->
|
|
<!-- <el-input maxlength="100" placeholder="请输入单位地址" v-model="formData.address" auto-complete="off" tabindex="5" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- <el-form-item prop="telephone" label="联系电话">-->
|
|
<!-- <el-input maxlength="100" placeholder="请输入联系电话" v-model="formData.telephone" auto-complete="off" tabindex="6" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- <el-form-item prop="email" label="单位邮箱">-->
|
|
<!-- <el-input maxlength="100" placeholder="请输入单位邮箱" v-model="formData.email" auto-complete="off" tabindex="7" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- <el-form-item prop="website" label="单位网站">-->
|
|
<!-- <el-input maxlength="100" placeholder="请输入单位网站" v-model="formData.website" auto-complete="off" tabindex="8" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- <el-form-item prop="note" label="单位介绍">-->
|
|
<!-- <el-input type="textarea" v-model="formData.note" placeholder="请输入单位介绍"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="doHandle">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</div>
|
|
`,
|
|
props: {
|
|
currentData: {
|
|
type: Object,
|
|
required: false
|
|
},
|
|
currentNode: {
|
|
type: Number,
|
|
required: false
|
|
},
|
|
unitLevel: {
|
|
type: Number,
|
|
required: true
|
|
}
|
|
},
|
|
store,
|
|
data() {
|
|
return {
|
|
pageForm: {
|
|
unitName: "",
|
|
searchName: "",
|
|
searchKeyword: "",
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
totalCount: 0,
|
|
pageOrderName: "",
|
|
pageOrderBy: "",
|
|
audit: false
|
|
},
|
|
tableData: [],
|
|
dialogVisible: false,
|
|
formData: {},
|
|
formRules: {
|
|
name: [{ required: true, message: "必填", trigger: "blur" }],
|
|
unitcode: [{ required: true, message: "必填", trigger: "blur" }],
|
|
unitLevel: [{ required: false, message: "必填", trigger: "blur" }],
|
|
email: [
|
|
{ required: false, message: "单位邮箱", trigger: "blur" },
|
|
{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }
|
|
]
|
|
},
|
|
options: [],
|
|
parentUnit: [],
|
|
|
|
unions: [],
|
|
}
|
|
},
|
|
computed: {},
|
|
methods: {
|
|
doSearch() {
|
|
this.pageForm.pageNumber = 1
|
|
this.pageData()
|
|
},
|
|
openAdd() {
|
|
this.dialogVisible = true
|
|
this.formData = {} //打开新增窗口,表单先清空
|
|
this.parentUnit = []
|
|
this.options = []
|
|
},
|
|
doHandle() {
|
|
this.$confirm("确定要提交吗?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning"
|
|
}).then(() => {
|
|
const self = this
|
|
const url = this.formData.id ? "/platform/sys/unit/editDo" : "/platform/sys/unit/addDo"
|
|
this.$refs["form"].validate(async function (valid) {
|
|
if (valid) {
|
|
if (self.currentNode) {
|
|
self.formData.parentId = self.currentData.id
|
|
}
|
|
const resp = await self.$axios.post(url, self.formData)
|
|
if (resp.code === 0) {
|
|
self.$message.success(resp.msg)
|
|
self.doSearch()
|
|
self.dialogVisible = false
|
|
self.$emit("refresh", null)
|
|
} else {
|
|
self.$message.warning(resp.msg)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
async openEdit(id) {
|
|
console.log(this.currentData)
|
|
const resp = await this.$axios.post("/platform/sys/unit/edit/" + id)
|
|
if (resp.code === 0) {
|
|
this.formData = resp.data
|
|
this.dialogVisible = true
|
|
} else {
|
|
this.$message.warning(resp.msg)
|
|
}
|
|
},
|
|
async doDelete(id) {
|
|
const confirm = await this.$confirm("此操作将永久删除, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning"
|
|
})
|
|
if (confirm === "confirm") {
|
|
const resp = await this.$axios.post("/platform/sys/unit/delete/" + id)
|
|
if (resp.code === 0) {
|
|
this.$message.success(resp.msg)
|
|
this.doSearch()
|
|
this.$emit("refresh", null)
|
|
} else {
|
|
this.$message.warning(resp.msg)
|
|
}
|
|
}
|
|
},
|
|
pageNumberChange(val) {
|
|
this.pageForm.pageNumber = val
|
|
this.pageData()
|
|
},
|
|
pageSizeChange(val) {
|
|
this.pageForm.pageSize = val
|
|
this.pageData()
|
|
},
|
|
pageData() {
|
|
this.pageForm.unitId = this.currentData.id
|
|
// this.pageForm.unitLevel = this.unitLevel
|
|
this.$axios.post(loc() + "/pageData", this.pageForm).then((res) => {
|
|
if (res.code === 0) {
|
|
this.tableData = res.data.list
|
|
this.pageForm.totalCount = res.data.totalCount
|
|
}
|
|
})
|
|
}
|
|
},
|
|
async created() {
|
|
this.pageData()
|
|
|
|
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
|
this.unions = await this.$businessTool.listUnion()
|
|
} else {
|
|
this.unions = await this.$businessTool.listUnion(this.store.state.user.union.id)
|
|
}
|
|
}
|
|
}
|