This commit is contained in:
=
2026-06-11 16:12:02 +08:00
parent d2f682d5b6
commit 4b224e48fd
25 changed files with 215 additions and 135 deletions
@@ -51,7 +51,9 @@ layout("/layouts/platform.html"){
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="职称">
{{formData.professionalTitle}}
</el-descriptions-item>
<el-descriptions-item label="子女姓名">
<el-form-item prop="childrenName"
@@ -340,6 +342,9 @@ layout("/layouts/platform.html"){
if (this.bizId) {
this.findOne(this.bizId).then(async data => {
this.formData = data
if (!this.formData.professionalTitle) {
this.$set(this.formData, "professionalTitle", (this.$store.state.user && this.$store.state.user.professionalTitle) || "")
}
})
} else {
const {id, username, loginname, mobile, union, unit} = this.$store.state.user
@@ -347,6 +352,7 @@ layout("/layouts/platform.html"){
userId: id,
userName: username,
loginName: loginname,
professionalTitle: this.$store.state.user.professionalTitle || "",
unitName: unit.name,
unitId: unit.id,
unionName: union.name,
@@ -9,6 +9,7 @@ const ENROLLMENT_REGISTRATION_INFO = {
<el-descriptions :column="3" border>
<el-descriptions-item label="监护人(教工)姓名">{{viewData.userName}}</el-descriptions-item>
<el-descriptions-item label="工号">{{viewData.loginName}}</el-descriptions-item>
<el-descriptions-item label="职称">{{viewData.professionalTitle}}</el-descriptions-item>
<el-descriptions-item label="手机号码">{{viewData.mobile}}</el-descriptions-item>
<el-descriptions-item label="所在单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="监护人与学生关系">
@@ -41,6 +41,14 @@ layout("/layouts/platform.html"){
<el-option v-for="item in unitOptions" :label="item.name" :value="item.id"></el-option>
</el-select>
</search-item>
<search-item label="职称">
<el-select clearable filterable placeholder="请选择职称"
style="width: 100%;"
v-model="pageForm.professionalTitle">
<el-option :label="item.name" :value="item.code"
v-for="item in dict.type.TECHNICAL_TITLE_LEVEL"></el-option>
</el-select>
</search-item>
<search-item label="是否解决">
<el-select clearable placeholder="请选择是否解决"
style="width: 100%;"
@@ -68,6 +76,7 @@ layout("/layouts/platform.html"){
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>
<el-table-column prop="unitName" label="所属单位"></el-table-column>
<el-table-column prop="professionalTitle" label="职称"></el-table-column>
<el-table-column prop="mobile" label="手机号码"></el-table-column>
<el-table-column prop="registrationType" label="登记类型">
<template v-slot="{row}">
@@ -112,7 +121,7 @@ layout("/layouts/platform.html"){
new Vue({
el: "#app",
store,
dicts: ["ENROLLMENT_REGISTRATION_TYPE", "ENROLLMENT_REGISTRATION_CHILD_RELATIONSHIP", "ENROLLMENT_REGISTRATION_CHILDREN_PLAN_SCHOOL"],
dicts: ["ENROLLMENT_REGISTRATION_TYPE", "ENROLLMENT_REGISTRATION_CHILD_RELATIONSHIP", "ENROLLMENT_REGISTRATION_CHILDREN_PLAN_SCHOOL", "TECHNICAL_TITLE_LEVEL"],
mixins: [initTableMixins],
data() {
return {
@@ -56,10 +56,11 @@ layout("/layouts/platform.html"){
<el-tag :type="row.isReply ? 'success' : 'warning'" size="small">{{ row.isReply ? '已回复' : '待回复' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="160px">
<el-table-column label="操作" fixed="right" width="240px">
<template slot-scope="{row}">
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
<el-button v-if="!row.isReply" @click="openReply(row)" size="mini" type="success">回复</el-button>
<el-button @click="handleDelete(row)" size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -187,6 +188,23 @@ layout("/layouts/platform.html"){
})
})
},
handleDelete(row) {
this.$confirm('确认删除该信件吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$axios.post('/platform/chairmanMailbox/query/delete', {
id: row.id
}).then((res) => {
if (res.code === 0) {
this.$message.success('删除成功')
this.loadStats()
this.pageData()
}
})
})
},
loadStats() {
this.$axios.post('/platform/chairmanMailbox/query/getStats').then((res) => {
if (res.code === 0) {
@@ -103,7 +103,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "sign", label: "签字" },
@@ -31,10 +31,10 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="编制类别">
<!-- <search-item label="编制类别">
<dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
</search-item> -->
</template>
</search>
`,
@@ -86,7 +86,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "sign", label: "签字" },
@@ -121,7 +121,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "sign", label: "签字" },
@@ -105,7 +105,7 @@ layout("/layouts/platform.html"){
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "sign", label: "签字" },
@@ -95,7 +95,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: 'preparedBy', label: '编制类别', sortable: true },
<!-- { prop: 'preparedBy', label: '编制类别', sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "changeTypes", label: "变更类型", sortable: true, width: 200 },
@@ -26,10 +26,10 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="编制类别">
<!-- <search-item label="编制类别">
<dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
</search-item> -->
</search>
`,
store,
@@ -34,10 +34,10 @@ layout("/layouts/platform.html"){
<dict-select v-model="pageForm.personType" placeholder="请选择教职工类别" @change="doSearch"
code="USER_PERSON_TYPE"></dict-select>
</search-item>
<search-item label="编制类别">
<!-- <search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
</search-item> -->
<search-item label="更新日期">
<el-date-picker :picker-options="pickerOptions" @change="changeDateRangeChange"
align="right" end-placeholder="结束日期" format="yyyy-MM-dd"
@@ -259,7 +259,7 @@ layout("/layouts/platform.html"){
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", width: 120, sortable: true }, -->
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
@@ -69,7 +69,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
{ prop: "changeTypes", label: "变更类型", sortable: true, width: 200 },
@@ -41,10 +41,10 @@ const COMMON_QUERY = {
<dict-select v-model="pageForm.personTypes" placeholder="请选择教职工类别" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="编制类别">
<!-- <search-item label="编制类别">
<dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
</search-item> -->
</search>
`,
props: {
@@ -208,7 +208,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "教职工类别", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
<!-- { prop: "preparedBy", label: "编制类别", sortable: true }, -->
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
],
@@ -159,7 +159,7 @@ layout("/layouts/platform.html"){
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true, checked: 0 },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
@@ -87,7 +87,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
</el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag">
<!-- <el-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-title">编制类别:</el-col>
<el-col class="query-row-content query-row-content-tag">
<el-tag
@@ -110,7 +110,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
type="success">全部
</el-link>
</el-col>
</el-row>
</el-row> -->
<el-row type="flex" align="middle" class="query-row">
<el-col class="query-row-content">
@@ -45,6 +45,7 @@ layout("/layouts/platform_h5.html"){
required></van-field>
<van-field label="工号" :rules="[{ required: true }]" v-model="formData.loginName" readonly
required></van-field>
<van-field label="职称" v-model="formData.professionalTitle" readonly></van-field>
<van-field label="手机号码" name="mobile" :rules="[{ required: true }]" v-model="formData.mobile"
required
placeholder="请输入手机号码"></van-field>
@@ -266,6 +267,9 @@ layout("/layouts/platform_h5.html"){
if (this.bizId) {
this.findOne(this.bizId).then(async data => {
this.formData = data
if (!this.formData.professionalTitle) {
this.$set(this.formData, "professionalTitle", (this.$store.state.user && this.$store.state.user.professionalTitle) || "")
}
//登记类型回显
const registrationType = this.registrationTypeOption.find(v => v.registrationType === data.registrationType)
if (registrationType) {
@@ -293,6 +297,7 @@ layout("/layouts/platform_h5.html"){
userId: id,
userName: username,
loginName: loginname,
professionalTitle: this.$store.state.user.professionalTitle || "",
unitName: unit.name,
unitId: unit.id,
unionName: union.name,
@@ -431,7 +431,7 @@ layout("/layouts/platform_h5.html"){
.then((res) => {
this.typeOptions = JSON.parse(JSON.stringify(res.data))
res.data.forEach((v) => {
this.typeColumns.push({ value: v.id, text: v.name + "(" + v.code + ")" })
this.typeColumns.push({ value: v.id, text: v.name })
})
})
},