feat: 品牌工作室迁移完成
This commit is contained in:
@@ -3,20 +3,26 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<el-form :inline="true" :model="pageForm">
|
||||
<el-form-item label="创立年度">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="工作室名称">
|
||||
<el-input v-model="pageForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建年份">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="pageData">查询</el-button>
|
||||
<el-button @click="openApply()">新建</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="tableData" border>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="申请列表">
|
||||
<el-button size="small" type="primary" @click="openApply()">申请品牌工作室</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" border style="width: 100%">
|
||||
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="工作室名称" min-width="160"></el-table-column>
|
||||
<el-table-column prop="createYear" label="创立年度" width="100"></el-table-column>
|
||||
@@ -25,28 +31,100 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="type" label="工作室类型" width="120"></el-table-column>
|
||||
<el-table-column prop="track" label="工作室赛道" width="120"></el-table-column>
|
||||
<el-table-column prop="memberNum" label="成员人数" width="90"></el-table-column>
|
||||
<el-table-column label="状态" width="100">
|
||||
<el-table-column label="流程状态" width="100">
|
||||
<template slot-scope="{row}">
|
||||
<el-tag v-if="row.status===0" type="info">草稿</el-tag>
|
||||
<el-tag v-else-if="row.status===1" type="warning">审核中</el-tag>
|
||||
<el-tag v-else-if="row.status===2" type="danger">驳回</el-tag>
|
||||
<el-tag v-else-if="row.status===5" type="success">通过</el-tag>
|
||||
<el-tag v-else>{{row.status}}</el-tag>
|
||||
<el-tag v-if="!row.instanceId" type="info">草稿</el-tag>
|
||||
<enum-tag
|
||||
v-else
|
||||
:value="row.instanceState"
|
||||
name="ProcessInstanceStateEnum"
|
||||
label_key="message"
|
||||
size="small">
|
||||
</enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="180">
|
||||
<el-table-column label="操作" width="260" fixed="right">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="openApply(row.id)">编辑</el-button>
|
||||
<el-button type="text" @click="submitApply(row)" v-if="row.status===0 || row.status===7">申请</el-button>
|
||||
<el-button size="mini" type="primary" @click="openView(row)" v-if="row.instanceId">查看</el-button>
|
||||
<el-button size="mini" type="primary" @click="openApply(row.id)" v-if="row.taskKey === 'startTask' || !row.instanceId">编辑</el-button>
|
||||
<el-button size="mini" type="danger" @click="recallApply(row)" v-if="row.canRevoke === true || row.canRevoke === 1">撤回</el-button>
|
||||
<el-button size="mini" type="danger" @click="deleteApply(row.id)" v-if="row.taskKey === 'startTask' || !row.instanceId">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<template #view>
|
||||
<div>
|
||||
<el-tabs tab-position="top" v-model="activeName">
|
||||
<el-tab-pane name="1" label="基础信息">
|
||||
<div class="process-title">
|
||||
品牌工作室申请
|
||||
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
|
||||
</div>
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="工作室名称">{{detail.name}}</el-descriptions-item>
|
||||
<el-descriptions-item label="创立年度">{{detail.createYear}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属工会">{{detail.unionName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{detail.deptName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人">{{detail.leadPeople}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人年龄">{{detail.leadAge}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人身份">{{detail.leadIdentity}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人荣誉">{{detail.leadHonor}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室类型">{{detail.type}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属赛道">{{detail.track}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室地址" :span="2">{{detail.address}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室介绍" :span="2">{{detail.introduction}}</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">{{detail.remark}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<snaker-chart ref="snakerChartRef"></snaker-chart>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="2" label="成员信息">
|
||||
<div class="process-title">成员信息</div>
|
||||
<el-table :data="detail.brandStudioMembers || []" border size="small">
|
||||
<el-table-column label="姓名" prop="name" width="120"></el-table-column>
|
||||
<el-table-column label="出生年月" prop="birthdate" width="120"></el-table-column>
|
||||
<el-table-column label="学位" prop="grade" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="职称" prop="professional" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="所在单位" prop="deptName" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="3" label="审核记录">
|
||||
<template v-if="doneTasks.length > 0" v-for="task in doneTasks">
|
||||
<div class="mt10">
|
||||
<div class="process-title">{{ task.displayName }}</div>
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id"
|
||||
v-if="task.ext.isFirstTaskNode">
|
||||
<el-descriptions-item label="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})</el-descriptions-item>
|
||||
<el-descriptions-item label="申请时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE" :value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id" v-else>
|
||||
<el-descriptions-item label="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})</el-descriptions-item>
|
||||
<el-descriptions-item label="办理时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE" :value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{ task.taskFormData.opinion || task.taskFormData.remark || task.taskFormData.approvalComment }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-empty description="暂无审核记录"></el-empty>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: "#app",
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
@@ -54,7 +132,11 @@ layout("/layouts/platform.html"){
|
||||
limit: 20,
|
||||
createYear: String(new Date().getFullYear())
|
||||
},
|
||||
tableData: []
|
||||
tableData: [],
|
||||
detail: {},
|
||||
currentRow: {},
|
||||
activeName: "1",
|
||||
doneTasks: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -67,16 +149,78 @@ layout("/layouts/platform.html"){
|
||||
this.tableData = data.list || data.data || []
|
||||
})
|
||||
},
|
||||
openApply(id) {
|
||||
window.location.href = '/platform/zhgh/brand/apply/index' + (id ? '?id=' + id : '')
|
||||
openApply(id, mode) {
|
||||
let url = '/platform/zhgh/brand/apply/index'
|
||||
const params = []
|
||||
if (id) {
|
||||
params.push('id=' + id)
|
||||
}
|
||||
if (mode) {
|
||||
params.push('mode=' + mode)
|
||||
}
|
||||
if (params.length) {
|
||||
url += '?' + params.join('&')
|
||||
}
|
||||
window.location.href = url
|
||||
},
|
||||
submitApply(row) {
|
||||
this.$axios.post('/platform/zhgh/brand/application/submitApply', {
|
||||
applicationId: row.id,
|
||||
status: 1
|
||||
openView(row) {
|
||||
this.$refs.guava.view(() => {
|
||||
this.currentRow = row
|
||||
this.activeName = "1"
|
||||
this.loadDetail(row.id)
|
||||
this.getDoneTasks(row)
|
||||
})
|
||||
},
|
||||
loadDetail(id) {
|
||||
this.$axios.get('/platform/zhgh/brand/application/' + id).then((res) => {
|
||||
this.detail = this.getData(res) || {}
|
||||
this.detail.brandStudioMembers = this.detail.brandStudioMembers || []
|
||||
})
|
||||
},
|
||||
getDoneTasks(row) {
|
||||
this.$axios.post('/flow/common/doneTasks', {
|
||||
instanceId: row.instanceId,
|
||||
bizId: row.id
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data || []
|
||||
}
|
||||
})
|
||||
},
|
||||
openChart() {
|
||||
if (!this.currentRow.instanceId || !this.currentRow.instanceProcessDefineId) {
|
||||
this.$message.warning('暂无流程图信息')
|
||||
return
|
||||
}
|
||||
this.$refs.snakerChartRef.onOpenFull(this.currentRow.instanceProcessDefineId, this.currentRow.instanceId)
|
||||
},
|
||||
recallApply(row) {
|
||||
this.$confirm('您确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$message.success('申请成功')
|
||||
this.pageData()
|
||||
this.$axios.post('/platform/zhgh/brand/flow/recall', {
|
||||
applicationId: row.id,
|
||||
processInstanceTaskId: row.startTaskId
|
||||
}).then(() => {
|
||||
this.$message.success('撤回成功')
|
||||
this.pageData()
|
||||
})
|
||||
})
|
||||
},
|
||||
deleteApply(id) {
|
||||
this.$confirm('您确定要删除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$axios.post('/platform/zhgh/brand/application/delete', {
|
||||
data: [id]
|
||||
}).then(() => {
|
||||
this.$message.success('删除成功')
|
||||
this.pageData()
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
@@ -4,10 +4,8 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<div slot="header">
|
||||
<span>{{form.id ? '修改申请' : '创建申请'}}</span>
|
||||
</div>
|
||||
<el-form ref="form" :model="form" label-width="130px">
|
||||
<snaker-start slot="header" label="品牌工作室申请" define_key="BRAND_STUDIO"></snaker-start>
|
||||
<el-form ref="form" :model="form" label-width="130px" :disabled="isView">
|
||||
<el-row :gutter="15">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工作室名称">
|
||||
@@ -16,22 +14,36 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="创建年份">
|
||||
<el-date-picker v-model="form.createYear" type="year" value-format="yyyy" style="width: 100%"></el-date-picker>
|
||||
<el-input v-model="form.createYear" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属工会">
|
||||
<el-input v-model="form.unionName"></el-input>
|
||||
<el-select v-model="form.unionId" filterable placeholder="请选择所属工会" style="width: 100%" @change="unionChange">
|
||||
<el-option
|
||||
v-for="item in unionOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属机构">
|
||||
<el-input v-model="form.deptName"></el-input>
|
||||
<el-form-item label="所在单位">
|
||||
<el-input v-model="form.deptName" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="领衔人">
|
||||
<el-input v-model="form.leadPeople"></el-input>
|
||||
<el-select v-model="leadPeopleEmplid" filterable placeholder="请选择领衔人" style="width: 100%" @change="leaderChange">
|
||||
<el-option
|
||||
v-for="item in leaderHonors"
|
||||
:key="item.emplid"
|
||||
:label="item.label"
|
||||
:value="item.emplid">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -41,7 +53,14 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="领衔人身份">
|
||||
<el-input v-model="form.leadIdentity"></el-input>
|
||||
<el-select v-model="form.leadIdentity" multiple filterable placeholder="请选择领衔人身份" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in leadPeopleDict"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -51,22 +70,26 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工作室类型">
|
||||
<el-input v-model="form.type"></el-input>
|
||||
<el-select v-model="form.type" filterable placeholder="请选择工作室类型" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in brandOfficeTypeDict"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属赛道">
|
||||
<el-input v-model="form.track"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属领域">
|
||||
<el-input v-model="form.domain"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成员人数">
|
||||
<el-input-number v-model="form.memberNum" :min="1" style="width: 100%"></el-input-number>
|
||||
<el-select v-model="form.track" filterable placeholder="请选择所属赛道" style="width: 100%" @change="trackChange">
|
||||
<el-option
|
||||
v-for="item in brandOfficeTrackDict"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
@@ -86,26 +109,42 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider content-position="left">工作室成员</el-divider>
|
||||
<el-table :data="form.brandStudioMembers" border size="small">
|
||||
<el-divider content-position="left">选择工作室成员</el-divider>
|
||||
<div class="brand-member-toolbar" v-if="!isView">
|
||||
<div class="brand-member-count">已选择 {{form.brandStudioMembers.length}} 人</div>
|
||||
<el-button size="small" type="primary" icon="el-icon-plus" @click="openMemberDialog">选择工作室成员</el-button>
|
||||
</div>
|
||||
<div class="brand-member-toolbar" v-else>
|
||||
<div class="brand-member-count">已选择 {{form.brandStudioMembers.length}} 人</div>
|
||||
</div>
|
||||
<div class="brand-member-table">
|
||||
<el-table :data="form.brandStudioMembers" border size="small">
|
||||
<el-table-column label="姓名" min-width="120">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.name"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="角色" min-width="120">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.role"></el-input>
|
||||
<el-input v-model="row.name" disabled></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="出生年月" min-width="120">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.birthdate"></el-input>
|
||||
<el-date-picker
|
||||
v-model="row.birthdate"
|
||||
type="month"
|
||||
value-format="yyyy-MM"
|
||||
placeholder="请选择出生年月"
|
||||
style="width: 100%">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="学历" min-width="120">
|
||||
<el-table-column label="学位" min-width="120">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.grade"></el-input>
|
||||
<el-select v-model="row.grade" filterable placeholder="请选择学位" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in memberDegreeDict"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="职称" min-width="120">
|
||||
@@ -113,23 +152,43 @@ layout("/layouts/platform.html"){
|
||||
<el-input v-model="row.professional"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="removeMember(scope.$index)">删除</el-button>
|
||||
<el-table-column label="所在单位" min-width="160">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.deptName" disabled></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="margin-top: 10px">
|
||||
<el-button size="small" @click="addMember">添加成员</el-button>
|
||||
<el-table-column label="操作" width="90" v-if="!isView">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="danger" @click="removeMember(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<el-form-item style="margin-top: 20px">
|
||||
<el-button @click="goBack">返回</el-button>
|
||||
<el-form-item class="brand-form-actions" v-if="!isView">
|
||||
<el-button type="primary" :loading="loading" @click="save(0)">保存草稿</el-button>
|
||||
<el-button type="primary" :loading="loading" @click="save(6)">提交申请</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<el-dialog title="选择工作室成员" :visible.sync="memberDialogVisible" width="760px" class="brand-member-dialog">
|
||||
<div class="brand-member-search">
|
||||
<el-input v-model="memberKeyword" placeholder="请输入姓名或工号" clearable @keyup.enter.native="loadMemberCandidates"></el-input>
|
||||
<el-button type="primary" icon="el-icon-search" @click="loadMemberCandidates">查询</el-button>
|
||||
</div>
|
||||
<el-table :data="memberCandidates" border size="small" height="360" @selection-change="memberSelectionChange">
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column prop="loginname" label="工号" width="120"></el-table-column>
|
||||
<el-table-column prop="username" label="姓名" width="120"></el-table-column>
|
||||
<el-table-column prop="unitName" label="所属机构" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
<div slot="footer">
|
||||
<el-button @click="memberDialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="confirmSelectMembers">确定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
@@ -139,11 +198,25 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
isView: false,
|
||||
form: {
|
||||
archive: 0,
|
||||
status: 0,
|
||||
createYear: String(new Date().getFullYear()),
|
||||
leadIdentity: [],
|
||||
brandStudioMembers: []
|
||||
}
|
||||
},
|
||||
unionOptions: [],
|
||||
leaderHonors: [],
|
||||
leadPeopleDict: [],
|
||||
brandOfficeTypeDict: [],
|
||||
brandOfficeTrackDict: [],
|
||||
memberDegreeDict: [],
|
||||
leadPeopleEmplid: '',
|
||||
memberDialogVisible: false,
|
||||
memberKeyword: '',
|
||||
memberCandidates: [],
|
||||
selectedMemberCandidates: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -161,26 +234,139 @@ layout("/layouts/platform.html"){
|
||||
this.form.unionName = union.name
|
||||
this.form.deptid = user.unitId || unit.id
|
||||
this.form.deptName = unit.name
|
||||
this.form.createYear = String(new Date().getFullYear())
|
||||
},
|
||||
async loadUnionOptions() {
|
||||
const user = this.$store.state.user || {}
|
||||
const union = user.union || {}
|
||||
const roles = user.roles || []
|
||||
const isAdmin = roles.some(item => item.code === 'SYSADMIN' || item.code === 'SCHOOL_UNION_ADMIN')
|
||||
this.unionOptions = await this.$businessTool.listUnion(isAdmin ? null : union.id)
|
||||
if (!this.form.unionId && this.unionOptions.length > 0) {
|
||||
this.form.unionId = this.unionOptions[0].id
|
||||
this.form.unionName = this.unionOptions[0].name
|
||||
}
|
||||
},
|
||||
unionChange(unionId) {
|
||||
const union = this.unionOptions.find(item => item.id === unionId)
|
||||
this.form.unionName = union ? union.name : ''
|
||||
},
|
||||
loadDictOptions(code) {
|
||||
return this.$axios.get('/open/common/dictOptions', {params: {code: code}}).then((res) => {
|
||||
return this.getData(res) || []
|
||||
})
|
||||
},
|
||||
loadDicts() {
|
||||
Promise.all([
|
||||
this.loadDictOptions('brand_office_lead_people'),
|
||||
this.loadDictOptions('brand_office_type'),
|
||||
this.loadDictOptions('brand_office_track'),
|
||||
this.loadDictOptions('USER_ACADEMIC_DEGREE')
|
||||
]).then(([leadPeopleDict, brandOfficeTypeDict, brandOfficeTrackDict, memberDegreeDict]) => {
|
||||
this.leadPeopleDict = leadPeopleDict
|
||||
this.brandOfficeTypeDict = brandOfficeTypeDict
|
||||
this.brandOfficeTrackDict = brandOfficeTrackDict
|
||||
this.memberDegreeDict = memberDegreeDict
|
||||
})
|
||||
},
|
||||
loadLeaderHonors() {
|
||||
this.$axios.get('/platform/zhgh/brand/application/leader').then((res) => {
|
||||
const data = this.getData(res) || []
|
||||
this.leaderHonors = data.map(item => {
|
||||
item.label = item.userName + '(' + item.emplid + ')'
|
||||
return item
|
||||
})
|
||||
if (this.form.leadPeople) {
|
||||
const leader = this.leaderHonors.find(item => item.userName === this.form.leadPeople)
|
||||
this.leadPeopleEmplid = leader ? leader.emplid : ''
|
||||
}
|
||||
})
|
||||
},
|
||||
leaderChange(emplid) {
|
||||
const leader = this.leaderHonors.find(item => item.emplid === emplid)
|
||||
if (leader) {
|
||||
this.form.leadPeople = leader.userName
|
||||
this.form.leadAge = leader.age
|
||||
this.form.leadHonor = (leader.honorNames || []).join(',')
|
||||
} else {
|
||||
this.form.leadPeople = ''
|
||||
this.form.leadAge = ''
|
||||
this.form.leadHonor = ''
|
||||
}
|
||||
},
|
||||
trackChange(track) {
|
||||
this.form.domain = track
|
||||
},
|
||||
openMemberDialog() {
|
||||
this.memberDialogVisible = true
|
||||
this.loadMemberCandidates()
|
||||
},
|
||||
loadMemberCandidates() {
|
||||
this.$axios.get('/platform/zhgh/brand/application/members', {
|
||||
params: {
|
||||
unionId: this.form.unionId,
|
||||
keyword: this.memberKeyword
|
||||
}
|
||||
}).then((res) => {
|
||||
this.memberCandidates = this.getData(res) || []
|
||||
})
|
||||
},
|
||||
memberSelectionChange(selection) {
|
||||
this.selectedMemberCandidates = selection
|
||||
},
|
||||
confirmSelectMembers() {
|
||||
if (!this.selectedMemberCandidates.length) {
|
||||
this.$message.warning('请至少选择一位工作室成员')
|
||||
return
|
||||
}
|
||||
const existingIds = new Set((this.form.brandStudioMembers || []).map(item => item.userId || item.id))
|
||||
const members = this.selectedMemberCandidates
|
||||
.filter(item => !existingIds.has(item.id))
|
||||
.map(item => ({
|
||||
userId: item.id,
|
||||
emplid: item.emplid || item.loginname,
|
||||
name: item.name || item.username,
|
||||
role: '',
|
||||
birthdate: item.birthdate,
|
||||
grade: item.grade,
|
||||
professional: item.professional,
|
||||
deptName: item.deptName || item.unitName
|
||||
}))
|
||||
this.form.brandStudioMembers = [...(this.form.brandStudioMembers || []), ...members]
|
||||
this.form.memberNum = this.form.brandStudioMembers.length
|
||||
this.memberDialogVisible = false
|
||||
},
|
||||
loadDetail(id) {
|
||||
this.$axios.get('/platform/zhgh/brand/application/' + id).then((res) => {
|
||||
const data = this.getData(res) || {}
|
||||
data.brandStudioMembers = data.brandStudioMembers || []
|
||||
data.memberNum = data.brandStudioMembers.length
|
||||
data.leadIdentity = data.leadIdentity ? data.leadIdentity.split(',') : []
|
||||
this.form = data
|
||||
this.loadUnionOptions()
|
||||
this.loadLeaderHonors()
|
||||
})
|
||||
},
|
||||
addMember() {
|
||||
this.form.brandStudioMembers.push({})
|
||||
this.form.memberNum = this.form.brandStudioMembers.length
|
||||
},
|
||||
removeMember(index) {
|
||||
this.form.brandStudioMembers.splice(index, 1)
|
||||
this.form.memberNum = this.form.brandStudioMembers.length
|
||||
},
|
||||
save(status) {
|
||||
this.loading = true
|
||||
this.form.status = status
|
||||
const params = Object.assign({}, this.form)
|
||||
params.leadIdentity = (params.leadIdentity || []).join(',')
|
||||
params.domain = params.track
|
||||
params.memberNum = (params.brandStudioMembers || []).length
|
||||
params.brandStudioMembersJson = JSON.stringify(params.brandStudioMembers || [])
|
||||
delete params.brandStudioMembers
|
||||
const request = this.form.id
|
||||
? this.$axios.post('/platform/zhgh/brand/application/update', this.form)
|
||||
: this.$axios.post('/platform/zhgh/brand/application', this.form)
|
||||
? this.$axios.post('/platform/zhgh/brand/application/update', params)
|
||||
: this.$axios.post('/platform/zhgh/brand/application', params)
|
||||
request.then(() => {
|
||||
this.$message.success('保存成功')
|
||||
this.goBack()
|
||||
@@ -193,17 +379,53 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadDicts()
|
||||
this.loadLeaderHonors()
|
||||
const id = this.getParam('id')
|
||||
this.isView = this.getParam('mode') === 'view'
|
||||
if (id) {
|
||||
this.loadDetail(id)
|
||||
} else {
|
||||
this.loadUserInfo()
|
||||
this.addMember()
|
||||
this.loadUnionOptions()
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.brand-member-toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 0 0 12px;
|
||||
padding: 0 2px 0 16px;
|
||||
}
|
||||
.brand-member-count {
|
||||
color: #606266;
|
||||
font-size: 13px;
|
||||
}
|
||||
.brand-member-table {
|
||||
padding-left: 16px;
|
||||
}
|
||||
.brand-form-actions {
|
||||
margin-top: 20px;
|
||||
text-align: right;
|
||||
}
|
||||
.brand-member-search {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.brand-member-search .el-input {
|
||||
flex: 1;
|
||||
}
|
||||
.brand-member-dialog .el-dialog__body {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -3,34 +3,153 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<el-form :inline="true" :model="pageForm">
|
||||
<el-form-item label="工作室名称">
|
||||
<el-input v-model="pageForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建年份">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="pageData">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="tableData" border>
|
||||
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="工作室名称" min-width="160"></el-table-column>
|
||||
<el-table-column prop="createYear" label="创立年度" width="100"></el-table-column>
|
||||
<el-table-column prop="leadPeople" label="领衔人" width="120"></el-table-column>
|
||||
<el-table-column prop="deptName" label="所属机构" min-width="140"></el-table-column>
|
||||
<el-table-column prop="type" label="工作室类型" width="120"></el-table-column>
|
||||
<el-table-column prop="track" label="工作室赛道" width="120"></el-table-column>
|
||||
<el-table-column prop="memberNum" label="成员人数" width="90"></el-table-column>
|
||||
<el-table-column label="操作" width="120">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="openApply(row.id)">编辑工作室</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<el-form :inline="true" :model="pageForm">
|
||||
<el-form-item label="创立年度">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="工作室名称">
|
||||
<el-input v-model="pageForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="pageData">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="工作室列表"></table-tool>
|
||||
<el-table :data="tableData" border style="width: 100%">
|
||||
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="工作室名称" min-width="160"></el-table-column>
|
||||
<el-table-column prop="createYear" label="创立年度" width="100"></el-table-column>
|
||||
<el-table-column prop="leadPeople" label="领衔人" width="120"></el-table-column>
|
||||
<el-table-column prop="deptName" label="所在单位" min-width="140"></el-table-column>
|
||||
<el-table-column prop="type" label="工作室类型" width="120"></el-table-column>
|
||||
<el-table-column prop="track" label="工作室赛道" width="120"></el-table-column>
|
||||
<el-table-column prop="memberNum" label="成员人数" width="90"></el-table-column>
|
||||
<el-table-column label="操作" width="150" fixed="right">
|
||||
<template slot-scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="openDetail(row)">编辑品牌工作室</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<template #public>
|
||||
<div>
|
||||
<div class="process-title">编辑品牌工作室</div>
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane name="base" label="基本信息">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="工作室名称">{{form.name}}</el-descriptions-item>
|
||||
<el-descriptions-item label="创立年度">{{form.createYear}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属工会">{{form.unionName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{form.deptName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人">{{form.leadPeople}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人年龄">{{form.leadAge}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人身份">{{Array.isArray(form.leadIdentity) ? form.leadIdentity.join(',') : form.leadIdentity}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人荣誉">{{form.leadHonor}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室类型">{{form.type}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室赛道">{{form.track}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室地址" :span="2">{{form.address}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室介绍" :span="2">{{form.introduction}}</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">{{form.remark}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="members" label="成员信息">
|
||||
<div class="brand-member-toolbar">
|
||||
<span>成员人数:{{(form.brandStudioMembers || []).length}}</span>
|
||||
<div>
|
||||
<el-button type="primary" size="small" @click="openMemberDialog">选择成员</el-button>
|
||||
<el-button type="primary" size="small" :loading="savingMembers" @click="saveMembers">保存人员</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="form.brandStudioMembers || []" border size="small">
|
||||
<el-table-column label="姓名" prop="name" width="120"></el-table-column>
|
||||
<el-table-column label="出生年月" prop="birthdate" width="180">
|
||||
<template slot-scope="{row}">
|
||||
<el-date-picker v-model="row.birthdate" type="month" value-format="yyyy-MM" style="width: 100%"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="学位" prop="grade" min-width="180">
|
||||
<template slot-scope="{row}">
|
||||
<el-select v-model="row.grade" style="width: 100%">
|
||||
<el-option v-for="item in memberDegreeDict" :key="item.value || item.code" :label="item.label || item.name" :value="item.value || item.code"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="职称" prop="professional" min-width="180">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.professional"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在单位" prop="deptName" min-width="180"></el-table-column>
|
||||
<el-table-column label="操作" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="danger" @click="removeMember(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="honors" label="荣誉信息">
|
||||
<div class="brand-member-toolbar">
|
||||
<span>荣誉数量:{{(form.brandStudioHonors || []).length}}</span>
|
||||
<div>
|
||||
<el-button type="primary" size="small" @click="addHonor">添加荣誉</el-button>
|
||||
<el-button type="primary" size="small" :loading="savingHonors" @click="saveHonors">保存荣誉</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="form.brandStudioHonors || []" border size="small">
|
||||
<el-table-column label="荣誉称号" prop="honorName" min-width="160">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.honorName"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="获取年度" prop="requireYear" min-width="180">
|
||||
<template slot-scope="{row}">
|
||||
<el-date-picker v-model="row.requireYear" type="year" value-format="yyyy" style="width: 100%"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="荣誉类别" prop="honorCategory" min-width="180">
|
||||
<template slot-scope="{row}">
|
||||
<el-select v-model="row.honorCategory" style="width: 100%">
|
||||
<el-option label="外部荣誉" :value="1"></el-option>
|
||||
<el-option label="行内荣誉" :value="2"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="160">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="danger" @click="removeHonor(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-row type="flex" justify="end" class="brand-detail-actions">
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<el-dialog title="选择工作室成员" :visible.sync="memberDialogVisible" width="760px" class="brand-member-dialog">
|
||||
<div class="brand-member-search">
|
||||
<el-input v-model="memberKeyword" placeholder="请输入姓名或工号" clearable @keyup.enter.native="loadMemberCandidates"></el-input>
|
||||
<el-button type="primary" icon="el-icon-search" @click="loadMemberCandidates">查询</el-button>
|
||||
</div>
|
||||
<el-table :data="memberCandidates" border size="small" height="360" @selection-change="memberSelectionChange">
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column prop="loginname" label="工号" width="120"></el-table-column>
|
||||
<el-table-column prop="username" label="姓名" width="120"></el-table-column>
|
||||
<el-table-column prop="unitName" label="所在单位" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<div slot="footer">
|
||||
<el-button @click="memberDialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="confirmSelectMembers">确定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
@@ -44,7 +163,20 @@ layout("/layouts/platform.html"){
|
||||
status: 5,
|
||||
createYear: String(new Date().getFullYear())
|
||||
},
|
||||
tableData: []
|
||||
tableData: [],
|
||||
activeName: 'base',
|
||||
savingMembers: false,
|
||||
savingHonors: false,
|
||||
form: {
|
||||
brandStudioMembers: [],
|
||||
brandStudioHonors: [],
|
||||
leadIdentity: []
|
||||
},
|
||||
memberDegreeDict: [],
|
||||
memberDialogVisible: false,
|
||||
memberKeyword: '',
|
||||
memberCandidates: [],
|
||||
selectedMemberCandidates: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -57,16 +189,157 @@ layout("/layouts/platform.html"){
|
||||
this.tableData = data.list || data.data || []
|
||||
})
|
||||
},
|
||||
openApply(id) {
|
||||
window.location.href = '/platform/zhgh/brand/apply/index?id=' + id
|
||||
loadDictOptions(code) {
|
||||
return this.$axios.get('/open/common/dictOptions', {params: {code: code}}).then((res) => {
|
||||
return this.getData(res) || []
|
||||
})
|
||||
},
|
||||
loadDicts() {
|
||||
Promise.all([
|
||||
this.loadDictOptions('USER_ACADEMIC_DEGREE')
|
||||
]).then(([memberDegreeDict]) => {
|
||||
this.memberDegreeDict = memberDegreeDict
|
||||
})
|
||||
},
|
||||
openDetail(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.activeName = 'base'
|
||||
this.$axios.get('/platform/zhgh/brand/application/' + row.id).then((res) => {
|
||||
const data = this.getData(res) || {}
|
||||
data.brandStudioMembers = data.brandStudioMembers || []
|
||||
data.brandStudioHonors = data.brandStudioHonors || []
|
||||
data.memberNum = data.brandStudioMembers.length
|
||||
data.leadIdentity = data.leadIdentity ? data.leadIdentity.split(',') : []
|
||||
this.form = data
|
||||
})
|
||||
})
|
||||
},
|
||||
openMemberDialog() {
|
||||
this.memberDialogVisible = true
|
||||
this.selectedMemberCandidates = []
|
||||
this.loadMemberCandidates()
|
||||
},
|
||||
loadMemberCandidates() {
|
||||
this.$axios.get('/platform/zhgh/brand/application/members', {
|
||||
params: {
|
||||
unionId: this.form.unionId,
|
||||
keyword: this.memberKeyword
|
||||
}
|
||||
}).then((res) => {
|
||||
this.memberCandidates = this.getData(res) || []
|
||||
})
|
||||
},
|
||||
memberSelectionChange(selection) {
|
||||
this.selectedMemberCandidates = selection
|
||||
},
|
||||
confirmSelectMembers() {
|
||||
if (!this.selectedMemberCandidates.length) {
|
||||
this.$message.warning('请至少选择一位工作室成员')
|
||||
return
|
||||
}
|
||||
const existingIds = new Set((this.form.brandStudioMembers || []).map(item => item.userId || item.id))
|
||||
const members = this.selectedMemberCandidates
|
||||
.filter(item => !existingIds.has(item.id))
|
||||
.map(item => ({
|
||||
userId: item.id,
|
||||
emplid: item.emplid || item.loginname,
|
||||
name: item.name || item.username,
|
||||
role: '',
|
||||
birthdate: item.birthdate,
|
||||
grade: item.grade,
|
||||
professional: item.professional,
|
||||
deptName: item.deptName || item.unitName
|
||||
}))
|
||||
this.form.brandStudioMembers = [...(this.form.brandStudioMembers || []), ...members]
|
||||
this.form.memberNum = this.form.brandStudioMembers.length
|
||||
this.memberDialogVisible = false
|
||||
},
|
||||
removeMember(index) {
|
||||
this.form.brandStudioMembers.splice(index, 1)
|
||||
this.form.memberNum = this.form.brandStudioMembers.length
|
||||
},
|
||||
addHonor() {
|
||||
this.form.brandStudioHonors = this.form.brandStudioHonors || []
|
||||
this.form.brandStudioHonors.push({
|
||||
applicationId: this.form.id,
|
||||
honorName: '',
|
||||
requireYear: String(new Date().getFullYear()),
|
||||
honorCategory: 1
|
||||
})
|
||||
},
|
||||
removeHonor(index) {
|
||||
this.form.brandStudioHonors.splice(index, 1)
|
||||
},
|
||||
buildSaveParams() {
|
||||
const params = Object.assign({}, this.form)
|
||||
params.status = 5
|
||||
params.leadIdentity = (params.leadIdentity || []).join(',')
|
||||
params.domain = params.track
|
||||
params.memberNum = (params.brandStudioMembers || []).length
|
||||
params.brandStudioMembersJson = JSON.stringify(params.brandStudioMembers || [])
|
||||
delete params.brandStudioMembers
|
||||
return params
|
||||
},
|
||||
saveMembers() {
|
||||
this.savingMembers = true
|
||||
const params = this.buildSaveParams()
|
||||
this.$axios.post('/platform/zhgh/brand/application/honor', params).then(() => {
|
||||
this.$message.success('保存人员成功')
|
||||
this.pageData()
|
||||
}).finally(() => {
|
||||
this.savingMembers = false
|
||||
})
|
||||
},
|
||||
saveHonors() {
|
||||
this.savingHonors = true
|
||||
const params = this.buildSaveParams()
|
||||
params.brandStudioHonors = (this.form.brandStudioHonors || []).map(item => ({
|
||||
applicationId: this.form.id,
|
||||
honorName: item.honorName,
|
||||
honorGrade: item.honorGrade,
|
||||
requireYear: item.requireYear,
|
||||
honorCategory: item.honorCategory
|
||||
}))
|
||||
params.brandStudioHonorsJson = JSON.stringify(params.brandStudioHonors)
|
||||
this.$axios.post('/platform/zhgh/brand/application/honor', params).then(() => {
|
||||
this.$message.success('保存荣誉成功')
|
||||
this.pageData()
|
||||
}).finally(() => {
|
||||
this.savingHonors = false
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadDicts()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.brand-detail-actions {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.brand-member-toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.brand-member-search {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.brand-member-search .el-input {
|
||||
flex: 1;
|
||||
}
|
||||
.brand-member-dialog .el-dialog__body {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -3,82 +3,264 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<el-form :inline="true" :model="pageForm">
|
||||
<el-form-item label="工作室名称">
|
||||
<el-input v-model="pageForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建年份">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核状态">
|
||||
<el-select v-model="pageForm.processStatus" clearable>
|
||||
<el-option label="待审核" :value="1"></el-option>
|
||||
<el-option label="已审核" :value="5"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="pageData">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="tableData" border>
|
||||
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="工作室名称" min-width="160"></el-table-column>
|
||||
<el-table-column prop="createYear" label="创立年度" width="100"></el-table-column>
|
||||
<el-table-column prop="leadPeople" label="领衔人" width="120"></el-table-column>
|
||||
<el-table-column prop="deptName" label="所属机构" min-width="140"></el-table-column>
|
||||
<el-table-column prop="processTaskNode" label="审核节点" width="140"></el-table-column>
|
||||
<el-table-column prop="processTaskReason" label="任务状态" width="100"></el-table-column>
|
||||
<el-table-column label="操作" width="180">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="audit(row, 'PASS')" v-if="row.processTaskReason==='ACTIVE'">通过</el-button>
|
||||
<el-button type="text" @click="audit(row, 'REJECT')" v-if="row.processTaskReason==='ACTIVE'">驳回</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="创立年度:">
|
||||
<el-date-picker
|
||||
placeholder="选择创立年度"
|
||||
type="year"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.createYear"
|
||||
value-format="yyyy"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="工作室名称:">
|
||||
<el-input
|
||||
@keyup.enter.native="doSearch"
|
||||
clearable
|
||||
placeholder="请输入工作室名称"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.name"
|
||||
></el-input>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="申请列表">
|
||||
<el-radio-group @change="doSearch" size="small" v-model="pageForm.audit">
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize">
|
||||
<el-table-column :index="indexMethod" label="序号" type="index" width="80px"></el-table-column>
|
||||
<el-table-column label="工作室名称" prop="name" sortable show-overflow-tooltip min-width="180"></el-table-column>
|
||||
<el-table-column label="创立年度" prop="createYear" sortable show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="领衔人" prop="leadPeople" sortable show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="所在单位" prop="deptName" sortable show-overflow-tooltip min-width="180"></el-table-column>
|
||||
<el-table-column label="工作室类型" prop="type" sortable show-overflow-tooltip min-width="140"></el-table-column>
|
||||
<el-table-column label="工作室赛道" prop="track" sortable show-overflow-tooltip min-width="140"></el-table-column>
|
||||
<el-table-column label="成员人数" prop="memberNum" sortable show-overflow-tooltip width="110"></el-table-column>
|
||||
<el-table-column label="工作室地址" prop="address" show-overflow-tooltip min-width="220"></el-table-column>
|
||||
<el-table-column label="当前节点" prop="curTaskName" show-overflow-tooltip min-width="180"></el-table-column>
|
||||
<el-table-column label="审核时间" prop="finishTime" show-overflow-tooltip min-width="180">
|
||||
<template v-slot="{ row }">
|
||||
<span>{{ row.finishTime ? $moment(row.finishTime).format('YYYY-MM-DD HH:mm:ss') : '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="流程状态" prop="instanceState" show-overflow-tooltip min-width="180">
|
||||
<template v-slot="{ row }">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message" size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="180">
|
||||
<template v-slot="{row}">
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskState === 10" @click="onAudit(row)" size="mini" type="primary">审核</el-button>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<template #public>
|
||||
<div>
|
||||
<el-tabs tab-position="top" v-model="activeName">
|
||||
<el-tab-pane name="1" label="基础信息">
|
||||
<div class="process-title">
|
||||
品牌工作室申请
|
||||
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
|
||||
</div>
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="工作室名称">{{detail.name}}</el-descriptions-item>
|
||||
<el-descriptions-item label="创立年度">{{detail.createYear}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属工会">{{detail.unionName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{detail.deptName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人">{{detail.leadPeople}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人年龄">{{detail.leadAge}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人身份">{{detail.leadIdentity}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人荣誉">{{detail.leadHonor}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室类型">{{detail.type}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属赛道">{{detail.track}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室地址" :span="2">{{detail.address}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室介绍" :span="2">{{detail.introduction}}</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">{{detail.remark}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<snaker-chart ref="snakerChartRef"></snaker-chart>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" label-width="0" label-suffix=":" class="flow-task-form">
|
||||
<el-form-item label="审批意见" prop="remark"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.remark"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="2" label="成员信息">
|
||||
<div class="process-title">成员信息</div>
|
||||
<el-table :data="detail.brandStudioMembers || []" border size="small">
|
||||
<el-table-column label="姓名" prop="name" width="120"></el-table-column>
|
||||
<el-table-column label="出生年月" prop="birthdate" width="120"></el-table-column>
|
||||
<el-table-column label="学位" prop="grade" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="职称" prop="professional" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="所在单位" prop="deptName" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="3" label="审核记录">
|
||||
<template v-if="doneTasks.length > 0" v-for="task in doneTasks">
|
||||
<div class="mt10">
|
||||
<div class="process-title">{{ task.displayName }}</div>
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id"
|
||||
v-if="task.ext.isFirstTaskNode">
|
||||
<el-descriptions-item label="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})</el-descriptions-item>
|
||||
<el-descriptions-item label="申请时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE" :value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-descriptions border class="flow-task-form" :column="3" :key="task.id" v-else>
|
||||
<el-descriptions-item label="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})</el-descriptions-item>
|
||||
<el-descriptions-item label="办理时间">{{ task.finishTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE" :value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{ task.taskFormData.opinion || task.taskFormData.remark || task.taskFormData.approvalComment }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-empty description="暂无审核记录"></el-empty>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
processStatus: 1,
|
||||
audit: false,
|
||||
createYear: String(new Date().getFullYear())
|
||||
},
|
||||
tableData: []
|
||||
detail: {},
|
||||
formData: {},
|
||||
currentRow: {},
|
||||
showApprovalForm: false,
|
||||
activeName: "1",
|
||||
doneTasks: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getData(res) {
|
||||
return res.data && res.data.data !== undefined ? res.data.data : res.data
|
||||
},
|
||||
pageData() {
|
||||
this.$axios.get('/platform/zhgh/brand/application/auditPage', {params: this.pageForm}).then((res) => {
|
||||
const data = this.getData(res) || {}
|
||||
this.tableData = data.list || data.data || []
|
||||
onView(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.currentRow = row
|
||||
this.activeName = "1"
|
||||
this.showApprovalForm = false
|
||||
this.loadDetail(row.id)
|
||||
this.getDoneTasks(row)
|
||||
})
|
||||
},
|
||||
audit(row, type) {
|
||||
this.$prompt('请输入审批意见', '审批', {
|
||||
inputType: 'textarea',
|
||||
inputValue: type === 'PASS' ? '同意' : ''
|
||||
}).then(({value}) => {
|
||||
this.$axios.post('/platform/zhgh/brand/flow/audit', {
|
||||
onAudit(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.currentRow = row
|
||||
this.activeName = "1"
|
||||
this.formData = {
|
||||
applicationId: row.id,
|
||||
processInstanceId: row.processInstanceId,
|
||||
processInstanceTaskId: row.processInstanceTaskId || row.flowId,
|
||||
bpmTaskApprovalType: type,
|
||||
remark: value
|
||||
}).then(() => {
|
||||
this.$message.success('操作成功')
|
||||
this.pageData()
|
||||
processInstanceTaskId: row.processInstanceTaskId || row.taskId,
|
||||
taskName: row.curTaskName,
|
||||
remark: ''
|
||||
}
|
||||
this.showApprovalForm = true
|
||||
this.loadDetail(row.id)
|
||||
this.getDoneTasks(row)
|
||||
})
|
||||
},
|
||||
loadDetail(id) {
|
||||
this.$axios.get('/platform/zhgh/brand/application/' + id).then((res) => {
|
||||
this.detail = this.getData(res) || {}
|
||||
this.detail.brandStudioMembers = this.detail.brandStudioMembers || []
|
||||
})
|
||||
},
|
||||
getDoneTasks(row) {
|
||||
this.$axios.post('/flow/common/doneTasks', {
|
||||
instanceId: row.processInstanceId || row.instanceId,
|
||||
bizId: row.id
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data || []
|
||||
}
|
||||
})
|
||||
},
|
||||
openChart() {
|
||||
if (!this.currentRow.processInstanceId || !this.currentRow.instanceProcessDefineId) {
|
||||
this.$message.warning('暂无流程图信息')
|
||||
return
|
||||
}
|
||||
this.$refs.snakerChartRef.onOpenFull(this.currentRow.instanceProcessDefineId, this.currentRow.processInstanceId)
|
||||
},
|
||||
handleTaskAction(val) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post('/platform/zhgh/brand/flow/audit', {
|
||||
...this.formData,
|
||||
submitType: val
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async pageData() {
|
||||
const resp = await this.$axios.post('/platform/zhgh/brand/application/auditPage', this.pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data.list
|
||||
this.pageForm.totalCount = resp.data.totalCount
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
@@ -3,31 +3,87 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<el-form :inline="true" :model="pageForm">
|
||||
<el-form-item label="工作室名称">
|
||||
<el-input v-model="pageForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建年份">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="pageData">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="tableData" border>
|
||||
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
||||
<el-table-column prop="deptName" label="一级机构" min-width="120"></el-table-column>
|
||||
<el-table-column prop="name" label="工作室名称" min-width="160"></el-table-column>
|
||||
<el-table-column prop="leadPeople" label="领衔人" width="120"></el-table-column>
|
||||
<el-table-column prop="honorName" label="外部荣誉称号" min-width="150"></el-table-column>
|
||||
<el-table-column prop="createYear" label="创立年度" width="100"></el-table-column>
|
||||
<el-table-column prop="track" label="所属领域" width="120"></el-table-column>
|
||||
<el-table-column prop="leadHonor" label="领衔人荣誉称号" min-width="160"></el-table-column>
|
||||
<el-table-column prop="memberNum" label="成员人数" width="90"></el-table-column>
|
||||
<el-table-column prop="address" label="工作室地址" min-width="160"></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<el-form :inline="true" :model="pageForm">
|
||||
<el-form-item label="创立年度">
|
||||
<el-date-picker v-model="pageForm.createYear" type="year" value-format="yyyy"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="工作室名称">
|
||||
<el-input v-model="pageForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="pageData">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="工作室台账"></table-tool>
|
||||
<el-table :data="tableData" border style="width: 100%">
|
||||
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="工作室名称" min-width="160"></el-table-column>
|
||||
<el-table-column prop="createYear" label="创立年度" width="100"></el-table-column>
|
||||
<el-table-column prop="leadPeople" label="领衔人" width="120"></el-table-column>
|
||||
<el-table-column prop="deptName" label="所在单位" min-width="140"></el-table-column>
|
||||
<el-table-column prop="honorName" label="荣誉称号" min-width="150"></el-table-column>
|
||||
<el-table-column prop="track" label="所属领域" width="120"></el-table-column>
|
||||
<el-table-column prop="leadHonor" label="领衔人荣誉称号" min-width="160"></el-table-column>
|
||||
<el-table-column prop="memberNum" label="成员人数" width="90"></el-table-column>
|
||||
<el-table-column prop="address" label="工作室地址" min-width="180"></el-table-column>
|
||||
<el-table-column label="操作" width="90" fixed="right">
|
||||
<template slot-scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="openView(row)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<template #public>
|
||||
<div>
|
||||
<div class="process-title">查看品牌工作室</div>
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane name="base" label="基本信息">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="工作室名称">{{form.name}}</el-descriptions-item>
|
||||
<el-descriptions-item label="创立年度">{{form.createYear}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属工会">{{form.unionName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{form.deptName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人">{{form.leadPeople}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人年龄">{{form.leadAge}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人身份">{{form.leadIdentity}}</el-descriptions-item>
|
||||
<el-descriptions-item label="领衔人荣誉">{{form.leadHonor}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室类型">{{form.type}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属领域">{{form.track}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室地址" :span="2">{{form.address}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作室介绍" :span="2">{{form.introduction}}</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">{{form.remark}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="members" label="成员信息">
|
||||
<el-table :data="form.brandStudioMembers || []" border size="small">
|
||||
<el-table-column label="姓名" prop="name" width="120"></el-table-column>
|
||||
<el-table-column label="出生年月" prop="birthdate" width="120"></el-table-column>
|
||||
<el-table-column label="学位" prop="grade" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="职称" prop="professional" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="所在单位" prop="deptName" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="honors" label="荣誉信息">
|
||||
<el-table :data="form.brandStudioHonors || []" border size="small">
|
||||
<el-table-column label="荣誉称号" prop="honorName" min-width="160"></el-table-column>
|
||||
<el-table-column label="获取年度" prop="requireYear" min-width="120"></el-table-column>
|
||||
<el-table-column label="荣誉类别" prop="honorCategory" min-width="120">
|
||||
<template slot-scope="{row}">
|
||||
<span>{{row.honorCategory === 1 ? '外部荣誉' : (row.honorCategory === 2 ? '行内荣誉' : row.honorCategory)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
@@ -38,9 +94,15 @@ layout("/layouts/platform.html"){
|
||||
pageForm: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
status: 5
|
||||
status: 5,
|
||||
createYear: String(new Date().getFullYear())
|
||||
},
|
||||
tableData: []
|
||||
tableData: [],
|
||||
activeName: 'base',
|
||||
form: {
|
||||
brandStudioMembers: [],
|
||||
brandStudioHonors: []
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -52,6 +114,17 @@ layout("/layouts/platform.html"){
|
||||
const data = this.getData(res) || {}
|
||||
this.tableData = data.list || data.data || []
|
||||
})
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.activeName = 'base'
|
||||
this.$axios.get('/platform/zhgh/brand/application/' + row.id).then((res) => {
|
||||
const data = this.getData(res) || {}
|
||||
data.brandStudioMembers = data.brandStudioMembers || []
|
||||
data.brandStudioHonors = data.brandStudioHonors || []
|
||||
this.form = data
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
Reference in New Issue
Block a user