first commit
This commit is contained in:
@@ -0,0 +1,411 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
|
||||
.item-button {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.item-button .el-button {
|
||||
padding: 12px 25px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<div slot="header" class="clearfix">
|
||||
<h3 style="color: rgb(24, 103, 176);font-family: Microsoft YaHei;">提案配置</h3>
|
||||
</div>
|
||||
<el-form ref="addForm" :model="formData" :rules="formRules" label-width="150px">
|
||||
<el-form-item label="配置名称" prop="configName">
|
||||
<el-input v-model="formData.configName" placeholder="请输入配置名称"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="附议人数量" prop="seconderNum">
|
||||
<el-input v-model="formData.seconderNum"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
placeholder="请输入附议人数量" maxlength="1"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="提交模式" prop="submitMode">
|
||||
<el-radio-group v-model="formData.submitMode">
|
||||
<el-radio-button :label="item.code"
|
||||
v-for="item in submitModeList">{{item.description}}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="开始撰写时间" prop="startWriteTime">
|
||||
<el-date-picker
|
||||
v-model="formData.startWriteTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd HH:mm:ss"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="开始撰写时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="结束撰写时间" prop="endWriteTime">
|
||||
<el-date-picker
|
||||
v-model="formData.endWriteTime"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd HH:mm:ss"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="结束撰写时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="超时自动提交天数" prop="timeoutDays">
|
||||
<el-input v-model="formData.timeoutDays"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
placeholder="协办单位超时自动提交天数" maxlength="3"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="提醒日期" prop="remindProposalCreatorDate">
|
||||
<el-date-picker
|
||||
:picker-options="remindProposalCreatorDatepickerOptions"
|
||||
placeholder="选择提醒日期"
|
||||
type="datetime"
|
||||
v-model="formData.remindProposalCreatorDate"
|
||||
value-format="yyyy-MM-dd HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="办理提醒设置(多选)" prop="reminder">
|
||||
<el-checkbox-group v-model="formData.reminder">
|
||||
<el-checkbox-button v-for="item in reminderList" :label="item.code"
|
||||
:key="item.id">{{item.name}}
|
||||
</el-checkbox-button>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="撰写提案方式(多选)" prop="manner">
|
||||
<el-checkbox-group v-model="formData.manner">
|
||||
<el-checkbox-button :key="item.id" :label="item.code"
|
||||
v-for="item in allMannerList">
|
||||
{{item.name}}
|
||||
</el-checkbox-button>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="是否自动提交" prop="isAutoSubmit">-->
|
||||
<!-- <el-radio-group v-model="formData.isAutoSubmit">-->
|
||||
<!-- <el-radio-button :label="true">是</el-radio-button>-->
|
||||
<!-- <el-radio-button :label="false">否</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <el-form-item label="个人是否看审核环节" prop="isSeeAudit">-->
|
||||
<!-- <el-radio-group v-model="formData.isSeeAudit">-->
|
||||
<!-- <el-radio-button :label="true">是</el-radio-button>-->
|
||||
<!-- <el-radio-button :label="false">否</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <el-form-item label="团长审核方式" prop="headAuditMethod">-->
|
||||
<!-- <el-radio-group v-model="formData.headAuditMethod">-->
|
||||
<!-- <el-radio-button label="TRADITION">传统方式</el-radio-button>-->
|
||||
<!-- <el-radio-button label="UNITE">联合方式</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<el-form-item label="提案最少字数" prop="words">
|
||||
<el-input-number v-model="formData.words" :step="1" :min="1" :max="5000"
|
||||
:precision="0"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="校领导单位代码" prop="schoolLeaderUnitCode">
|
||||
<el-input v-model="formData.schoolLeaderUnitCode"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="不予立案理由">
|
||||
<template v-for="(o,i) in formData.noFilingReason">
|
||||
<el-row type="flex" style="margin-bottom: 10px">
|
||||
<el-col :span="20">
|
||||
<el-input v-model="formData.noFilingReason[i]" maxlength="100">
|
||||
<template slot="prepend">{{i+1}}.</template>
|
||||
</el-input>
|
||||
</el-col>
|
||||
<el-col :span="4" class="pl5">
|
||||
<el-button type="danger" icon="el-icon-delete"
|
||||
@click="deleteReasonRow(i)"></el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-button type="primary" @click="formData.noFilingReason.push('')">增加一条
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="二次答复需要校领导审批" prop="secondReplyAfterNeedLeaderAudit">
|
||||
<el-radio-group v-model="formData.secondReplyAfterNeedLeaderAudit">
|
||||
<el-radio-button :label="true">是</el-radio-button>
|
||||
<el-radio-button :label="false">否</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-row>
|
||||
<p style="width: 150px;text-align: right;padding-right: 12px">主办配置</p>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="需要答复" prop="masterUnitConfig.isNeedReply">
|
||||
<el-switch
|
||||
v-model="formData.masterUnitConfig.isNeedReply"
|
||||
active-text="需要"
|
||||
inactive-text="不需要">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="答复顺序" prop="masterUnitConfig.isFirstReply">
|
||||
<el-switch
|
||||
v-model="formData.masterUnitConfig.isFirstReply"
|
||||
:disabled="!formData.masterUnitConfig.isNeedReply"
|
||||
active-text="首先答复"
|
||||
inactive-text="第二答复">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="需要二次答复" prop="masterUnitConfig.isNeedSecondReply">
|
||||
<el-switch
|
||||
v-model="formData.masterUnitConfig.isNeedSecondReply"
|
||||
:disabled="!formData.masterUnitConfig.isFirstReply"
|
||||
active-text="需要"
|
||||
inactive-text="不需要">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p style="width: 150px;text-align: right;padding-right: 12px">协办配置</p>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="需要答复" prop="slaveUnitConfig.isNeedReply">
|
||||
<el-switch
|
||||
v-model="formData.slaveUnitConfig.isNeedReply"
|
||||
active-text="需要"
|
||||
inactive-text="不需要">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="答复顺序" prop="slaveUnitConfig.isFirstReply">
|
||||
<el-switch
|
||||
v-model="formData.slaveUnitConfig.isFirstReply"
|
||||
:disabled="!formData.slaveUnitConfig.isNeedReply"
|
||||
active-text="首先答复"
|
||||
inactive-text="第二答复">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="需要二次答复" prop="slaveUnitConfig.isNeedSecondReply">
|
||||
<el-switch
|
||||
v-model="formData.slaveUnitConfig.isNeedSecondReply"
|
||||
:disabled="!formData.slaveUnitConfig.isFirstReply"
|
||||
active-text="需要"
|
||||
inactive-text="不需要">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="撰写须知" prop="writeRemind">
|
||||
<el-input
|
||||
:autosize="{ minRows: 5, maxRows: 10}"
|
||||
maxlength="10000"
|
||||
placeholder="请输入撰写须知"
|
||||
type="textarea"
|
||||
v-model="formData.writeRemind">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item class="item-button">
|
||||
<el-button type="danger" @click="resetForm">重 置</el-button>
|
||||
<el-button type="primary" @click="operation" :loading="subLoading">提 交
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
subLoading: false,
|
||||
reminderList: [],
|
||||
allMannerList: [],
|
||||
openMannerList: [],
|
||||
submitModeList: [],
|
||||
formData: {
|
||||
configName: '智慧工会提案配置',
|
||||
seconderNum: '',
|
||||
reminder: ['SMS'],
|
||||
manner: ['W01'],
|
||||
isAutoSubmit: true,
|
||||
isSeeAudit: false,
|
||||
headAuditMethod: null,
|
||||
words: 1,
|
||||
noFilingReason: [],
|
||||
masterUnitConfig: {},
|
||||
slaveUnitConfig: {},
|
||||
submitMode: 'AMT'
|
||||
},
|
||||
formRules: {
|
||||
configName: [{
|
||||
required: true,
|
||||
message: '请填写配置名称',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
seconderNum: [{
|
||||
required: true,
|
||||
message: '请填写附议人数量',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
reminder: [{
|
||||
required: true,
|
||||
message: '请选择办理提醒设置',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
manner: [{
|
||||
required: true,
|
||||
message: '请选择撰写提案方式',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
isAutoSubmit: [{
|
||||
required: true,
|
||||
message: '请选择是否自动提交',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
isSeeAudit: [{
|
||||
required: true,
|
||||
message: '请选择个人是否能看审核环节',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
headAuditMethod: [{
|
||||
required: true,
|
||||
message: '请选择团长审核方式',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
words: [{
|
||||
required: true,
|
||||
message: '请输入提案内容要求字数',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
submitMode: [{
|
||||
required: true,
|
||||
message: '请选择提交模式',
|
||||
trigger: ['blur', 'change']
|
||||
}]
|
||||
},
|
||||
remindProposalCreatorDatepickerOptions: {
|
||||
disabledDate(time) {
|
||||
return time.getTime() < Date.now()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'formData.masterUnitConfig.isNeedReply'(val) {
|
||||
if (!val) {
|
||||
this.$set(this.formData.masterUnitConfig, 'isFirstReply', false)
|
||||
this.$set(this.formData.masterUnitConfig, 'isNeedSecondReply', false)
|
||||
}
|
||||
},
|
||||
'formData.masterUnitConfig.isFirstReply'(val) {
|
||||
if (!val) {
|
||||
this.$set(this.formData.masterUnitConfig, 'isNeedSecondReply', false)
|
||||
}
|
||||
},
|
||||
'formData.slaveUnitConfig.isNeedReply'(val) {
|
||||
if (!val) {
|
||||
this.$set(this.formData.slaveUnitConfig, 'isFirstReply', false)
|
||||
this.$set(this.formData.slaveUnitConfig, 'isNeedSecondReply', false)
|
||||
}
|
||||
},
|
||||
'formData.slaveUnitConfig.isFirstReply'(val) {
|
||||
if (!val) {
|
||||
this.$set(this.formData.slaveUnitConfig, 'isNeedSecondReply', false)
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteReasonRow(i) {
|
||||
if (i === 0) {
|
||||
return
|
||||
}
|
||||
this.formData.noFilingReason.splice(i, 1)
|
||||
},
|
||||
async getDictByCode() {
|
||||
const {data} = await $.get(loc() + "/getDictByCode", {code: "proposal_manner"})
|
||||
return data
|
||||
},
|
||||
async pageData() {
|
||||
const {data} = await $.get(loc() + "/findOne")
|
||||
if (data) {
|
||||
data.noFilingReason = data.noFilingReason ? data.noFilingReason : ['']
|
||||
if (!data.masterUnitConfig) {
|
||||
data.masterUnitConfig = {}
|
||||
}
|
||||
if (!data.slaveUnitConfig) {
|
||||
data.slaveUnitConfig = {}
|
||||
}
|
||||
this.formData = data
|
||||
}
|
||||
/*this.$set(this.formData, "manner", this.openMannerList.map(v => {
|
||||
return v.id
|
||||
}))*/
|
||||
},
|
||||
resetForm() {
|
||||
if (this.$refs['addForm']) {
|
||||
this.$refs['addForm'].resetFields()
|
||||
}
|
||||
},
|
||||
async operation() {
|
||||
let method = this.formData.id ? "/doEdit" : "/doAdd"
|
||||
const valid = await this.$refs["addForm"].validate()
|
||||
if (valid) {
|
||||
this.subLoading = true
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
const resp = await $.post(loc() + method, {
|
||||
"data": JSON.stringify(this.formData),
|
||||
"mannerList": JSON.stringify(this.formData.manner)
|
||||
})
|
||||
loading.close()
|
||||
this.subLoading = false
|
||||
if (resp.code === 0) {
|
||||
this.$notify.success(resp.msg)
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$notify.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.allMannerList = await this.getDictByCode("proposal_manner");
|
||||
this.reminderList = await getDictByCode("proposal_remind");
|
||||
this.openMannerList = await getDictByCode("proposal_manner");
|
||||
this.submitModeList = await getEnumOptions("ProposalSubmitMode")
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user