commit
This commit is contained in:
@@ -17,7 +17,7 @@ html, body, #app {
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #f1f1f1;
|
||||
background-color: #f7f8fa;
|
||||
overflow-x: hidden;
|
||||
font-size: 16px
|
||||
}
|
||||
@@ -297,3 +297,7 @@ body {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.detail-container .direction-column-cell .van-cell__value{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ layout("/layouts/platform.html"){
|
||||
checkApplyClub(val) {
|
||||
this.$axios.post("/platform/club/join/apply/checkApplyClub", { clubId: val }).then((res) => {
|
||||
if (res.code !== 0) {
|
||||
this.$message.warning("您已申请加入该协会,请勿重复申请")
|
||||
this.$message.warning(res.msg)
|
||||
this.formData.clubId = ""
|
||||
}
|
||||
})
|
||||
@@ -243,7 +243,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, "unionId", user.union ? user.union.id : null)
|
||||
this.$set(this.formData, "unionName", user.union ? user.union.name : null)
|
||||
this.$set(this.formData, "sex", user.sex)
|
||||
this.$set(this.formData, "birthday", user.birthday ? this.$moment(user.birthday).format('yyyy-MM-dd') : '')
|
||||
this.$set(this.formData, "birthday", user.birthday ? this.$moment(user.birthday).format('YYYY-MM-DD') : '')
|
||||
this.$set(this.formData, "nation", user.nation)
|
||||
this.$set(this.formData, "political", user.political)
|
||||
this.$set(this.formData, "education", user.education)
|
||||
|
||||
@@ -16,11 +16,8 @@ layout("/layouts/platform.html"){
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名:">
|
||||
<el-input placeholder="请输入姓名查询" clearable v-model="pageForm.userName"></el-input>
|
||||
</search-item>
|
||||
<search-item label="工号:">
|
||||
<el-input placeholder="请输入工号查询" clearable v-model="pageForm.loginName"></el-input>
|
||||
<search-item label="关键字:">
|
||||
<el-input clearable placeholder="请输入姓名或者工号查询" v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会:">
|
||||
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" filterable clearable style="width: 100%">
|
||||
|
||||
@@ -16,11 +16,8 @@ layout("/layouts/platform.html"){
|
||||
@change="doSearch"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名:">
|
||||
<el-input placeholder="请输入姓名查询" clearable v-model="pageForm.userName"></el-input>
|
||||
</search-item>
|
||||
<search-item label="工号:">
|
||||
<el-input placeholder="请输入工号查询" clearable v-model="pageForm.loginName"></el-input>
|
||||
<search-item label="关键字:">
|
||||
<el-input clearable placeholder="请输入姓名或者工号查询" v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会:">
|
||||
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" filterable clearable style="width: 100%">
|
||||
|
||||
@@ -3,7 +3,19 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
|
||||
.div-Calendar {
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
}
|
||||
.div-Calendar p {
|
||||
margin: 0;
|
||||
}
|
||||
.el-calendar-day:has(.not-allow-day) {
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
.el-dialog__body {
|
||||
padding-top: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
|
||||
@@ -3,359 +3,364 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<el-card shadow="never">
|
||||
<snaker-start slot="header" label="职工慰问" define_key="ZGWW"></snaker-start>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":" class="flow-task-form">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="申请人姓名">{{formData.applyUserName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工号">{{formData.applyLoginName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人单位">{{formData.applyUnitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工会">{{formData.applyUnionName}}</el-descriptions-item>
|
||||
<el-card shadow="never">
|
||||
<snaker-start slot="header" label="职工慰问" define_key="ZGWW"></snaker-start>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="申请人姓名">{{formData.applyUserName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工号">{{formData.applyLoginName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人单位">{{formData.applyUnitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工会">{{formData.applyUnionName}}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="慰问对象">
|
||||
<el-form-item prop="helpUserId" label="慰问对象">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.helpUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(helpUserOptions)"
|
||||
@change="helpUserChange">
|
||||
<el-option
|
||||
v-for="item in helpUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="收款人">
|
||||
<el-form-item prop="payUserId" label="慰问对象">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.payUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(payUserOptions)"
|
||||
@change="payUserChange">
|
||||
<el-option
|
||||
v-for="item in payUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问类型">
|
||||
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
|
||||
placeholder="请选择慰问类型">
|
||||
<el-option v-for="item in typeOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:disabled="!item.enable"
|
||||
:label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问方式">
|
||||
<el-form-item prop="way" label="慰问方式">
|
||||
<el-select v-model="formData.way"
|
||||
placeholder="选择慰问类型自动匹配慰问方式"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
disabled>
|
||||
<el-option label="慰问金 (A)" value="1"></el-option>
|
||||
<el-option label="提货券 (B)" value="2"></el-option>
|
||||
<el-option label="慰问品 (C)" value="3"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问金额">
|
||||
<el-form-item prop="money" label="慰问金额">
|
||||
<el-input style="width: 100%" v-model="formData.money"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
precision="2"
|
||||
placeholder="选择慰问类型自动匹配金额"
|
||||
:min="0"
|
||||
:max="10000"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问时间">
|
||||
<el-form-item label="慰问时间" prop="occurTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.occurTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择慰问时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问对象">
|
||||
<el-form-item prop="helpUserId" label="慰问对象">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.helpUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(helpUserOptions)"
|
||||
@change="helpUserChange">
|
||||
<el-option
|
||||
v-for="item in helpUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="收款人">
|
||||
<el-form-item prop="payUserId" label="慰问对象">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.payUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(payUserOptions)"
|
||||
@change="payUserChange">
|
||||
<el-option
|
||||
v-for="item in payUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问类型">
|
||||
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
|
||||
placeholder="请选择慰问类型">
|
||||
<el-option v-for="item in typeOptions"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
:disabled="!item.enable"
|
||||
:label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问方式">
|
||||
<el-form-item prop="way" label="慰问方式">
|
||||
<el-select v-model="formData.way"
|
||||
placeholder="选择慰问类型自动匹配慰问方式"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
disabled>
|
||||
<el-option label="慰问金 (A)" value="1"></el-option>
|
||||
<el-option label="提货券 (B)" value="2"></el-option>
|
||||
<el-option label="慰问品 (C)" value="3"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问金额">
|
||||
<el-form-item prop="money" label="慰问金额">
|
||||
<el-input style="width: 100%" v-model="formData.money"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
precision="2"
|
||||
placeholder="选择慰问类型自动匹配金额"
|
||||
:min="0"
|
||||
:max="10000"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问时间">
|
||||
<el-form-item label="慰问时间" prop="occurTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.occurTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择慰问时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<template v-if="['2'].includes(formData.type)">
|
||||
<el-descriptions-item label="孩次">
|
||||
<el-form-item prop="child" label="孩次">
|
||||
<el-select v-model="formData.child" placeholder="请选择孩次"
|
||||
style="width: 100%"
|
||||
clearable>
|
||||
<el-option label="一孩" value="一孩"></el-option>
|
||||
<el-option label="二孩" value="二孩"></el-option>
|
||||
<el-option label="三孩" value="三孩"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['3','4'].includes(formData.type)">
|
||||
<el-descriptions-item label="治疗医院">
|
||||
<el-form-item prop="hospital" label="治疗医院">
|
||||
<el-input v-model="formData.hospital" maxlength="50" placeholder="请填写治疗医院"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="病房号">
|
||||
<el-form-item prop="hospitalHouseNum" label="病房号">
|
||||
<el-input v-model="formData.hospitalHouseNum" maxlength="50" placeholder="请填写病房号" type="number"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="床号">
|
||||
<el-form-item prop="hospitalHouseBedNum" label="床号">
|
||||
<el-input v-model="formData.hospitalHouseBedNum" maxlength="50" placeholder="请填写床号" type="number"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['4'].includes(formData.type)">
|
||||
<el-descriptions-item label="患病病种">
|
||||
<el-form-item prop="hospitalBy" label="患病病种">
|
||||
<el-input v-model="formData.hospitalBy" maxlength="50" placeholder="请填写患病病种"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['6'].includes(formData.type)">
|
||||
<el-descriptions-item label="直系亲属">
|
||||
<el-form-item prop="deadImmediateFamily" label="直系亲属">
|
||||
<el-select v-model="formData.deadImmediateFamily">
|
||||
<el-option label="配偶" value="配偶"></el-option>
|
||||
<el-option label="父亲" value="父亲"></el-option>
|
||||
<el-option label="母亲" value="母亲"></el-option>
|
||||
<el-option label="子女" value="子女"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['2'].includes(formData.type)">
|
||||
<el-descriptions-item label="孩次">
|
||||
<el-form-item prop="child" label="孩次">
|
||||
<el-select v-model="formData.child" placeholder="请选择孩次"
|
||||
style="width: 100%"
|
||||
clearable>
|
||||
<el-option label="一孩" value="一孩"></el-option>
|
||||
<el-option label="二孩" value="二孩"></el-option>
|
||||
<el-option label="三孩" value="三孩"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['3','4'].includes(formData.type)">
|
||||
<el-descriptions-item label="治疗医院">
|
||||
<el-form-item prop="hospital" label="治疗医院">
|
||||
<el-input v-model="formData.hospital" maxlength="50"
|
||||
placeholder="请填写治疗医院"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="病房号">
|
||||
<el-form-item prop="hospitalHouseNum" label="病房号">
|
||||
<el-input v-model="formData.hospitalHouseNum" maxlength="50" placeholder="请填写病房号"
|
||||
type="number"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="床号">
|
||||
<el-form-item prop="hospitalHouseBedNum" label="床号">
|
||||
<el-input v-model="formData.hospitalHouseBedNum" maxlength="50" placeholder="请填写床号"
|
||||
type="number"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['4'].includes(formData.type)">
|
||||
<el-descriptions-item label="患病病种">
|
||||
<el-form-item prop="hospitalBy" label="患病病种">
|
||||
<el-input v-model="formData.hospitalBy" maxlength="50"
|
||||
placeholder="请填写患病病种"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<template v-if="['6'].includes(formData.type)">
|
||||
<el-descriptions-item label="直系亲属">
|
||||
<el-form-item prop="deadImmediateFamily" label="直系亲属">
|
||||
<el-select v-model="formData.deadImmediateFamily">
|
||||
<el-option label="配偶" value="配偶"></el-option>
|
||||
<el-option label="父亲" value="父亲"></el-option>
|
||||
<el-option label="母亲" value="母亲"></el-option>
|
||||
<el-option label="子女" value="子女"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
|
||||
<el-descriptions-item label="申请事由" :span="2">
|
||||
<el-form-item prop="remark" label="申请事由">
|
||||
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
|
||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请事由" :span="2">
|
||||
<el-form-item prop="remark" label="申请事由">
|
||||
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
|
||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2" v-if="chooseType.isUploadFile === true">
|
||||
<template slot="label">
|
||||
附件
|
||||
<el-tooltip class="item" effect="dark" :content="'上传附件说明:' + chooseType.uploadFileDesc"
|
||||
placement="top-start"
|
||||
v-if="chooseType.isUploadFile && chooseType.uploadFileDesc">
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-form-item prop="files" label="附件">
|
||||
<file-upload
|
||||
:value.sync="formData.files"
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2" v-if="chooseType.isUploadFile === true">
|
||||
<template slot="label">
|
||||
附件
|
||||
<el-tooltip class="item" effect="dark" :content="'上传附件说明:' + chooseType.uploadFileDesc"
|
||||
placement="top-start"
|
||||
v-if="chooseType.isUploadFile && chooseType.uploadFileDesc">
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-form-item prop="files" label="附件">
|
||||
<file-upload
|
||||
:value.sync="formData.files"
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-form-item prop="signature" label="签字">
|
||||
<pc-signature v-model="formData.signature"></pc-signature>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end" class="mt20">
|
||||
<el-button type="primary" plain @click="onSave">保存</el-button>
|
||||
<el-button type="primary" @click="onSubmit" v-if="!taskId">提交</el-button>
|
||||
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-form-item prop="signature" label="签字">
|
||||
<pc-signature v-model="formData.signature"></pc-signature>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end" class="mt20">
|
||||
<el-button type="primary" plain @click="onSave">保存</el-button>
|
||||
<el-button type="primary" @click="onSubmit" v-if="!taskId">提交</el-button>
|
||||
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
id: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
formData: {},
|
||||
formRules: {
|
||||
helpUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalHouseNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalHouseBedNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
formData: {},
|
||||
formRules: {
|
||||
helpUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalHouseNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalHouseBedNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }]
|
||||
},
|
||||
chooseType: {},
|
||||
payUserOptions: [],
|
||||
helpUserOptions: [],
|
||||
typeOptions: []
|
||||
}
|
||||
},
|
||||
chooseType: {},
|
||||
payUserOptions: [],
|
||||
helpUserOptions: [],
|
||||
typeOptions: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
createRemoteMethod(options) {
|
||||
return (keyword) => {
|
||||
this.selectQueryUser(keyword, options)
|
||||
}
|
||||
},
|
||||
selectQueryUser(keyword, options) {
|
||||
options.length = 0
|
||||
this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
options.push(...res.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
helpUserChange(val) {
|
||||
const user = this.helpUserOptions.find(o => o.id === val)
|
||||
if(user) {
|
||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
this.$set(this.formData, "helpUserName", userName)
|
||||
this.$set(this.formData, "helpLoginName", loginName)
|
||||
this.$set(this.formData, "helpUnitId", unitId)
|
||||
this.$set(this.formData, "helpUnitName", unitName)
|
||||
this.$set(this.formData, "helpUnionId", unionId)
|
||||
this.$set(this.formData, "helpUnionName", unionName)
|
||||
}
|
||||
},
|
||||
payUserChange(val) {
|
||||
const user = this.payUserOptions.find(o => o.id === val)
|
||||
if(user) {
|
||||
const { userName, loginName } = user
|
||||
this.$set(this.formData, "payUserName", userName)
|
||||
this.$set(this.formData, "payLoginName", loginName)
|
||||
}
|
||||
},
|
||||
typeChange(id) {
|
||||
this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||
if (this.chooseType) {
|
||||
this.$set(this.formData, "money", this.chooseType.money)
|
||||
this.$set(this.formData, "way", this.chooseType.way)
|
||||
}
|
||||
},
|
||||
onSave() {
|
||||
this.$confirm("您确定保存吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post('/platform/condolence/apply/save', {data: JSON.stringify(this.formData)}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
window.location.href = '/platform/condolence/mine'
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onSubmit() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post('/platform/condolence/apply/submit', {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
window.location.href = '/platform/condolence/mine'
|
||||
methods: {
|
||||
createRemoteMethod(options) {
|
||||
return (keyword) => {
|
||||
this.selectQueryUser(keyword, options)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
onFinishTask() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post('/platform/condolence/apply/submitAgain', {
|
||||
data: JSON.stringify(this.formData),
|
||||
taskId: GetQueryString("taskId")
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
window.location.href = '/platform/condolence/mine'
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
init() {
|
||||
if (this.id) {
|
||||
this.$axios.post("/platform/condolence/mine/info", { id: this.id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
||||
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
||||
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||
this.formData = {
|
||||
applyUserName: username,
|
||||
applyLoginName: loginname,
|
||||
applyUserId: id,
|
||||
applyUnitId: unit?.id,
|
||||
applyUnitName: unit?.name,
|
||||
applyUnionId: union?.id,
|
||||
applyUnionName: union?.name,
|
||||
}
|
||||
}
|
||||
},
|
||||
queryCondolenceType() {
|
||||
this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||
.then((resp) => {
|
||||
this.typeOptions = resp.data
|
||||
},
|
||||
selectQueryUser(keyword, options) {
|
||||
options.length = 0
|
||||
this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
options.push(...res.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.queryCondolenceType()
|
||||
this.init()
|
||||
}
|
||||
})
|
||||
},
|
||||
helpUserChange(val) {
|
||||
const user = this.helpUserOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
this.$set(this.formData, "helpUserName", userName)
|
||||
this.$set(this.formData, "helpLoginName", loginName)
|
||||
this.$set(this.formData, "helpUnitId", unitId)
|
||||
this.$set(this.formData, "helpUnitName", unitName)
|
||||
this.$set(this.formData, "helpUnionId", unionId)
|
||||
this.$set(this.formData, "helpUnionName", unionName)
|
||||
}
|
||||
},
|
||||
payUserChange(val) {
|
||||
const user = this.payUserOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName } = user
|
||||
this.$set(this.formData, "payUserName", userName)
|
||||
this.$set(this.formData, "payLoginName", loginName)
|
||||
}
|
||||
},
|
||||
typeChange(id) {
|
||||
this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||
if (this.chooseType) {
|
||||
this.$set(this.formData, "money", this.chooseType.money)
|
||||
this.$set(this.formData, "way", this.chooseType.way)
|
||||
}
|
||||
},
|
||||
onSave() {
|
||||
this.$confirm("您确定保存吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
window.location.href = "/platform/condolence/mine"
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onSubmit() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/submit", {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
window.location.href = "/platform/condolence/mine"
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
onFinishTask() {
|
||||
this.$refs.formRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/submitAgain", {
|
||||
data: JSON.stringify(this.formData),
|
||||
taskId: GetQueryString("taskId")
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
window.location.href = "/platform/condolence/mine"
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
init() {
|
||||
if (this.bizId) {
|
||||
this.$axios.post("/platform/condolence/mine/info", { id: this.bizId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
||||
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
||||
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||
this.formData = {
|
||||
applyUserName: username,
|
||||
applyLoginName: loginname,
|
||||
applyUserId: id,
|
||||
applyUnitId: unit?.id,
|
||||
applyUnitName: unit?.name,
|
||||
applyUnionId: union?.id,
|
||||
applyUnionName: union?.name
|
||||
}
|
||||
}
|
||||
},
|
||||
queryCondolenceType() {
|
||||
this.$axios.post("/platform/condolence/type/queryCondolenceType")
|
||||
.then((resp) => {
|
||||
this.typeOptions = resp.data
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.queryCondolenceType()
|
||||
this.init()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
|
||||
@@ -3,12 +3,6 @@ layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
#app {
|
||||
background-color: #f7f8fa;
|
||||
height: 100vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/* 同意条款样式 */
|
||||
.agree-section {
|
||||
padding: 16px;
|
||||
@@ -103,7 +97,7 @@ layout("/layouts/platform_h5.html"){
|
||||
|
||||
<!-- 照片上传 -->
|
||||
<van-cell-group title="照片" class="form-section">
|
||||
<van-field class="more-text" name="avatar" label="">
|
||||
<van-field class="direction-column-field" name="avatar" label="">
|
||||
<template #input>
|
||||
<h5-file-upload
|
||||
slot="input"
|
||||
@@ -120,7 +114,7 @@ layout("/layouts/platform_h5.html"){
|
||||
|
||||
<!-- 电子签名 -->
|
||||
<van-cell-group title="电子签名" class="form-section">
|
||||
<van-field class="more-text" name="signature" label="">
|
||||
<van-field class="direction-column-field" name="signature" label="">
|
||||
<template #input>
|
||||
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
||||
</template>
|
||||
@@ -186,7 +180,7 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$axios.post("/platform/club/join/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.$pjaxReplace("/platform/h5/club/mine")
|
||||
this.$pjaxReplace("/platform/club/join/mine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -204,7 +198,7 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.$pjaxReplace("/platform/h5/club/mine")
|
||||
this.$pjaxReplace("/platform/club/join/mine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -226,7 +220,7 @@ layout("/layouts/platform_h5.html"){
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.$pjaxReplace("/platform/h5/club/mine")
|
||||
this.$pjaxReplace("/platform/club/join/mine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.van-field__control--right {
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="入会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="showAction"
|
||||
placeholder="请输入姓名/工号查询"
|
||||
@search="doSearch"
|
||||
@cancel="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu>
|
||||
<van-dropdown-item v-model="pageForm.applyType" :options="applyTypeOptions" @change="doSearch"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.auditType" :options="auditTypeOptions" @change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</van-sticky>
|
||||
|
||||
<div>
|
||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
||||
<div class="table-list">
|
||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
||||
<van-cell>
|
||||
<template slot="title">
|
||||
<div class="flex-align">
|
||||
<span class="font-size3 bold">{{row.userName}}</span>
|
||||
</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell title="申请协会" :value="row.clubName"></van-cell>
|
||||
<van-cell title="工号" :value="row.loginName"></van-cell>
|
||||
<van-cell title="性别" :value="row.sex"></van-cell>
|
||||
<van-cell title="所属工会" :value="row.unionName"></van-cell>
|
||||
<van-cell v-if="pageForm.applyType === 1 && row.status" title="入会状态">
|
||||
<span v-if="row.status == 1">待协会审核</span>
|
||||
<span v-else-if="row.status == 2">协会不通过</span>
|
||||
<span v-else-if="row.status == 3">待校工会审核</span>
|
||||
<span v-else-if="row.status == 4">校工会不通过</span>
|
||||
<span v-else-if="row.status == 5">审核通过</span>
|
||||
</van-cell>
|
||||
<van-cell v-if="pageForm.applyType === 2 && row.exitStatus" title="退会状态">
|
||||
<span v-if="row.exitStatus == 1">待协会审核</span>
|
||||
<span v-else-if="row.exitStatus == 2">协会不通过</span>
|
||||
<span v-else-if="row.exitStatus == 3">待校工会审核</span>
|
||||
<span v-else-if="row.exitStatus == 4">校工会不通过</span>
|
||||
<span v-else-if="row.exitStatus == 5">审核通过</span>
|
||||
</van-cell>
|
||||
<van-cell v-if="pageForm.auditType !== 2 && (row.status === 1 || row.exitStatus === 1)" class="table-card-footer">
|
||||
<van-button size="small" @click="openPayed(row, false)" type="danger">不通过</van-button>
|
||||
<van-button size="small" @click="openPayed(row, true)" type="info">通过</van-button>
|
||||
</van-cell>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||
</div>
|
||||
|
||||
<van-dialog v-model="payedShow" title="是否缴费" show-cancel-button :lazy-render="false" @confirm="doAudit">
|
||||
<van-radio-group v-model="payed">
|
||||
<van-cell-group>
|
||||
<van-cell title="已缴费" clickable @click="payed = true">
|
||||
<van-radio slot="right-icon" :name="true"></van-radio>
|
||||
</van-cell>
|
||||
<van-cell title="未缴费" clickable @click="payed = false">
|
||||
<van-radio slot="right-icon" :name="false"></van-radio>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-radio-group>
|
||||
</van-dialog>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
showAction: true,
|
||||
payedShow: false,
|
||||
payed: false,
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: ""
|
||||
},
|
||||
applyTypeOptions: [
|
||||
{ text: "申请加入", value: 1 },
|
||||
{ text: "申请退会", value: 2 }
|
||||
],
|
||||
auditTypeOptions: [
|
||||
{ text: "全部", value: 1 },
|
||||
{ text: "已审核", value: 2 },
|
||||
{ text: "未审核", value: 3 }
|
||||
],
|
||||
typeOptions: [],
|
||||
tableData: [],
|
||||
auditResult: false,
|
||||
auditIdList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openPayed(row, flag) {
|
||||
this.auditResult = flag
|
||||
this.auditIdList = [row.id]
|
||||
if (this.pageForm.applyType === 1) {
|
||||
this.payedShow = true
|
||||
} else {
|
||||
this.doAudit()
|
||||
}
|
||||
},
|
||||
async doAudit() {
|
||||
const confirm = await this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交审核吗?"
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await this.$axios.post("/platform/club/applyJoin/clubAudit/doAudit", {
|
||||
ids: JSON.stringify(this.auditIdList),
|
||||
auditResult: this.auditResult,
|
||||
auditType: 1,
|
||||
applyType: this.pageForm.applyType,
|
||||
payed: this.payed
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.auditIdList = []
|
||||
this.payedShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
this.pageForm.source = 1
|
||||
this.$axios.post("/platform/club/applyJoin/clubAudit/pageData", this.pageForm).then((resp) => {
|
||||
this.tableData = this.tableData.concat(resp.data.list)
|
||||
this.pageForm.totalCount = resp.data.totalCount
|
||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
||||
this.tableFinished = true
|
||||
} else {
|
||||
this.pageForm.pageNumber++
|
||||
}
|
||||
this.tableLoading = false
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.tableData = []
|
||||
this.pageData()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$set(this.pageForm, "applyType", 1)
|
||||
this.$set(this.pageForm, "auditType", 3)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,185 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="协会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入姓名或者工号搜索"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unionId" :options="unionOptions" :multiple="false"
|
||||
@change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/club/join/clubApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="clubName" @ready="onReady">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="姓名">{{row.userName}}</table-column>
|
||||
<table-column label="工号">{{row.loginName}}</table-column>
|
||||
<table-column label="申请模式">{{row.mode ? '加入' : '退出'}}</table-column>
|
||||
<table-column label="申请时间">{{row.applyDate}}</table-column>
|
||||
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-reply"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('../common/clubUserJoin.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
info: clubUserJoin
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: '',
|
||||
name: null,
|
||||
approvalText: "0",
|
||||
approval: false,
|
||||
year: new Date().getFullYear(),
|
||||
unionId: null,
|
||||
},
|
||||
unionOptions: [],
|
||||
formData: {},
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onReady() {
|
||||
const unionList = await this.$businessTool.listUnion()
|
||||
this.unionOptions = [
|
||||
{
|
||||
text: "全部工会",
|
||||
value: null
|
||||
}
|
||||
].concat(unionList.map((v) => ({ text: v.name, value: v.id })))
|
||||
if (this.unionOptions.length > 0) {
|
||||
this.pageForm.unionId = this.unionOptions[0].value
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
},
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
onRevoke(row){
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -2,77 +2,86 @@ const clubUserJoin = {
|
||||
template:
|
||||
/*language=HTML*/
|
||||
`
|
||||
<div class="form-container">
|
||||
<template v-if="activeView === 'info'">
|
||||
<van-cell-group title="协会信息" class="form-section">
|
||||
<van-action-sheet v-model="visible" title="查看详情">
|
||||
<div class="detail-container">
|
||||
<van-cell-group title="基本信息">
|
||||
<van-cell title="协会名称">{{ viewData.clubName }}</van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group title="基本信息" class="form-section">
|
||||
<van-cell title="姓名">{{ viewData.userName }}</van-cell>
|
||||
<van-cell title="工号">{{ viewData.loginName }}</van-cell>
|
||||
<van-cell title="性别">{{ viewData.sex }}</van-cell>
|
||||
<van-cell title="出生年月">{{ viewData.birthday }}</van-cell>
|
||||
<van-cell title="联系电话">{{ viewData.mobile }}</van-cell>
|
||||
<van-cell title="电子信箱">{{ viewData.email }}</van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group title="工作信息" class="form-section">
|
||||
<van-cell title="分工会">{{ viewData.unionName }}</van-cell>
|
||||
<van-cell title="部门">{{ viewData.unitName }}</van-cell>
|
||||
<van-cell title="职务">{{ viewData.governmentPosition }}</van-cell>
|
||||
<van-cell title="职称">{{ viewData.technicalTitle }}</van-cell>
|
||||
<van-cell title="学历">{{ viewData.education }}</van-cell>
|
||||
<van-cell title="学位">{{ viewData.academicDegree }}</van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group title="其他信息" class="form-section">
|
||||
<van-cell class="direction-column-field" title="同时参加其他协会情况">
|
||||
<van-cell class="direction-column-cell" title="同时参加其他协会情况">
|
||||
{{ viewData.sameTimeJoinOtherClubSituation || '暂无' }}
|
||||
</van-cell>
|
||||
<van-cell class="direction-column-field" title="文化、体育方面的活动经历、获奖情况">
|
||||
<van-cell class="direction-column-cell" title="文化、体育方面的活动经历、获奖情况">
|
||||
{{ viewData.awardsExperience || '暂无' }}
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group title="照片" class="form-section">
|
||||
<van-cell class="direction-column-field" v-if="viewData.avatar">
|
||||
<van-cell class="direction-column-cell" v-if="viewData.avatar" title="照片">
|
||||
<template slot="default">
|
||||
<van-image :src="viewData.avatar"></van-image>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
<template v-if="activeView === 'history'" v-for="task in doneTasks">
|
||||
<div class="mt10">
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="activeView === 'approval'">
|
||||
|
||||
</template>
|
||||
|
||||
<div class="form-actions">
|
||||
<van-button @click="activeView = 'info'" round type="info">申请信息</van-button>
|
||||
<van-button @click="activeView = 'history'" round type="info">审核历史</van-button>
|
||||
<van-button @click="activeView = 'approval'" round type="info">去审核</van-button>
|
||||
<template v-for="task in doneTasks">
|
||||
<van-cell-group :title="task.displayName" v-if="task.ext.isFirstTaskNode">
|
||||
<van-cell title="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})
|
||||
</van-cell>
|
||||
<van-cell title="申请时间">{{ task.finishTime }}</van-cell>
|
||||
<van-cell title="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group :title="task.displayName" v-else>
|
||||
<van-cell title="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})
|
||||
</van-cell>
|
||||
<van-cell title="办理时间">{{ task.finishTime }}</van-cell>
|
||||
<van-cell title="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</van-cell>
|
||||
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
|
||||
<div v-html="task.taskFormData.tf_opinion"></div>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<slot></slot>
|
||||
</van-action-sheet>
|
||||
`,
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
visible:false,
|
||||
viewData: {},
|
||||
activeView: 'info',
|
||||
row: {},
|
||||
doneTasks: [],
|
||||
row: null,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.$axios.post("/platform/club/join/mine/info", { id: row.id }).then((res) => {
|
||||
this.visible = true
|
||||
this.getInfo()
|
||||
this.getDoneTasks()
|
||||
},
|
||||
onClose(){
|
||||
this.visible = false
|
||||
},
|
||||
getInfo() {
|
||||
this.$axios.post("/platform/club/join/mine/info", { id: this.row.id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
this.getDoneTasks()
|
||||
},
|
||||
getDoneTasks() {
|
||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
@@ -81,9 +90,6 @@ const clubUserJoin = {
|
||||
}
|
||||
})
|
||||
},
|
||||
openChart(){
|
||||
this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId, this.row.instanceId)
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
|
||||
|
||||
@@ -48,14 +48,7 @@ layout("/layouts/platform_h5.html"){
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<van-popup :style="{ height: '100%',width: '100%', 'background-color': '#F1F1F1'}" position="right" safe-area-inset-bottom v-model="viewShow">
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="viewShow = false" left-arrow left-text="返回" title="详细信息"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<div style="height: calc(100vh - 46px); overflow-y: auto">
|
||||
<info ref="infoRef"></info>
|
||||
</div>
|
||||
</van-popup>
|
||||
<info ref="infoRef"></info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -68,7 +61,6 @@ layout("/layouts/platform_h5.html"){
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
viewShow: false,
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
@@ -92,13 +84,10 @@ layout("/layouts/platform_h5.html"){
|
||||
})
|
||||
},
|
||||
onView(row) {
|
||||
this.viewShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
})
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
onEdit(row) {
|
||||
this.$pjaxReplace("/platform/h5/club/apply?taskId=" + (row.startTaskId || "") + "&bizId=" + row.id)
|
||||
this.$pjaxReplace("/platform/club/join/apply/h5?taskId=" + (row.startTaskId || "") + "&bizId=" + row.id)
|
||||
},
|
||||
onDelete(id) {
|
||||
this.$dialog.confirm({
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入姓名或者工号搜索"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unionId" :options="unionOptions" :multiple="false"
|
||||
@change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/club/join/schoolUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="clubName" @ready="onReady">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="姓名">{{row.userName}}</table-column>
|
||||
<table-column label="工号">{{row.loginName}}</table-column>
|
||||
<table-column label="申请模式">{{row.mode ? '加入' : '退出'}}</table-column>
|
||||
<table-column label="申请时间">{{row.applyDate}}</table-column>
|
||||
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-reply"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('../common/clubUserJoin.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
info: clubUserJoin
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: '',
|
||||
name: null,
|
||||
approvalText: "0",
|
||||
approval: false,
|
||||
year: new Date().getFullYear(),
|
||||
unionId: null,
|
||||
},
|
||||
unionOptions: [],
|
||||
formData: {},
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onReady() {
|
||||
const unionList = await this.$businessTool.listUnion()
|
||||
this.unionOptions = [
|
||||
{
|
||||
text: "全部工会",
|
||||
value: null
|
||||
}
|
||||
].concat(unionList.map((v) => ({ text: v.name, value: v.id })))
|
||||
if (this.unionOptions.length > 0) {
|
||||
this.pageForm.unionId = this.unionOptions[0].value
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
},
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
onRevoke(row){
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,253 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<div>
|
||||
<van-nav-bar title="慰问申请" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||
<van-cell-group>
|
||||
<form novalidate @submit.prevent="onSubmit">
|
||||
<van-field v-model="formData.handledByUserName" label="经办人" readonly></van-field>
|
||||
<van-field v-model="formData.applyDateTime" label="申请时间" readonly></van-field>
|
||||
<van-field
|
||||
v-model="formData.beComfortedUserName"
|
||||
name="beComfortedUserName"
|
||||
label="慰问对象"
|
||||
required
|
||||
v-validate="'required'"
|
||||
:error="errors.has('beComfortedUserName')"
|
||||
:error-message="errors.first('beComfortedUserName')"
|
||||
@input="userRemoteMethod"
|
||||
placeholder="请输入工号或姓名选择慰问对象"
|
||||
></van-field>
|
||||
<van-action-sheet
|
||||
:actions="userList"
|
||||
:close-on-click-action="true"
|
||||
@cancel="userList = []"
|
||||
@select="onUserSelect"
|
||||
title="慰问对象"
|
||||
v-model="sheetShow"
|
||||
></van-action-sheet>
|
||||
|
||||
<van-field
|
||||
v-model="formData.payeeUserName"
|
||||
name="payeeUserName"
|
||||
label="收款人"
|
||||
required
|
||||
v-validate="'required'"
|
||||
:error="errors.has('payeeUserName')"
|
||||
:error-message="errors.first('payeeUserName')"
|
||||
@input="payeeUserRemoteMethod"
|
||||
placeholder="请输入工号或姓名选择收款人"
|
||||
></van-field>
|
||||
<van-action-sheet
|
||||
:actions="payeeUserList"
|
||||
:close-on-click-action="true"
|
||||
@cancel="payeeUserList = []"
|
||||
@select="payeeOnUserSelect"
|
||||
title="收款人"
|
||||
v-model="payeeSheetShow"
|
||||
></van-action-sheet>
|
||||
<van-field
|
||||
v-model="formData.typeName"
|
||||
name="typeName"
|
||||
label="慰问类型"
|
||||
required
|
||||
v-validate="'required'"
|
||||
:error="errors.has('typeName')"
|
||||
:error-message="errors.first('typeName')"
|
||||
readonly
|
||||
placeholder="请点击选择慰问类型"
|
||||
@click="showTypePicker = true"
|
||||
clickable
|
||||
></van-field>
|
||||
<van-popup position="bottom" round v-model:show="showTypePicker">
|
||||
<van-picker :columns="typeColumns" @cancel="showTypePicker = false" @confirm="onTypeConfirm" show-toolbar></van-picker>
|
||||
</van-popup>
|
||||
<van-field
|
||||
v-model="formData.money"
|
||||
name="money"
|
||||
label="慰问金额"
|
||||
readonly
|
||||
placeholder="请选择慰问类型后自动匹配"
|
||||
type="number"
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.applyReason"
|
||||
label="申请事由"
|
||||
v-validate="'required'"
|
||||
:error="errors.has('applyReason')"
|
||||
:error-message="errors.first('applyReason')"
|
||||
type="textarea"
|
||||
rows="2"
|
||||
autosize
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
placeholder="请输入申请事由"
|
||||
></van-field>
|
||||
<van-field
|
||||
label="附件"
|
||||
name="files"
|
||||
v-model="formData.files"
|
||||
data-vv-validate-on="input"
|
||||
:error="errors.has('files')"
|
||||
:error-message="errors.first('files')"
|
||||
class="direction-column-field"
|
||||
>
|
||||
<h5-file-upload
|
||||
slot="input"
|
||||
:value.sync="formData.files"
|
||||
:upload_number="10"
|
||||
upload_mode="file"
|
||||
upload_result_category="array"
|
||||
upload_result_type="url"
|
||||
complete_result
|
||||
></h5-file-upload>
|
||||
</van-field>
|
||||
<!--<van-field
|
||||
label="签字"
|
||||
name="signature"
|
||||
v-model="formData.signature"
|
||||
required
|
||||
v-validate="'required'"
|
||||
:error="errors.has('signature')"
|
||||
:error-message="errors.first('signature')"
|
||||
class="direction-column-field"
|
||||
>
|
||||
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
||||
</van-field>-->
|
||||
<van-cell cell-class="form-button-cell">
|
||||
<van-button type="primary" size="large" block type="submit">提 交</van-button>
|
||||
</van-cell>
|
||||
</form>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
applyReason: '',
|
||||
},
|
||||
id: "",
|
||||
userList: [],
|
||||
sheetShow: false,
|
||||
payeeUserList: [],
|
||||
payeeSheetShow: false,
|
||||
showTypePicker: false,
|
||||
typeColumns: [],
|
||||
typeOptions: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onSubmit() {
|
||||
this.$validator.validateAll().then((valid) => {
|
||||
if (valid) {
|
||||
this.$axios.post("/platform/condolence/apply/submit", {
|
||||
condolence: JSON.stringify(this.formData)
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
// this.$pjaxReplace("/platform/h5/proposal/mine")
|
||||
} else {
|
||||
this.$toast.fail(res.data.msg)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast.fail("请填写必填项")
|
||||
}
|
||||
})
|
||||
},
|
||||
onTypeConfirm(o) {
|
||||
this.$set(this.formData, "typeName", o.text)
|
||||
this.$set(this.formData, "type", o.value)
|
||||
this.typeChange(o.value)
|
||||
this.showTypePicker = false
|
||||
},
|
||||
onUserSelect(o) {
|
||||
this.$set(this.formData, "beComfortedUserId", o.id)
|
||||
this.$set(this.formData, "beComfortedUserName", o.name)
|
||||
this.sheetShow = false
|
||||
},
|
||||
payeeOnUserSelect(o) {
|
||||
this.$set(this.formData, "payeeUserId", o.id)
|
||||
this.$set(this.formData, "payeeUserName", o.name)
|
||||
this.payeeSheetShow = false
|
||||
},
|
||||
async userRemoteMethod(event) {
|
||||
if (event) {
|
||||
const arr = await this.getUser(event)
|
||||
this.userList = arr.map((v) => {
|
||||
return {
|
||||
name: v.userName + "(" + v.loginName + ")",
|
||||
id: v.id
|
||||
}
|
||||
})
|
||||
this.sheetShow = true
|
||||
}
|
||||
},
|
||||
async payeeUserRemoteMethod(event) {
|
||||
if (event) {
|
||||
const arr = await this.getUser(event)
|
||||
this.payeeUserList = arr.map((v) => {
|
||||
return {
|
||||
name: v.userName + "(" + v.loginName + ")",
|
||||
id: v.id
|
||||
}
|
||||
})
|
||||
this.payeeSheetShow = true
|
||||
}
|
||||
},
|
||||
async getUser(keyWord) {
|
||||
const resp = await this.$axios.post("/platform/condolence/apply/listBeComfortedUser", { keyWord: keyWord })
|
||||
return resp.data
|
||||
},
|
||||
typeChange(id) {
|
||||
const t = this.typeOptions.find((t) => t.id === id)
|
||||
this.$set(this.formData, "money", t.money)
|
||||
},
|
||||
async listType() {
|
||||
const res = await this.$axios.post("/platform/condolence/common/listType")
|
||||
if (res.code === 0) {
|
||||
this.typeOptions = JSON.parse(JSON.stringify(res.data))
|
||||
res.data.forEach((v) => {
|
||||
this.typeColumns.push({ value: v.id, text: v.name + "(" + v.code + ")" })
|
||||
})
|
||||
}
|
||||
},
|
||||
init() {
|
||||
if (this.id) {
|
||||
this.$axios.post("/platform/condolence/common/info", { id: this.id }).then(async (res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
this.typeChange(this.formData.type)
|
||||
this.$refs.beComfortedUserRef.options = await this.getUser(this.formData.beComfortedUserId)
|
||||
this.$refs.payeeUserRef.options = await this.getUser(this.formData.payeeUserId)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const { username, loginname, id, unit, union } = this.$store.state.user
|
||||
this.$set(this.formData, "handledBy", id)
|
||||
this.$set(this.formData, "handledByUserName", username)
|
||||
this.$set(this.formData, "handledByLoginName", loginname)
|
||||
this.$set(this.formData, "handledByUnitName", unit?.name)
|
||||
this.$set(this.formData, "handledByUnitId", unit?.id)
|
||||
this.$set(this.formData, "handledByUnionName", union?.name)
|
||||
this.$set(this.formData, "handledByUnionId", union?.id)
|
||||
this.$set(this.formData, "applyDateTime", this.$moment().format("YYYY-MM-DD"))
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.listType()
|
||||
this.init()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
-243
@@ -1,243 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
|
||||
<van-dropdown-item :options="typeList" @change="doSearch" v-model="pageForm.type"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.audit" @change="doSearch">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<div>
|
||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
||||
<div class="table-list">
|
||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
||||
<van-cell title="经办人" :value="row.handledByUserName"></van-cell>
|
||||
<van-cell title="经办人单位" :value="row.handledByUnitName"></van-cell>
|
||||
<van-cell title="被慰问人" :value="row.beComfortedUserName"></van-cell>
|
||||
<van-cell title="被慰问人单位" :value="row.beComfortedUserUnitName"></van-cell>
|
||||
<van-cell title="申请时间" :value="row.applyDateTime"></van-cell>
|
||||
<van-cell title="当前节点" :value="row.currentTaskDisPlayName"></van-cell>
|
||||
<van-cell class="table-card-footer">
|
||||
<van-button type="info" size="small" @click="onOpen(row)">查看</van-button>
|
||||
<van-button
|
||||
v-if="row.processTaskState === $processConstant.TASK_STATE.DOING"
|
||||
@click="onOpen(row, true)"
|
||||
size="small"
|
||||
type="primary"
|
||||
>
|
||||
审核
|
||||
</van-button>
|
||||
<van-button v-if="row.processTaskState===20 && row.processTaskCanWithDraw" @click="withdraw(row)" size="small" type="primary">
|
||||
撤回
|
||||
</van-button>
|
||||
</van-cell>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||
</div>
|
||||
|
||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100%', width: '100%' }" safe-area-inset-bottom>
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="infoShow=false" left-arrow title="慰问详细信息"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<flow-audit
|
||||
ref="flowAuditRef"
|
||||
@form_valid="formValid"
|
||||
@form_confirm="formConfirm"
|
||||
@close="infoShow = false"
|
||||
:form_valid_success="formValidSuccess"
|
||||
>
|
||||
<template slot="businessInfo">
|
||||
<condolence-info ref="condolenceInfoRef" :id="id"></condolence-info>
|
||||
</template>
|
||||
<template slot="processRecords">
|
||||
<process-records :id="id"></process-records>
|
||||
</template>
|
||||
<template slot="form">
|
||||
<form novalidate>
|
||||
<van-field
|
||||
v-model="formData.comment"
|
||||
label="审核意见"
|
||||
v-validate="'required'"
|
||||
:error="errors.has('comment')"
|
||||
:error-message="errors.first('comment')"
|
||||
type="textarea"
|
||||
rows="2"
|
||||
required
|
||||
autosize
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
</form>
|
||||
</template>
|
||||
</flow-audit>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include("../../common/condolenceInfo.js"){}#-->
|
||||
<!--#include("../../common/processRecord.js"){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
unitList: [],
|
||||
typeList: [{ text: "全部", value: "" }],
|
||||
yearList: [],
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
audit: "0",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
year: "",
|
||||
type: ""
|
||||
},
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
tableData: [],
|
||||
id: "",
|
||||
infoShow: false,
|
||||
formValidSuccess: false,
|
||||
formData: {
|
||||
comment: ""
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"condolence-info": MOBILE_CONDOLENCE_INFO,
|
||||
"process-records": MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT
|
||||
},
|
||||
methods: {
|
||||
onOpen(row, isAudit = false) {
|
||||
this.id = row.id
|
||||
this.infoShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.flowAuditRef.onOpen(row, isAudit)
|
||||
})
|
||||
},
|
||||
formValid() {
|
||||
this.$validator.validateAll().then((valid) => {
|
||||
if (valid) {
|
||||
this.formValidSuccess = true
|
||||
} else {
|
||||
this.$toast.fail("请填写必填项")
|
||||
}
|
||||
})
|
||||
},
|
||||
formConfirm(taskForm) {
|
||||
this.$axios
|
||||
.post("/platform/condolence/branchUnionAudit/doAudit", {
|
||||
task: JSON.stringify({ ...taskForm, comment: this.formData.comment })
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.flowAuditRef.onClose()
|
||||
this.infoShow = false
|
||||
this.formData.comment = ""
|
||||
this.formValidSuccess = false
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
withdraw({ processTaskId }) {
|
||||
this.$dialog
|
||||
.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios.post("/platform/condolence/branchUnionAudit/withdraw", { processTaskId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(res.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
viewInfo(row) {
|
||||
this.id = row.id
|
||||
this.infoShow = true
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
this.$axios.post("/platform/condolence/branchUnionAudit/pageData", this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = this.tableData.concat(res.data.list)
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
||||
this.tableFinished = true
|
||||
} else {
|
||||
this.pageForm.pageNumber++
|
||||
}
|
||||
this.tableLoading = false
|
||||
} else {
|
||||
this.$toast(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
getCondolenceType() {
|
||||
this.$axios.post("/platform/condolence/common/listOpenType").then((res) => {
|
||||
if (res.code === 0) {
|
||||
res.data.forEach((item) => {
|
||||
this.typeList.push({ text: item.name + "(" + item.code + ")", value: item.id })
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
flushUnits() {
|
||||
const unionId = this.$store.state.user.union.id
|
||||
this.$businessTool.listUnit(unionId).then((data) => {
|
||||
this.unitList = data
|
||||
this.unitList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
})
|
||||
},
|
||||
initData() {
|
||||
this.getCondolenceType()
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearList.unshift({ value: i, text: i + "年" })
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.$set(this.pageForm, "type", this.typeList[0].value)
|
||||
|
||||
this.flushUnits()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
const MOBILE_CONDOLENCE_INFO = {
|
||||
template: `
|
||||
<div>
|
||||
<van-cell-group>
|
||||
<van-cell>
|
||||
<div slot="title" class="font-size4 bold">
|
||||
申请信息
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell title="经办人">{{ viewData.handledByUserName }}</van-cell>
|
||||
<van-cell title="申请时间">{{ viewData.applyDateTime }}</van-cell>
|
||||
<van-cell title="慰问对象">{{ viewData.beComfortedUserName }}</van-cell>
|
||||
<van-cell title="收款人">{{ viewData.payeeUserName }}</van-cell>
|
||||
<van-cell title="慰问类型">{{ viewData.typeName }}</van-cell>
|
||||
<van-cell title="慰问金额">{{ viewData.money }}</van-cell>
|
||||
<van-cell title="申请事由">{{ viewData.applyReason }}</van-cell>
|
||||
<van-cell title="附件">
|
||||
<div slot="label">
|
||||
|
||||
</div>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
`,
|
||||
props: {
|
||||
id: { type: String, required: true }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
viewData: {}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
id: {
|
||||
handler: function () {
|
||||
this.findCondolenceInfoById()
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
findCondolenceInfoById() {
|
||||
if (!this.id) {
|
||||
return
|
||||
}
|
||||
this.$axios
|
||||
.post("/platform/condolence/common/info", {
|
||||
id: this.id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
const MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT = {
|
||||
template: `
|
||||
<div class="process-task-record">
|
||||
<template v-for="item in approvalRecord" v-if="approvalRecord.length > 0">
|
||||
<div class="mb25" v-if="item.taskName === '2a9632c6-710f-4d3b-89e4-86566238ce8e'">
|
||||
<van-cell>
|
||||
<div class="font-size4 bold" slot="title">
|
||||
{{item.displayName}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell-group :key="item.displayName + item.taskParentId">
|
||||
<template v-for="task in item.processTaskVOList">
|
||||
<van-cell title="姓名">{{task.taskActor?.actorUserName}}</van-cell>
|
||||
<van-cell title="工号">{{task.taskActor?.actorId}}</van-cell>
|
||||
<van-cell title="填写时间">{{$moment(task.createdAt)
|
||||
.format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</van-cell>
|
||||
</template>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
<div v-else>
|
||||
<van-cell>
|
||||
<div class="font-size4 bold" slot="title">
|
||||
{{item.displayName}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell-group :key="item.displayName + item.taskParentId">
|
||||
<template v-for="task in item.processTaskVOList">
|
||||
<van-cell title="姓名">{{task.taskActor?.actorUserName}}</van-cell>
|
||||
<van-cell title="工号">{{task.taskActor?.actorId}}</van-cell>
|
||||
<van-cell title="审核时间">{{task.finishTime ? task.finishTime : '暂无'}}</van-cell>
|
||||
<van-cell title="审核结果"> {{Object.keys(task.ext.submitTypeText).length !== 0 ?
|
||||
task.ext.submitTypeText : '暂无'}}
|
||||
</van-cell>
|
||||
<van-cell title="审核意见"> {{task.ext.comment ? task.ext.comment : '暂无'}}
|
||||
</van-cell>
|
||||
</template>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</template>
|
||||
<el-empty description="暂无审核记录" v-else></el-empty>
|
||||
</div>
|
||||
|
||||
|
||||
`,
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
props: {
|
||||
id: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
id: {
|
||||
handler: function(val) {
|
||||
if (val) {
|
||||
this.findOne()
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
approvalRecord: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
findOne() {
|
||||
this.$axios.post("/platform/wf/processCommon/approvalRecord", { businessNo: this.id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.approvalRecord = res.data
|
||||
console.log(res.data)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,219 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="慰问信息查询" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
|
||||
<van-dropdown-item :options="typeList" @change="doSearch" v-model="pageForm.type"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unionList" @change="unionChange" v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</van-sticky>
|
||||
|
||||
<div>
|
||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
||||
<div class="table-list">
|
||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
||||
<van-cell title="经办人" :value="row.handledByUserName"></van-cell>
|
||||
<van-cell title="经办人单位" :value="row.handledByUnitName"></van-cell>
|
||||
<van-cell title="被慰问人" :value="row.beComfortedUserName"></van-cell>
|
||||
<van-cell title="被慰问人单位" :value="row.beComfortedUserUnitName"></van-cell>
|
||||
<van-cell title="申请时间" :value="row.applyDateTime"></van-cell>
|
||||
<van-cell title="当前节点" :value="row.currentTaskDisPlayName"></van-cell>
|
||||
<van-cell class="table-card-footer">
|
||||
<van-button type="info" size="small" @click="viewInfo(row)">查看</van-button>
|
||||
</van-cell>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||
</div>
|
||||
|
||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100%', width: '100%' }" safe-area-inset-bottom>
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="infoShow=false" left-arrow title="慰问详细信息"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<flow-audit
|
||||
ref="flowAuditRef"
|
||||
@form_valid="formValid"
|
||||
@form_confirm="formConfirm"
|
||||
@close="infoShow = false"
|
||||
:form_valid_success="formValidSuccess"
|
||||
>
|
||||
<template slot="businessInfo">
|
||||
<condolence-info ref="condolenceInfoRef" :id="id"></condolence-info>
|
||||
</template>
|
||||
<template slot="processRecords">
|
||||
<process-records :id="id"></process-records>
|
||||
</template>
|
||||
<template slot="form">
|
||||
<form novalidate>
|
||||
<van-field
|
||||
v-model="formData.comment"
|
||||
label="审核意见"
|
||||
v-validate="'required'"
|
||||
:error="errors.has('comment')"
|
||||
:error-message="errors.first('comment')"
|
||||
type="textarea"
|
||||
rows="2"
|
||||
required
|
||||
autosize
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
</form>
|
||||
</template>
|
||||
</flow-audit>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include("../common/condolenceInfo.js"){}#-->
|
||||
<!--#include("../common/processRecord.js"){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
unitList: [],
|
||||
unionList: [],
|
||||
typeList: [{ text: "全部类型", value: "" }],
|
||||
yearList: [],
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
audit: false,
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
year: "",
|
||||
type: ""
|
||||
},
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
tableData: [],
|
||||
id: "",
|
||||
infoShow: false,
|
||||
formValidSuccess: false,
|
||||
formData: {
|
||||
comment: ""
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"condolence-info": MOBILE_CONDOLENCE_INFO,
|
||||
"process-records": MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT
|
||||
},
|
||||
methods: {
|
||||
formValid() {
|
||||
this.$validator.validateAll().then((valid) => {
|
||||
if (valid) {
|
||||
console.log(111111)
|
||||
} else {
|
||||
this.$toast.fail("请填写必填项")
|
||||
}
|
||||
})
|
||||
},
|
||||
formConfirm(taskForm) {},
|
||||
viewInfo(row, isAudit = false) {
|
||||
this.id = row.id
|
||||
this.infoShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.flowAuditRef.onOpen(row, isAudit)
|
||||
})
|
||||
//
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
this.$axios.post("/platform/h5/condolence/info/pageData", this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = this.tableData.concat(res.data.list)
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
||||
this.tableFinished = true
|
||||
} else {
|
||||
this.pageForm.pageNumber++
|
||||
}
|
||||
this.tableLoading = false
|
||||
} else {
|
||||
this.$toast(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
getCondolenceType() {
|
||||
this.$axios.post("/platform/condolence/common/listOpenType").then((res) => {
|
||||
if (res.code === 0) {
|
||||
res.data.forEach((item) => {
|
||||
this.typeList.push({ text: item.name + "(" + item.code + ")", value: item.id })
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
unionChange() {
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
this.flushUnits()
|
||||
this.doSearch()
|
||||
},
|
||||
initUnion() {
|
||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
||||
const unionId = hasAdmin ? null : this.$store.state.user.union.id
|
||||
this.$businessTool.listUnion(unionId).then((data) => {
|
||||
this.unionList = data
|
||||
this.unionList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (hasAdmin) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
}
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
})
|
||||
},
|
||||
flushUnits() {
|
||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
||||
const unionId = hasAdmin ? this.pageForm.unionId : this.$store.state.user.union.id
|
||||
this.$businessTool.listUnit(unionId).then((data) => {
|
||||
this.unitList = data
|
||||
this.unitList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (hasAdmin && !this.pageForm.unionId) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
}
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
})
|
||||
},
|
||||
initData() {
|
||||
this.getCondolenceType()
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearList.unshift({ value: i, text: i + "年" })
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.$set(this.pageForm, "type", this.typeList[0].value)
|
||||
|
||||
this.initUnion()
|
||||
this.flushUnits()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
-270
@@ -1,270 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
|
||||
<van-dropdown-item :options="typeList" @change="doSearch" v-model="pageForm.type"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unionList" @change="unionChange" v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.audit" @change="doSearch">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<div>
|
||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
||||
<div class="table-list">
|
||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
||||
<van-cell title="经办人" :value="row.handledByUserName"></van-cell>
|
||||
<van-cell title="经办人单位" :value="row.handledByUnitName"></van-cell>
|
||||
<van-cell title="被慰问人" :value="row.beComfortedUserName"></van-cell>
|
||||
<van-cell title="被慰问人单位" :value="row.beComfortedUserUnitName"></van-cell>
|
||||
<van-cell title="申请时间" :value="row.applyDateTime"></van-cell>
|
||||
<van-cell title="当前节点" :value="row.currentTaskDisPlayName"></van-cell>
|
||||
<van-cell class="table-card-footer">
|
||||
<van-button type="info" size="small" @click="onOpen(row)">查看</van-button>
|
||||
<van-button
|
||||
v-if="row.processTaskState === $processConstant.TASK_STATE.DOING"
|
||||
@click="onOpen(row, true)"
|
||||
size="small"
|
||||
type="primary"
|
||||
type="primary"
|
||||
>
|
||||
审核
|
||||
</van-button>
|
||||
</van-cell>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||
</div>
|
||||
|
||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100%', width: '100%' }" safe-area-inset-bottom>
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="infoShow=false" left-arrow title="慰问详细信息"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<flow-audit
|
||||
ref="flowAuditRef"
|
||||
@form_valid="formValid"
|
||||
@form_confirm="formConfirm"
|
||||
@close="infoShow = false"
|
||||
:form_valid_success="formValidSuccess"
|
||||
>
|
||||
<template slot="businessInfo">
|
||||
<condolence-info ref="condolenceInfoRef" :id="id"></condolence-info>
|
||||
</template>
|
||||
<template slot="processRecords">
|
||||
<process-records :id="id"></process-records>
|
||||
</template>
|
||||
<template slot="form">
|
||||
<form novalidate>
|
||||
<van-field
|
||||
v-model="formData.comment"
|
||||
label="审核意见"
|
||||
v-validate="'required'"
|
||||
:error="errors.has('comment')"
|
||||
:error-message="errors.first('comment')"
|
||||
type="textarea"
|
||||
rows="2"
|
||||
required
|
||||
autosize
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
</form>
|
||||
</template>
|
||||
</flow-audit>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include("../../common/condolenceInfo.js"){}#-->
|
||||
<!--#include("../../common/processRecord.js"){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
unitList: [],
|
||||
unionList: [],
|
||||
typeList: [{ text: "全部类型", value: "" }],
|
||||
yearList: [],
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
audit: "0",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
year: "",
|
||||
type: ""
|
||||
},
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
tableData: [],
|
||||
id: "",
|
||||
infoShow: false,
|
||||
formValidSuccess: false,
|
||||
formData: {
|
||||
comment: ""
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"condolence-info": MOBILE_CONDOLENCE_INFO,
|
||||
"process-records": MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT
|
||||
},
|
||||
methods: {
|
||||
onOpen(row, isAudit = false) {
|
||||
this.id = row.id
|
||||
this.infoShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.flowAuditRef.onOpen(row, isAudit)
|
||||
})
|
||||
},
|
||||
formValid() {
|
||||
this.$validator.validateAll().then((valid) => {
|
||||
if (valid) {
|
||||
this.formValidSuccess = true
|
||||
} else {
|
||||
this.$toast.fail("请填写必填项")
|
||||
}
|
||||
})
|
||||
},
|
||||
formConfirm(taskForm) {
|
||||
this.$axios
|
||||
.post("/platform/condolence/schoolUnionAudit/doAudit", {
|
||||
task: JSON.stringify({ ...taskForm, comment: this.formData.comment })
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.flowAuditRef.onClose()
|
||||
this.infoShow = false
|
||||
this.formData.comment = ""
|
||||
this.formValidSuccess = false
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
withdraw({ processTaskId }) {
|
||||
this.$dialog
|
||||
.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios.post("/platform/condolence/schoolUnionAudit/withdraw", { processTaskId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(res.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
viewInfo(row) {
|
||||
this.id = row.id
|
||||
this.infoShow = true
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
this.$axios.post("/platform/condolence/schoolUnionAudit/pageData", this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = this.tableData.concat(res.data.list)
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
||||
this.tableFinished = true
|
||||
} else {
|
||||
this.pageForm.pageNumber++
|
||||
}
|
||||
this.tableLoading = false
|
||||
} else {
|
||||
this.$toast(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
getCondolenceType() {
|
||||
this.$axios.post("/platform/condolence/common/listOpenType").then((res) => {
|
||||
if (res.code === 0) {
|
||||
res.data.forEach((item) => {
|
||||
this.typeList.push({ text: item.name + "(" + item.code + ")", value: item.id })
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
unionChange() {
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
this.flushUnits()
|
||||
this.doSearch()
|
||||
},
|
||||
initUnion() {
|
||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
||||
const unionId = hasAdmin ? null : this.$store.state.user.union.id
|
||||
this.$businessTool.listUnion(unionId).then((data) => {
|
||||
this.unionList = data
|
||||
this.unionList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (hasAdmin) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
}
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
})
|
||||
},
|
||||
flushUnits() {
|
||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
||||
const unionId = hasAdmin ? this.pageForm.unionId : this.$store.state.user.union.id
|
||||
this.$businessTool.listUnit(unionId).then((data) => {
|
||||
this.unitList = data
|
||||
this.unitList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (hasAdmin && !this.pageForm.unionId) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
}
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
})
|
||||
},
|
||||
initData() {
|
||||
this.getCondolenceType()
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearList.unshift({ value: i, text: i + "年" })
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.$set(this.pageForm, "type", this.typeList[0].value)
|
||||
|
||||
this.initUnion()
|
||||
this.flushUnits()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,99 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="场地预约" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入姓名或者工号搜索"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||
@change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/site/apply/pageData" :page_form.sync="pageForm" ref="tableListRef" title="name" @ready="onReady">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="场地地址">{{row.address}}</table-column>
|
||||
<table-column label="联系人">{{row.contactName}}</table-column>
|
||||
<table-column label="联系方式">{{row.contactPhone}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" @click="onEdit(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>预约</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: '',
|
||||
year: new Date().getFullYear(),
|
||||
type: null
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onReady() {
|
||||
const typeList = await this.querySiteType()
|
||||
this.typeOptions = [
|
||||
{
|
||||
text: "全部类型",
|
||||
value: null
|
||||
}
|
||||
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||
if (this.typeOptions.length > 0) {
|
||||
this.pageForm.type = this.typeOptions[0].value
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
async querySiteType() {
|
||||
const res = await this.$axios.post("/platform/site/type/querySiteType")
|
||||
return res.data
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,448 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
.search-dialog {
|
||||
height: 80%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<!-- 导航栏 -->
|
||||
<van-nav-bar title="职工慰问申请" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<!-- 表单容器 -->
|
||||
<van-form ref="formRef" class="form-container">
|
||||
|
||||
<!-- 基本信息 -->
|
||||
<van-cell-group title="基本信息" class="form-section">
|
||||
<van-field label="申请人姓名" :rules="[{ required: true }]" v-model="formData.applyUserName" readonly
|
||||
required name="applyUserName"></van-field>
|
||||
<van-field label="申请人工号" :rules="[{ required: true }]" v-model="formData.applyLoginName" readonly
|
||||
required name="applyLoginName"></van-field>
|
||||
<van-field label="申请人单位" :rules="[{ required: true }]" v-model="formData.applyUnitName" readonly
|
||||
required name="applyUnitName"></van-field>
|
||||
<van-field label="申请人工会" :rules="[{ required: true }]" v-model="formData.applyUnionName" readonly
|
||||
required name="applyUnionName"></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.helpUserName"
|
||||
name="helpUserName"
|
||||
label="慰问对象"
|
||||
required
|
||||
readonly
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择慰问对象"
|
||||
@click="helpUserSelectShow = true"
|
||||
is-link
|
||||
></van-field>
|
||||
<van-action-sheet v-model="helpUserSelectShow" title="慰问对象" class="height100">
|
||||
<van-search
|
||||
v-model="searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入工号或姓名选择慰问对象"
|
||||
@input="(val) => {userRemoteMethod(val, 'help')}"
|
||||
@clear="(val) => {userRemoteMethod(val, 'help')}"
|
||||
shape="round"
|
||||
></van-search>
|
||||
<div class="van-action-sheet__content mt5" v-if="userOptions && userOptions.length>0">
|
||||
<template>
|
||||
<template v-for="item in userOptions">
|
||||
<van-button native-type="button" @click="helpUserChange(item)" class="van-action-sheet__item van-hairline--bottom">
|
||||
<span class="van-action-sheet__name">{{item.userName}}({{item.loginName}})</span>
|
||||
</van-button>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
<van-empty description="暂无数据" v-else></van-empty>
|
||||
</van-action-sheet>
|
||||
|
||||
<van-field
|
||||
v-model="formData.payUserName"
|
||||
name="payUserName"
|
||||
label="收款人"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择收款人"
|
||||
@click="payUserSelectShow = true"
|
||||
is-link
|
||||
></van-field>
|
||||
<van-action-sheet v-model="payUserSelectShow" title="收款人" class="height100">
|
||||
<van-search
|
||||
v-model="searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入工号或姓名选择收款人"
|
||||
@input="(val) => {userRemoteMethod(val, 'pay')}"
|
||||
@clear="(val) => {userRemoteMethod(val, 'pay')}"
|
||||
shape="round"
|
||||
></van-search>
|
||||
<div class="van-action-sheet__content mt5" v-if="userOptions && userOptions.length>0">
|
||||
<template>
|
||||
<template v-for="item in userOptions">
|
||||
<van-button native-type="button" @click="payUserChange(item)" class="van-action-sheet__item van-hairline--bottom">
|
||||
<span class="van-action-sheet__name">{{item.userName}}({{item.loginName}})</span>
|
||||
</van-button>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
<van-empty description="暂无数据" v-else></van-empty>
|
||||
</van-action-sheet>
|
||||
|
||||
<van-field
|
||||
v-model="formData.typeName"
|
||||
name="typeName"
|
||||
label="慰问类型"
|
||||
required
|
||||
readonly
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择慰问类型"
|
||||
@click="showTypePicker = true"
|
||||
clickable
|
||||
is-link
|
||||
></van-field>
|
||||
<van-popup position="bottom" round v-model:show="showTypePicker">
|
||||
<van-picker :columns="typeColumns" @cancel="showTypePicker = false" @confirm="onTypeConfirm" show-toolbar></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
v-model="formData.way"
|
||||
name="way"
|
||||
label="慰问方式"
|
||||
required
|
||||
readonly
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请选择慰问类型"
|
||||
clickable
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.money"
|
||||
name="money"
|
||||
label="慰问金额"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="选择慰问类型自动匹配金额"
|
||||
clickable
|
||||
type="number"
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.occurTime"
|
||||
name="occurTime"
|
||||
label="慰问时间"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择慰问时间"
|
||||
clickable
|
||||
is-link
|
||||
readonly
|
||||
@click="showTimePicker = true"
|
||||
></van-field>
|
||||
<van-popup position="bottom" round v-model:show="showTimePicker">
|
||||
<van-datetime-picker
|
||||
v-model="formData.occurTime"
|
||||
type="date"
|
||||
title="请选择慰问时间"
|
||||
@confirm="(val) => {formData.occurTime = $moment(val).format('YYYY-MM-DD'); showTimePicker = false}"
|
||||
@cancel="showTimePicker = false"
|
||||
></van-datetime-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
v-if="['2'].includes(formData.type)"
|
||||
v-model="formData.child"
|
||||
name="child"
|
||||
label="孩次"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择孩次"
|
||||
clickable
|
||||
is-link
|
||||
readonly
|
||||
@click="showChildPicker = true"
|
||||
></van-field>
|
||||
<van-popup position="bottom" round v-model:show="showChildPicker">
|
||||
<van-picker
|
||||
title="请选择孩次"
|
||||
show-toolbar
|
||||
:columns="['一孩', '二孩', '三孩']"
|
||||
@confirm="(val) => {formData.child = val; showChildPicker = false}"
|
||||
@cancel="showChildPicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<template v-if="['3','4'].includes(formData.type)">
|
||||
<van-field
|
||||
v-model="formData.hospital"
|
||||
name="hospital"
|
||||
label="治疗医院"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请输入治疗医院"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.hospitalHouseNum"
|
||||
name="hospitalHouseNum"
|
||||
label="病房号"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请输入病房号"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.hospitalHouseBedNum"
|
||||
name="hospitalHouseBedNum"
|
||||
label="床号"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请输入床号"
|
||||
></van-field>
|
||||
</template>
|
||||
|
||||
<van-field
|
||||
v-if="['4'].includes(formData.type)"
|
||||
v-model="formData.hospitalBy"
|
||||
name="hospitalBy"
|
||||
label="患病病种"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请输入患病病种"
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
v-if="['6'].includes(formData.type)"
|
||||
v-model="formData.deadImmediateFamily"
|
||||
name="deadImmediateFamily"
|
||||
label="直系亲属"
|
||||
required
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择直系亲属"
|
||||
clickable
|
||||
is-link
|
||||
readonly
|
||||
@click="showFamilyPicker = true"
|
||||
></van-field>
|
||||
<van-popup position="bottom" round v-model:show="showFamilyPicker">
|
||||
<van-picker
|
||||
title="请选择直系亲属"
|
||||
show-toolbar
|
||||
:columns="['配偶', '父亲', '母亲', '子女']"
|
||||
@confirm="(val) => {formData.deadImmediateFamily = val; showFamilyPicker = false}"
|
||||
@cancel="showFamilyPicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
v-model="formData.remark"
|
||||
name="remark"
|
||||
label="申请事由"
|
||||
type="textarea"
|
||||
rows="4"
|
||||
autosize
|
||||
placeholder="请输入申请事由"
|
||||
:rules="[{ required: true }]"
|
||||
required
|
||||
></van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group class="form-section" v-if="chooseType.isUploadFile === true">
|
||||
<template #title>
|
||||
<span>附件</span>
|
||||
<span v-if="chooseType.isUploadFile && chooseType.uploadFileDesc" style="color: orangered">
|
||||
{{ '(附件说明:' + chooseType.uploadFileDesc + ')' }}
|
||||
</span>
|
||||
</template>
|
||||
<van-field class="direction-column-field" name="avatar" label="">
|
||||
<template #input>
|
||||
<h5-file-upload
|
||||
slot="input"
|
||||
:value.sync="formData.files"
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
></h5-file-upload>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group title="签字" class="form-section">
|
||||
<van-field class="direction-column-field" name="signature" label="">
|
||||
<template #input>
|
||||
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<!-- 提交按钮 -->
|
||||
<div class="form-actions">
|
||||
<van-button native-type="button" @click="onSave" round type="info" plain>保存申请</van-button>
|
||||
<van-button @click="onSubmit" round type="info" v-if="!taskId">提交申请</van-button>
|
||||
<van-button @click="onFinishTask" round type="info" v-else>提交申请</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
formData: {},
|
||||
|
||||
chooseType: {},
|
||||
userOptions: [],
|
||||
typeOptions: [],
|
||||
|
||||
helpUserSelectShow: false,
|
||||
payUserSelectShow: false,
|
||||
showTypePicker: false,
|
||||
typeColumns: [],
|
||||
searchKeyword: '',
|
||||
|
||||
showTimePicker: false,
|
||||
showChildPicker: false,
|
||||
showFamilyPicker: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async userRemoteMethod(event, type) {
|
||||
if (event) {
|
||||
this.userOptions = await this.selectQueryUser(event)
|
||||
type === 'help' ? this.helpUserSelectShow = true : this.payUserSelectShow = true
|
||||
}
|
||||
},
|
||||
async selectQueryUser(keyword) {
|
||||
const res = await this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword })
|
||||
return res.data
|
||||
},
|
||||
helpUserChange(user) {
|
||||
const { id, userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
this.$set(this.formData, "helpUserId", id)
|
||||
this.$set(this.formData, "helpUserName", userName)
|
||||
this.$set(this.formData, "helpLoginName", loginName)
|
||||
this.$set(this.formData, "helpUnitId", unitId)
|
||||
this.$set(this.formData, "helpUnitName", unitName)
|
||||
this.$set(this.formData, "helpUnionId", unionId)
|
||||
this.$set(this.formData, "helpUnionName", unionName)
|
||||
this.helpUserSelectShow = false
|
||||
this.searchKeyword = ''
|
||||
this.userOptions = []
|
||||
},
|
||||
payUserChange(user) {
|
||||
const { id, userName, loginName } = user
|
||||
this.$set(this.formData, "payUserId", id)
|
||||
this.$set(this.formData, "payUserName", userName)
|
||||
this.$set(this.formData, "payLoginName", loginName)
|
||||
this.payUserSelectShow = false
|
||||
this.searchKeyword = ''
|
||||
this.userOptions = []
|
||||
},
|
||||
typeChange(id) {
|
||||
this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||
if (this.chooseType) {
|
||||
this.$set(this.formData, "money", this.chooseType.money)
|
||||
this.$set(this.formData, "way", this.chooseType.way)
|
||||
}
|
||||
},
|
||||
onTypeConfirm(o) {
|
||||
this.$set(this.formData, "typeName", o.text)
|
||||
this.$set(this.formData, "type", o.value)
|
||||
this.typeChange(o.value)
|
||||
this.showTypePicker = false
|
||||
},
|
||||
onSave() {
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定保存吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.$pjaxReplace("/platform/condolence/mine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async onSubmit() {
|
||||
this.$refs.formRef.validate().then(() => {
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交申请吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/submit", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.$pjaxReplace("/platform/condolence/mine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
async onFinishTask() {
|
||||
this.$refs.formRef.validate().then(() => {
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交申请吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/submitAgain", {
|
||||
data: JSON.stringify(this.formData),
|
||||
taskId: GetQueryString("taskId")
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.$pjaxReplace("/platform/condolence/mine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
init() {
|
||||
if (this.bizId) {
|
||||
this.$axios.post("/platform/condolence/mine/info", { id: this.bizId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
||||
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
||||
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||
this.formData = {
|
||||
applyUserName: username,
|
||||
applyLoginName: loginname,
|
||||
applyUserId: id,
|
||||
applyUnitId: unit?.id,
|
||||
applyUnitName: unit?.name,
|
||||
applyUnionId: union?.id,
|
||||
applyUnionName: union?.name,
|
||||
}
|
||||
}
|
||||
},
|
||||
queryCondolenceType() {
|
||||
this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||
.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 + ")" })
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.queryCondolenceType()
|
||||
this.init()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入姓名或者工号搜索"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||
@change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/condolence/branchUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" @ready="onReady">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="慰问对象">{{row.helpUserName}}</table-column>
|
||||
<table-column label="慰问对象工号">{{row.helpLoginName}}</table-column>
|
||||
<table-column label="申请人">{{row.applyUserName}}</table-column>
|
||||
<table-column label="所属工会">{{row.applyUnionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.applyUnitName}}</table-column>
|
||||
<table-column label="慰问类型">{{row.typeName}}</table-column>
|
||||
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-reply"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
info: condolenceInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: '',
|
||||
name: null,
|
||||
approvalText: "0",
|
||||
approval: false,
|
||||
year: new Date().getFullYear(),
|
||||
type: null,
|
||||
},
|
||||
typeOptions: [],
|
||||
formData: {},
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onReady() {
|
||||
const typeList = await this.queryCondolenceType()
|
||||
this.typeOptions = [
|
||||
{
|
||||
text: "全部慰问类型",
|
||||
value: null
|
||||
}
|
||||
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||
if (this.typeOptions.length > 0) {
|
||||
this.pageForm.type = this.typeOptions[0].value
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
},
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
onRevoke(row){
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async queryCondolenceType() {
|
||||
const res = await this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||
return res.data
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,98 @@
|
||||
const condolenceInfo = {
|
||||
template:
|
||||
/*language=HTML*/
|
||||
`
|
||||
<van-action-sheet v-model="visible" title="查看详情">
|
||||
<div class="detail-container">
|
||||
<van-cell-group title="基本信息">
|
||||
<van-cell title="申请人姓名">{{ viewData.applyUserName }}</van-cell>
|
||||
<van-cell title="申请人工号">{{ viewData.applyLoginName }}</van-cell>
|
||||
<van-cell title="申请人单位">{{ viewData.applyUnitName }}</van-cell>
|
||||
<van-cell title="申请人工会">{{ viewData.applyUnionName }}</van-cell>
|
||||
<van-cell title="慰问对象">{{ viewData.helpUserName }}</van-cell>
|
||||
<van-cell title="收款人">{{ viewData.payUserName }}</van-cell>
|
||||
<van-cell title="慰问类型">{{ viewData.typeName }}</van-cell>
|
||||
<van-cell title="慰问方式">{{ viewData.way }}</van-cell>
|
||||
<van-cell title="慰问金额">{{ viewData.money }}</van-cell>
|
||||
<van-cell title="慰问时间">{{ viewData.occurTime }}</van-cell>
|
||||
<van-cell v-if="['2'].includes(viewData.type)" title="孩次">{{ viewData.child }}</van-cell>
|
||||
<van-cell v-if="['3','4'].includes(viewData.type)" title="治疗医院">{{ viewData.hospital }}</van-cell>
|
||||
<van-cell v-if="['3','4'].includes(viewData.type)" title="病房号">{{ viewData.hospitalHouseNum }}</van-cell>
|
||||
<van-cell v-if="['3','4'].includes(viewData.type)" title="床号">{{ viewData.hospitalHouseBedNum }}</van-cell>
|
||||
<van-cell v-if="['4'].includes(viewData.type)" title="患病病种">{{ viewData.hospitalBy }}</van-cell>
|
||||
<van-cell v-if="['6'].includes(viewData.type)" title="直系亲属">{{ viewData.deadImmediateFamily }}</van-cell>
|
||||
<van-cell class="direction-column-cell" title="申请事由">
|
||||
{{ viewData.remark || '暂无' }}
|
||||
</van-cell>
|
||||
<van-cell class="direction-column-cell" title="附件">
|
||||
</van-cell>
|
||||
<van-cell class="direction-column-cell" title="签字">
|
||||
<van-image :src="viewData.signature" v-if="viewData.signature" class="signature-image"></van-image>
|
||||
<span v-else>暂无签字</span>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
<template v-for="task in doneTasks">
|
||||
<van-cell-group :title="task.displayName" v-if="task.ext.isFirstTaskNode">
|
||||
<van-cell title="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})
|
||||
</van-cell>
|
||||
<van-cell title="申请时间">{{ task.finishTime }}</van-cell>
|
||||
<van-cell title="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group :title="task.displayName" v-else>
|
||||
<van-cell title="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})
|
||||
</van-cell>
|
||||
<van-cell title="办理时间">{{ task.finishTime }}</van-cell>
|
||||
<van-cell title="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</van-cell>
|
||||
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
|
||||
<div v-html="task.taskFormData.tf_opinion"></div>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</div>
|
||||
<slot></slot>
|
||||
</van-action-sheet>
|
||||
`,
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
visible:false,
|
||||
viewData: {},
|
||||
doneTasks: [],
|
||||
row: null,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.visible = true
|
||||
this.getInfo()
|
||||
this.getDoneTasks()
|
||||
},
|
||||
onClose(){
|
||||
this.visible = false
|
||||
},
|
||||
getInfo() {
|
||||
this.$axios.post("/platform/condolence/mine/info", { id: this.row.id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
getDoneTasks() {
|
||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
|
||||
`
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入姓名或者工号搜索"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||
@change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/condolence/mine/pageData" :page_form.sync="pageForm" ref="tableListRef" @ready="onReady">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="慰问对象">{{row.helpUserName}}</table-column>
|
||||
<table-column label="慰问对象工号">{{row.helpLoginName}}</table-column>
|
||||
<table-column label="申请人">{{row.applyUserName}}</table-column>
|
||||
<table-column label="所属工会">{{row.applyUnionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.applyUnitName}}</table-column>
|
||||
<table-column label="慰问类型">{{row.typeName}}</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" @click="onEdit(row)"
|
||||
v-if="row.taskKey === 'startTask' || !row.instanceId">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>编辑</span>
|
||||
</div>
|
||||
<div class="action-btn delete" @click="onRevoke(row)"
|
||||
v-if="row.canRevoke">
|
||||
<i class="fa fa-undo"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
<div class="action-btn delete" @click="onDelete(row)"
|
||||
v-if="row.taskKey === 'startTask' || !row.instanceId">
|
||||
<i class="fa fa-trash"></i>
|
||||
<span>删除</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef"></info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
info: condolenceInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
year: new Date().getFullYear(),
|
||||
type: null
|
||||
},
|
||||
typeOptions: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onReady() {
|
||||
const typeList = await this.queryCondolenceType()
|
||||
this.typeOptions = [
|
||||
{
|
||||
text: "全部慰问类型",
|
||||
value: null
|
||||
}
|
||||
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||
if (this.typeOptions.length > 0) {
|
||||
this.pageForm.type = this.typeOptions[0].value
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", { taskId: row.startTaskId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onView(row) {
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
onEdit(row) {
|
||||
this.$pjaxReplace("/platform/condolence/apply/h5?taskId=" + (row.startTaskId || "") + "&bizId=" + row.id)
|
||||
},
|
||||
onDelete(id) {
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "确定要删除此申请吗?"
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios.post("/platform/condolence/mine/delete", { id: id }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(res.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
async queryCondolenceType() {
|
||||
const res = await this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||
return res.data
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入姓名或者工号搜索"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||
@change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/condolence/schoolUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" @ready="onReady">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="慰问对象">{{row.helpUserName}}</table-column>
|
||||
<table-column label="慰问对象工号">{{row.helpLoginName}}</table-column>
|
||||
<table-column label="申请人">{{row.applyUserName}}</table-column>
|
||||
<table-column label="所属工会">{{row.applyUnionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.applyUnitName}}</table-column>
|
||||
<table-column label="慰问类型">{{row.typeName}}</table-column>
|
||||
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-reply"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
info: condolenceInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: '',
|
||||
name: null,
|
||||
approvalText: "0",
|
||||
approval: false,
|
||||
year: new Date().getFullYear(),
|
||||
type: null,
|
||||
},
|
||||
typeOptions: [],
|
||||
formData: {},
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onReady() {
|
||||
const typeList = await this.queryCondolenceType()
|
||||
this.typeOptions = [
|
||||
{
|
||||
text: "全部慰问类型",
|
||||
value: null
|
||||
}
|
||||
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||
if (this.typeOptions.length > 0) {
|
||||
this.pageForm.type = this.typeOptions[0].value
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
},
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
onRevoke(row){
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤回吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async queryCondolenceType() {
|
||||
const res = await this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||
return res.data
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user