bug整改
This commit is contained in:
@@ -161,7 +161,14 @@ layout("/mobile/platform.html"){
|
||||
<van-button @click.stop="openView(o)" type="primary" size="small" color="#1867b0" style="margin-right: 8px; width: auto">
|
||||
查看
|
||||
</van-button>
|
||||
<van-button @click.stop="openAudit(o)" type="primary" size="small" color="#1867b0" style="margin-right: 8px; width: auto">
|
||||
<van-button
|
||||
@click.stop="openAudit(o)"
|
||||
v-if="o.status == 1"
|
||||
type="primary"
|
||||
size="small"
|
||||
color="#1867b0"
|
||||
style="margin-right: 8px; width: auto"
|
||||
>
|
||||
审核
|
||||
</van-button>
|
||||
</div>
|
||||
|
||||
@@ -505,10 +505,21 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
str += "请确认是否申请加入【" + row.name + "】?"
|
||||
vant.Dialog.confirm({ title: "提示", message: str })
|
||||
.then(() => {
|
||||
.then(async () => {
|
||||
this.formData.clubid = row.id
|
||||
this.formData.photo = this.formData.photo[0].filepath
|
||||
$.post(
|
||||
if (this.formData.photo && this.formData.photo.length > 0) {
|
||||
this.formData.photo = this.formData.photo[0].filepath
|
||||
}
|
||||
// this.formData.photo = this.formData.photo[0].filepath
|
||||
const resp = await $.post("/platform/sys/club/sq/submit", this.formData)
|
||||
if (resp.code === 0) {
|
||||
vant.Toast(resp.msg)
|
||||
this.doSearch()
|
||||
this.infoShow = false
|
||||
} else {
|
||||
vant.Toast(resp.msg)
|
||||
}
|
||||
/*$.post(
|
||||
"/platform/sys/club/sq/submit",
|
||||
this.formData,
|
||||
(data) => {
|
||||
@@ -521,7 +532,7 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
)*/
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
|
||||
@@ -3,208 +3,149 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="填写慰问申请" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="填写慰问申请" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
<van-form ref="addForm" :show-error-message="false" input-align="right" style="margin-bottom: 60px">
|
||||
<van-cell-group inset class="mt10">
|
||||
<van-field readonly value="${@shiro.getPrincipalProperty('username')}" name="manager_name" label="经办人姓名"></van-field>
|
||||
<van-field readonly value="${@shiro.getPrincipalProperty('loginname')}" name="manager_name" label="经办人工号"></van-field>
|
||||
<van-field
|
||||
@input="userRemoteMethod"
|
||||
name="be_user_name"
|
||||
required
|
||||
v-model="formData.be_user_name"
|
||||
label="慰问对象"
|
||||
placeholder="请输入慰问对象"
|
||||
:rules="[{ required: true, message: '请填写慰问对象' }]"
|
||||
></van-field>
|
||||
<van-action-sheet
|
||||
v-model="sheetShow"
|
||||
:actions="userList"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
@cancel="userList = []; formData.be_user_name = ''"
|
||||
:close-on-click-overlay="false"
|
||||
@select="onUserSelect"
|
||||
></van-action-sheet>
|
||||
<van-field readonly value="${@shiro.getPrincipalProperty('username')}" name="manager_name"
|
||||
label="经办人姓名"></van-field>
|
||||
<van-field readonly value="${@shiro.getPrincipalProperty('loginname')}" name="manager_name"
|
||||
label="经办人工号"></van-field>
|
||||
<van-field @input="userRemoteMethod" name="be_user_name"
|
||||
required
|
||||
v-model="formData.be_user_name" label="慰问对象" placeholder="请输入慰问对象"
|
||||
:rules="[{ required: true, message: '请填写慰问对象' }]"></van-field>
|
||||
<van-action-sheet v-model="sheetShow"
|
||||
:actions="userList"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
@cancel="userList = []; formData.be_user_name = ''"
|
||||
:close-on-click-overlay="false"
|
||||
@select="onUserSelect">
|
||||
</van-action-sheet>
|
||||
|
||||
<van-field readonly :value="formData.apply_time" name="apply_time" label="申请时间"></van-field>
|
||||
|
||||
<van-field
|
||||
@input="payeeUserRemoteMethod"
|
||||
name="payee_name"
|
||||
required
|
||||
:rules="[{ required: true, message: '请选择收款人' }]"
|
||||
v-model="formData.payee_name"
|
||||
label="收款人"
|
||||
placeholder="请输入收款人"
|
||||
<van-field readonly :value="formData.apply_time" name="apply_time"
|
||||
label="申请时间"
|
||||
></van-field>
|
||||
<van-action-sheet
|
||||
v-model="payeeSheetShow"
|
||||
:actions="payeeUserList"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
@cancel="payeeUserList = []; formData.payee_name = ''"
|
||||
:close-on-click-overlay="false"
|
||||
@select="payeeOnUserSelect"
|
||||
></van-action-sheet>
|
||||
|
||||
|
||||
<van-field @input="payeeUserRemoteMethod" name="payee_name"
|
||||
required :rules="[{ required: true, message: '请选择收款人' }]"
|
||||
v-model="formData.payee_name" label="收款人" placeholder="请输入收款人"></van-field>
|
||||
<van-action-sheet v-model="payeeSheetShow"
|
||||
:actions="payeeUserList"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
@cancel="payeeUserList = []; formData.payee_name = ''"
|
||||
:close-on-click-overlay="false"
|
||||
@select="payeeOnUserSelect">
|
||||
</van-action-sheet>
|
||||
<!--<van-field v-model="formData.payee_bank_number" name="payee_bank_number" type="number"
|
||||
label="收款人银行卡" placeholder="请输入收款人银行卡"></van-field>
|
||||
<van-field v-model="formData.payee_bank_name" name="payee_bank_name"
|
||||
label="收款人开户行" placeholder="请输入收款人开户行"></van-field>-->
|
||||
|
||||
<van-field
|
||||
readonly
|
||||
clickable
|
||||
name="type"
|
||||
:value="formData.typeName"
|
||||
required
|
||||
label="慰问类型"
|
||||
@click="showTypePicker = true"
|
||||
placeholder="点击选择慰问类型"
|
||||
:rules="[{ required:true, message: '请选择慰问类型'}]"
|
||||
></van-field>
|
||||
|
||||
<van-field readonly clickable name="type" :value="formData.typeName"
|
||||
required
|
||||
label="慰问类型"
|
||||
@click="showTypePicker = true" placeholder="点击选择慰问类型"
|
||||
:rules="[{ required:true, message: '请选择慰问类型'}]"></van-field>
|
||||
<van-popup v-model:show="showTypePicker" position="bottom" round>
|
||||
<van-picker show-toolbar :columns="typeColumns" @confirm="onTypeConfirm" @cancel="showTypePicker = false"></van-picker>
|
||||
<van-picker show-toolbar :columns="typeColumns" @confirm="onTypeConfirm"
|
||||
@cancel="showTypePicker = false">
|
||||
</van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
readonly
|
||||
clickable
|
||||
name="way"
|
||||
:value="formData.wayName"
|
||||
label="慰问方式"
|
||||
required
|
||||
placeholder="点击选择慰问方式"
|
||||
:rules="[{ required:true, message: '请选择慰问方式'}]"
|
||||
></van-field>
|
||||
<van-field readonly clickable name="way" :value="formData.wayName"
|
||||
label="慰问方式"
|
||||
required
|
||||
placeholder="点击选择慰问方式"
|
||||
:rules="[{ required:true, message: '请选择慰问方式'}]"></van-field>
|
||||
<van-popup v-model:show="showWayPicker" position="bottom" round>
|
||||
<van-picker show-toolbar :columns="wayColumns" @confirm="onWayConfirm" @cancel="showWayPicker = false"></van-picker>
|
||||
<van-picker show-toolbar :columns="wayColumns" @confirm="onWayConfirm"
|
||||
@cancel="showWayPicker = false">
|
||||
</van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
v-model="formData.money"
|
||||
name="money"
|
||||
type="number"
|
||||
label="慰问金额"
|
||||
placeholder="请填写慰问金额"
|
||||
:rules="[{ required:true, message: '请填写慰问金额' }]"
|
||||
></van-field>
|
||||
<van-field v-model="formData.money" name="money" type="number" label="慰问金额"
|
||||
placeholder="请填写慰问金额"
|
||||
:rules="[{ required:true, message: '请填写慰问金额' }]"></van-field>
|
||||
|
||||
<!-- 孩次 -->
|
||||
<van-field
|
||||
readonly
|
||||
clickable
|
||||
name="type"
|
||||
v-model="formData.birth_child_num"
|
||||
required
|
||||
v-if="formData.type==='2'"
|
||||
label="孩次"
|
||||
@click="showChildPicker = true"
|
||||
placeholder="点击选择孩次"
|
||||
:rules="[{ required:true, message: '请选择孩次'}]"
|
||||
></van-field>
|
||||
<van-field readonly clickable name="type" v-model="formData.birth_child_num"
|
||||
required v-if="formData.type==='2'"
|
||||
label="孩次"
|
||||
@click="showChildPicker = true" placeholder="点击选择孩次"
|
||||
:rules="[{ required:true, message: '请选择孩次'}]"></van-field>
|
||||
<van-popup v-model:show="showChildPicker" position="bottom" round>
|
||||
<van-picker show-toolbar :columns="childColumns" @confirm="onChildConfirm" @cancel="showChildPicker = false"></van-picker>
|
||||
<van-picker show-toolbar :columns="childColumns" @confirm="onChildConfirm"
|
||||
@cancel="showChildPicker = false">
|
||||
</van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写慰问时间' }]"
|
||||
readonly
|
||||
clickable
|
||||
name="occur_time"
|
||||
:value="formData.occur_time"
|
||||
label="慰问时间"
|
||||
placeholder="点击选择慰问时间"
|
||||
@click="showOccurTime = true"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写慰问时间' }]"
|
||||
readonly
|
||||
clickable
|
||||
name="occur_time"
|
||||
:value="formData.occur_time"
|
||||
label="慰问时间"
|
||||
placeholder="点击选择慰问时间"
|
||||
@click="showOccurTime = true"
|
||||
></van-field>
|
||||
<van-calendar
|
||||
v-model="showOccurTime"
|
||||
@confirm="onOccurTimeConfirm"
|
||||
:min-date="minDate"
|
||||
:max-date="maxDate"
|
||||
:color="themeColor"
|
||||
></van-calendar>
|
||||
<van-calendar v-model="showOccurTime"
|
||||
@confirm="onOccurTimeConfirm"
|
||||
:min-date="minDate"
|
||||
:max-date="maxDate"
|
||||
:color="themeColor"></van-calendar>
|
||||
|
||||
<template v-if="['3','4'].includes(formData.type)">
|
||||
<van-field
|
||||
v-model="formData.the_hospital"
|
||||
name="the_hospital"
|
||||
label="治疗医院"
|
||||
placeholder="请填写治疗医院"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写治疗医院' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.the_hospital_house_num"
|
||||
name="the_hospital_house_num"
|
||||
label="病房号"
|
||||
placeholder="请填写病房号"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写病房号' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.the_hospital_house_bed_num"
|
||||
name="the_hospital_house_bed_num"
|
||||
label="床号"
|
||||
placeholder="请填写床号"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写床号' }]"
|
||||
></van-field>
|
||||
<van-field v-model="formData.the_hospital" name="the_hospital" label="治疗医院"
|
||||
placeholder="请填写治疗医院" required
|
||||
:rules="[{ required:true, message: '请填写治疗医院' }]"></van-field>
|
||||
<van-field v-model="formData.the_hospital_house_num" name="the_hospital_house_num" label="病房号"
|
||||
placeholder="请填写病房号" required
|
||||
:rules="[{ required:true, message: '请填写病房号' }]"></van-field>
|
||||
<van-field v-model="formData.the_hospital_house_bed_num" name="the_hospital_house_bed_num" label="床号"
|
||||
placeholder="请填写床号" required
|
||||
:rules="[{ required:true, message: '请填写床号' }]"></van-field>
|
||||
</template>
|
||||
|
||||
<template v-if="['4'].includes(formData.type)">
|
||||
<van-field
|
||||
v-model="formData.hospital_by"
|
||||
name="hospital_by"
|
||||
label="患病病种"
|
||||
placeholder="请填写患病病种"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写患病病种' }]"
|
||||
></van-field>
|
||||
<van-field v-model="formData.hospital_by" name="hospital_by" label="患病病种"
|
||||
placeholder="请填写患病病种" required
|
||||
:rules="[{ required:true, message: '请填写患病病种' }]"></van-field>
|
||||
</template>
|
||||
|
||||
<template v-if="['6'].includes(formData.type)">
|
||||
<van-field
|
||||
v-model="formData.deadImmediateFamily"
|
||||
name="deadImmediateFamily"
|
||||
label="直系亲属"
|
||||
placeholder="配偶、父亲、母亲、子女"
|
||||
required
|
||||
:rules="[{ required:true, message: '必填' }]"
|
||||
></van-field>
|
||||
<van-field v-model="formData.deadImmediateFamily" name="deadImmediateFamily" label="直系亲属"
|
||||
placeholder="配偶、父亲、母亲、子女" required
|
||||
:rules="[{ required:true, message: '必填' }]"></van-field>
|
||||
</template>
|
||||
|
||||
<!-- <template-->
|
||||
<!-- v-if="['c7175af55693441e8233be4552cef9d5','0872ea0b95aa463fb8d98c46bdf72537'].includes(formData.type)">-->
|
||||
<!-- <van-field :value="formData.hospital_stay"-->
|
||||
<!-- readonly clickable required-->
|
||||
<!-- @click="hospital_stay = true"-->
|
||||
<!-- name="hospital_stay" label="住院时间"-->
|
||||
<!-- placeholder="请选择住院时间"-->
|
||||
<!-- :rules="[{ required:true, message: '请选择住院时间' }]"></van-field>-->
|
||||
<!-- <van-calendar v-model="hospital_stay" type="range" @confirm="onConfirm"-->
|
||||
<!-- :min-date="new Date('1999-01-01')"-->
|
||||
<!-- :color="themeColor"></van-calendar>-->
|
||||
<!-- <template-->
|
||||
<!-- v-if="['c7175af55693441e8233be4552cef9d5','0872ea0b95aa463fb8d98c46bdf72537'].includes(formData.type)">-->
|
||||
<!-- <van-field :value="formData.hospital_stay"-->
|
||||
<!-- readonly clickable required-->
|
||||
<!-- @click="hospital_stay = true"-->
|
||||
<!-- name="hospital_stay" label="住院时间"-->
|
||||
<!-- placeholder="请选择住院时间"-->
|
||||
<!-- :rules="[{ required:true, message: '请选择住院时间' }]"></van-field>-->
|
||||
<!-- <van-calendar v-model="hospital_stay" type="range" @confirm="onConfirm"-->
|
||||
<!-- :min-date="new Date('1999-01-01')"-->
|
||||
<!-- :color="themeColor"></van-calendar>-->
|
||||
|
||||
<!-- <van-field v-model="formData.the_hospital" name="the_hospital" name="type" label="所在医院"-->
|
||||
<!-- placeholder="请填写所在医院" required-->
|
||||
<!-- :rules="[{ required:true, message: '请填写所在医院' }]"></van-field>-->
|
||||
<!-- </template>-->
|
||||
<!-- <van-field v-model="formData.the_hospital" name="the_hospital" name="type" label="所在医院"-->
|
||||
<!-- placeholder="请填写所在医院" required-->
|
||||
<!-- :rules="[{ required:true, message: '请填写所在医院' }]"></van-field>-->
|
||||
<!-- </template>-->
|
||||
|
||||
<van-field
|
||||
v-model="formData.remark"
|
||||
name="remark"
|
||||
label="申请事由"
|
||||
style="flex-flow: column"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写申请事由' }]"
|
||||
placeholder="请填写申请事由"
|
||||
input-align="left"
|
||||
rows="3"
|
||||
maxlength="200"
|
||||
type="textarea"
|
||||
show-word-limit
|
||||
autosize
|
||||
>
|
||||
<van-field v-model="formData.remark" name="remark" label="申请事由" style="flex-flow: column"
|
||||
required
|
||||
:rules="[{ required:true, message: '请填写申请事由' }]"
|
||||
placeholder="请填写申请事由"
|
||||
input-align="left"
|
||||
rows="3" maxlength="200" type="textarea" show-word-limit autosize>
|
||||
<template #label>
|
||||
<div class="mb10">申请事由</div>
|
||||
</template>
|
||||
@@ -212,7 +153,8 @@ layout("/mobile/platform.html"){
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group inset class="mt10" v-if="isUploadFile === true">
|
||||
<van-field name="files" label="附  件" required style="flex-flow: column" input-align="left">
|
||||
<van-field name="files" label="附  件" required
|
||||
style="flex-flow: column" input-align="left">
|
||||
<template #label>
|
||||
<div class="mb10">附  件</div>
|
||||
</template>
|
||||
@@ -220,8 +162,8 @@ layout("/mobile/platform.html"){
|
||||
<vant-file-upload :files.sync="formData.files"></vant-file-upload>
|
||||
</template>
|
||||
</van-field>
|
||||
<div style="margin: 0 0 7px 15px" v-if="isUploadFile && uploadFileDesc">
|
||||
<span style="color: red">上传附件说明:{{ uploadFileDesc }}</span>
|
||||
<div style="margin: 0 0 7px 15px;" v-if="isUploadFile && uploadFileDesc">
|
||||
<span style="color:red;">上传附件说明:{{ uploadFileDesc }}</span>
|
||||
</div>
|
||||
</van-cell-group>
|
||||
|
||||
@@ -237,21 +179,26 @@ layout("/mobile/platform.html"){
|
||||
</van-cell-group>
|
||||
|
||||
<div style="margin: 20px 20px 10px 20px">
|
||||
<van-button @click="onSubmit()" style="border-radius: 10px" block type="info" :color="themeColor">提 交</van-button>
|
||||
<van-button @click="onSubmit()" style="border-radius: 10px" block type="info" :color="themeColor">
|
||||
提 交
|
||||
</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
|
||||
<div>
|
||||
<van-tabbar v-model="tarBarActive" style="z-index: 99">
|
||||
<van-tabbar-item icon="home-o" replace url="/mobile/condolence/apply/for">慰问申请</van-tabbar-item>
|
||||
<van-tabbar-item icon="manager-o" replace url="/mobile/condolence/apply">慰问记录</van-tabbar-item>
|
||||
<van-tabbar-item icon="home-o" replace url="/mobile/condolence/apply/for">慰问申请
|
||||
</van-tabbar-item>
|
||||
<van-tabbar-item icon="manager-o" replace url="/mobile/condolence/apply">慰问记录
|
||||
</van-tabbar-item>
|
||||
</van-tabbar>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -275,38 +222,34 @@ layout("/mobile/platform.html"){
|
||||
money: 0,
|
||||
isUploadFile: true,
|
||||
uploadFileDesc: null,
|
||||
showChildPicker: false,
|
||||
childColumns: [
|
||||
{ value: "一孩", text: "一孩" },
|
||||
{ value: "二孩", text: "二孩" },
|
||||
{ value: "三孩", text: "三孩" }
|
||||
]
|
||||
showChildPicker:false,
|
||||
childColumns:[{value:'一孩',text:'一孩'},{value:'二孩',text:'二孩'},{value:'三孩',text:'三孩'}],
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
"formData.money"(val) {
|
||||
if (val > this.money) {
|
||||
this.$notify({
|
||||
title: "警告",
|
||||
message: "金额超过规定金额" + this.money + "(元)",
|
||||
type: "warning"
|
||||
})
|
||||
title: '警告',
|
||||
message: '金额超过规定金额' + this.money + "(元)",
|
||||
type: 'warning'
|
||||
});
|
||||
this.$set(this.formData, "money", this.money)
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue?v=" + new Date().getTime())
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue?v='+new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
onChildConfirm(data) {
|
||||
onChildConfirm(data){
|
||||
console.log(data)
|
||||
this.formData.birth_child_num = data.value
|
||||
this.showChildPicker = false
|
||||
},
|
||||
priceInput() {
|
||||
let num = 0
|
||||
this.goods.forEach((v) => {
|
||||
this.goods.forEach(v => {
|
||||
num += parseFloat(v.price)
|
||||
})
|
||||
this.$set(this.formData, "money", num)
|
||||
@@ -316,19 +259,18 @@ layout("/mobile/platform.html"){
|
||||
this.showOccurTime = false
|
||||
},
|
||||
onConfirm(date) {
|
||||
const [start, end] = date
|
||||
this.hospital_stay = false
|
||||
this.formData.hospital_stay = moment(start).format("YYYY-MM-DD") + "-" + moment(end).format("YYYY-MM-DD")
|
||||
this.$set(this.formData, "hospital_stay_1", moment(start).format("YYYY-MM-DD"))
|
||||
this.$set(this.formData, "hospital_stay_2", moment(end).format("YYYY-MM-DD"))
|
||||
const [start, end] = date;
|
||||
this.hospital_stay = false;
|
||||
this.formData.hospital_stay = moment(start).format('YYYY-MM-DD') + "-" + moment(end).format('YYYY-MM-DD');
|
||||
this.$set(this.formData, "hospital_stay_1", moment(start).format('YYYY-MM-DD'))
|
||||
this.$set(this.formData, "hospital_stay_2", moment(end).format('YYYY-MM-DD'))
|
||||
},
|
||||
async userRemoteMethod(event) {
|
||||
if (event) {
|
||||
const arr = await this.queryUser(event)
|
||||
this.userList = arr.map((v) => {
|
||||
this.userList = arr.map(v => {
|
||||
return {
|
||||
name: v.username + "(" + v.loginname + ")",
|
||||
id: v.id
|
||||
name: v.username + "(" + v.loginname + ")", id: v.id
|
||||
}
|
||||
})
|
||||
this.sheetShow = true
|
||||
@@ -337,33 +279,32 @@ layout("/mobile/platform.html"){
|
||||
async payeeUserRemoteMethod(event) {
|
||||
if (event) {
|
||||
const arr = await this.queryUser(event)
|
||||
this.payeeUserList = arr.map((v) => {
|
||||
this.payeeUserList = arr.map(v => {
|
||||
return {
|
||||
name: v.username + "(" + v.loginname + ")",
|
||||
id: v.id
|
||||
name: v.username + "(" + v.loginname + ")", id: v.id
|
||||
}
|
||||
})
|
||||
this.payeeSheetShow = true
|
||||
}
|
||||
},
|
||||
async queryUser(query) {
|
||||
const { data } = await $.get("/platform/fw/condolence/apply/queryUser", { query })
|
||||
const {data} = await $.get("/platform/fw/condolence/apply/queryUser", {query})
|
||||
return data
|
||||
},
|
||||
onUserSelect(u) {
|
||||
this.$set(this.formData, "be_user", u.id)
|
||||
this.$set(this.formData, "be_user_name", u.name)
|
||||
this.$set(this.formData, 'be_user', u.id)
|
||||
this.$set(this.formData, 'be_user_name', u.name)
|
||||
this.sheetShow = false
|
||||
},
|
||||
payeeOnUserSelect(u) {
|
||||
this.$set(this.formData, "payee", u.id)
|
||||
this.$set(this.formData, "payee_name", u.name)
|
||||
this.$set(this.formData, 'payee', u.id)
|
||||
this.$set(this.formData, 'payee_name', u.name)
|
||||
this.payeeSheetShow = false
|
||||
},
|
||||
async onTypeConfirm(val) {
|
||||
this.$set(this.formData, "typeName", val.text)
|
||||
this.$set(this.formData, "type", val.value)
|
||||
const { data, code, msg } = await $.get("/platform/condolence/type/findOne", { id: val.value })
|
||||
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id: val.value})
|
||||
console.log(data)
|
||||
|
||||
this.isUploadFile = data.isUploadFile
|
||||
@@ -371,15 +312,15 @@ layout("/mobile/platform.html"){
|
||||
|
||||
this.$set(this, "money", data.money)
|
||||
await this.moneyChange(val.value)
|
||||
this.showTypePicker = false
|
||||
this.showTypePicker = false;
|
||||
},
|
||||
onWayConfirm(val) {
|
||||
this.$set(this.formData, "wayName", val.text)
|
||||
this.$set(this.formData, "way", val.value)
|
||||
this.showWayPicker = false
|
||||
this.showWayPicker = false;
|
||||
},
|
||||
async moneyChange(id) {
|
||||
const { data, code, msg } = await $.get("/platform/condolence/type/findOne", { id })
|
||||
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id})
|
||||
if (data) {
|
||||
this.$set(this.formData, "money", data.money)
|
||||
this.$set(this.formData, "wayName", data.way)
|
||||
@@ -388,34 +329,34 @@ layout("/mobile/platform.html"){
|
||||
},
|
||||
async onSubmit() {
|
||||
if (!this.formData.files) {
|
||||
vant.Toast("请上传附件材料!")
|
||||
vant.Toast('请上传附件材料!')
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
if (this.$refs.signature.checkNull()) {
|
||||
this.$toast("请签名!")
|
||||
this.$toast('请签名!')
|
||||
return
|
||||
}
|
||||
await this.$refs.signature.updateSign()
|
||||
const formData = clone(this.formData)
|
||||
formData.mobile = "${@shiro.getPrincipalProperty('mobile')}"
|
||||
formData.files = JSON.stringify(formData.files)
|
||||
this.$refs["addForm"].validate().then(async () => {
|
||||
this.$toast.loading("提交中...")
|
||||
const res = await $.post("/platform/fw/condolence/apply/doAdd", {
|
||||
this.$refs['addForm'].validate().then(async () => {
|
||||
this.$toast.loading('提交中...')
|
||||
const res = await $.post('/platform/fw/condolence/apply/doAdd', {
|
||||
data: JSON.stringify(formData),
|
||||
sign: formData.sign
|
||||
})
|
||||
if (res.code === 0) {
|
||||
this.$toast.success("申请成功")
|
||||
this.$toast.success('申请成功');
|
||||
setTimeout(() => {
|
||||
location.replace("/mobile/condolence/apply")
|
||||
location.replace('/mobile/condolence/apply')
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail("申请失败")
|
||||
this.$toast.fail('申请失败');
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
@@ -425,20 +366,21 @@ layout("/mobile/platform.html"){
|
||||
})
|
||||
},
|
||||
async created() {
|
||||
this.formData.apply_time = moment().format("YYYY-MM-DD")
|
||||
this.formData.apply_time = moment().format('YYYY-MM-DD')
|
||||
this.formData.be_user = "${@shiro.getPrincipalProperty('id')}"
|
||||
//this.formData.be_user_name = "${@shiro.getPrincipalProperty('username')}" + "(" + "${@shiro.getPrincipalProperty('loginname')}" + ")"
|
||||
const { code, data } = await $.get("/platform/condolence/type/getAll")
|
||||
data.forEach((v) => {
|
||||
this.typeColumns.push({ value: v.id, text: v.name + "(" + v.code + ")" })
|
||||
const {code, data} = await $.get("/platform/condolence/type/getAll")
|
||||
data.forEach(v => {
|
||||
this.typeColumns.push({value: v.id, text: v.name + "(" + v.code + ")"})
|
||||
})
|
||||
for (let i in condolence.way) {
|
||||
this.wayColumns.push({ value: condolence.way[i], text: condolence.way[i] })
|
||||
this.wayColumns.push({value: condolence.way[i], text: condolence.way[i]})
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
|
||||
.up_down > .van-cell {
|
||||
flex-flow: column;
|
||||
}
|
||||
@@ -447,15 +389,14 @@ layout("/mobile/platform.html"){
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.van-cell,
|
||||
.van-picker button,
|
||||
.submit .van-button--normal {
|
||||
.van-cell, .van-picker button, .submit .van-button--normal {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
<!--#
|
||||
}
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style></style>
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="慰问申请信息" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问申请信息" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
|
||||
<div>
|
||||
<condolence-info :id.sync="id"></condolence-info>
|
||||
<div style="margin: 20px 20px 10px 20px">
|
||||
<van-button :color="themeColor" block @click="doEdit" class="ml10 mr10" v-if="state_id==2010||state_id==2020">
|
||||
撤 回
|
||||
<van-button :color="themeColor" block @click="doEdit" class="ml10 mr10"
|
||||
v-if="state_id==2010||state_id==2020">撤 回
|
||||
</van-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -18,7 +21,7 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -27,29 +30,30 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"condolence-info": httpVueLoader("/components/condolence/mobile/common.vue?v=" + new Date().getTime())
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
doEdit() {
|
||||
vant.Dialog.confirm({
|
||||
title: "标题",
|
||||
message: "确认要撤回吗?"
|
||||
title: '标题',
|
||||
message: '确认要撤回吗?',
|
||||
})
|
||||
.then(async () => {
|
||||
const resp = await $.post("/platform/fw/condolence/ucr/doEdit", { id: this.id })
|
||||
this.$toast.success("撤回成功")
|
||||
const resp = await $.post("/platform/fw/condolence/ucr/doEdit", {id: this.id});
|
||||
this.$toast.success('撤回成功');
|
||||
setTimeout(() => {
|
||||
history.back()
|
||||
}, 1000)
|
||||
})
|
||||
.catch(() => {
|
||||
// on cancel
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
this.state_id = GetQueryString("state_id")
|
||||
this.id = GetQueryString('id')
|
||||
this.state_id = GetQueryString('state_id')
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -3,10 +3,8 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.apply_btn {
|
||||
animation: come 0.5s;
|
||||
position: fixed;
|
||||
top: 20%;
|
||||
right: 0;
|
||||
animation: come .5s;
|
||||
position: fixed;top: 20%;right: 0
|
||||
}
|
||||
|
||||
@keyframes come {
|
||||
@@ -17,11 +15,12 @@ layout("/mobile/platform.html"){
|
||||
right: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<m-page-loading v-if="mLoading"></m-page-loading>
|
||||
<van-nav-bar title="慰问申请列表" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问申请列表" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
<van-dropdown-menu active-color="#1989fa">
|
||||
@@ -30,11 +29,14 @@ layout("/mobile/platform.html"){
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
<div style="margin: 60px auto 0 auto">
|
||||
<van-list v-model="loading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''" @load="pageData">
|
||||
<van-list v-model="loading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''"
|
||||
@load="pageData">
|
||||
<div v-for="o in tableData" class="list-card" @click="openInfo(o.id)">
|
||||
<van-cell-group inset>
|
||||
<van-cell :border="false" title="被慰问人">
|
||||
<span class="van-ellipsis" style="font-size: 16px" :style="{color:themeColor}">{{o.be_username}}</span>
|
||||
<span class="van-ellipsis" style="font-size: 16px;" :style="{color:themeColor}">
|
||||
{{o.be_username}}
|
||||
</span>
|
||||
</van-cell>
|
||||
<van-cell :border="false" title="申请时间">{{o.apply_time}}</van-cell>
|
||||
<van-cell :border="false" title="慰问类型">{{o.type_name}}</van-cell>
|
||||
@@ -47,61 +49,69 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
</van-list>
|
||||
|
||||
<!-- <van-button v-show="visible" class="apply_btn" @click.stop="openApply" plain hairline>-->
|
||||
<!-- <template #icon>-->
|
||||
<!-- <svg t="1634200664904" class="icon" viewBox="0 0 1024 1024" version="1.1"-->
|
||||
<!-- xmlns="http://www.w3.org/2000/svg" p-id="3163" width="32" height="32">-->
|
||||
<!-- <path d="M837.632 160.768c64 0 117.248 53.248 117.248 117.248v470.528c0 64-53.248 117.248-117.248 117.248H187.904c-64 2.048-117.248-50.688-117.248-114.688V278.016c0-64 53.248-117.248 117.248-117.248h649.728z m66.048 590.848V274.944c0-32.768-28.16-60.416-60.416-60.416H184.832c-32.768 0-60.416 28.16-60.416 60.416v479.232c0 32.768 28.16 60.416 60.416 60.416h657.92c32.768-2.56 60.928-28.16 60.928-62.976zM387.072 317.44"-->
|
||||
<!-- fill="#2E77ED" p-id="3164"></path>-->
|
||||
<!-- <path d="M326.144 709.632c-14.848 0-26.624-12.288-26.624-27.136V455.68c0-14.848 12.288-27.136 27.136-27.136S353.28 440.832 353.28 455.68v226.816c-0.512 15.36-12.288 27.136-27.136 27.136z"-->
|
||||
<!-- fill="#FFBB12" p-id="3165"></path>-->
|
||||
<!-- <path d="M569.856 442.368c0-14.848 12.288-26.624 27.136-26.624H757.76c14.848 0 27.136 12.288 27.136 27.136s-12.288 26.624-27.136 26.624h-160.768c-15.36 0-27.136-12.288-27.136-27.136zM569.856 682.496c0-14.848 12.288-26.624 27.136-26.624H757.76c14.848 0 27.136 12.288 27.136 27.136s-12.288 26.624-27.136 26.624h-160.768c-15.36 0-27.136-12.288-27.136-27.136zM569.856 553.472c0-14.848 12.288-26.624 27.136-26.624H757.76c14.848 0 27.136 12.288 27.136 27.136s-12.288 26.624-27.136 26.624h-160.768c-15.36 0-27.136-12.288-27.136-27.136z"-->
|
||||
<!-- fill="#2E77ED" p-id="3166"></path>-->
|
||||
<!-- <path d="M228.352 509.44c-10.24-10.752-10.24-27.648 0-37.888l78.336-78.336c10.752-10.752 27.648-10.752 37.888 0s10.24 27.648 0 37.888L266.24 509.44c-10.24 10.752-27.136 10.752-37.888 0z"-->
|
||||
<!-- fill="#FFBB12" p-id="3167"></path>-->
|
||||
<!-- <path d="M306.688 393.216c10.752-10.24 27.648-10.24 37.888 0l78.336 78.336c10.752 10.752 10.752 27.648 0 37.888s-27.648 10.24-37.888 0L306.688 431.104c-10.24-10.752-10.24-27.648 0-37.888z"-->
|
||||
<!-- fill="#FFBB12" p-id="3168"></path>-->
|
||||
<!-- </svg>-->
|
||||
<!-- </template>-->
|
||||
<!-- 申请-->
|
||||
<!-- </van-button>-->
|
||||
|
||||
<!-- <van-button v-show="visible" class="apply_btn" @click.stop="openApply" plain hairline>-->
|
||||
<!-- <template #icon>-->
|
||||
<!-- <svg t="1634200664904" class="icon" viewBox="0 0 1024 1024" version="1.1"-->
|
||||
<!-- xmlns="http://www.w3.org/2000/svg" p-id="3163" width="32" height="32">-->
|
||||
<!-- <path d="M837.632 160.768c64 0 117.248 53.248 117.248 117.248v470.528c0 64-53.248 117.248-117.248 117.248H187.904c-64 2.048-117.248-50.688-117.248-114.688V278.016c0-64 53.248-117.248 117.248-117.248h649.728z m66.048 590.848V274.944c0-32.768-28.16-60.416-60.416-60.416H184.832c-32.768 0-60.416 28.16-60.416 60.416v479.232c0 32.768 28.16 60.416 60.416 60.416h657.92c32.768-2.56 60.928-28.16 60.928-62.976zM387.072 317.44"-->
|
||||
<!-- fill="#2E77ED" p-id="3164"></path>-->
|
||||
<!-- <path d="M326.144 709.632c-14.848 0-26.624-12.288-26.624-27.136V455.68c0-14.848 12.288-27.136 27.136-27.136S353.28 440.832 353.28 455.68v226.816c-0.512 15.36-12.288 27.136-27.136 27.136z"-->
|
||||
<!-- fill="#FFBB12" p-id="3165"></path>-->
|
||||
<!-- <path d="M569.856 442.368c0-14.848 12.288-26.624 27.136-26.624H757.76c14.848 0 27.136 12.288 27.136 27.136s-12.288 26.624-27.136 26.624h-160.768c-15.36 0-27.136-12.288-27.136-27.136zM569.856 682.496c0-14.848 12.288-26.624 27.136-26.624H757.76c14.848 0 27.136 12.288 27.136 27.136s-12.288 26.624-27.136 26.624h-160.768c-15.36 0-27.136-12.288-27.136-27.136zM569.856 553.472c0-14.848 12.288-26.624 27.136-26.624H757.76c14.848 0 27.136 12.288 27.136 27.136s-12.288 26.624-27.136 26.624h-160.768c-15.36 0-27.136-12.288-27.136-27.136z"-->
|
||||
<!-- fill="#2E77ED" p-id="3166"></path>-->
|
||||
<!-- <path d="M228.352 509.44c-10.24-10.752-10.24-27.648 0-37.888l78.336-78.336c10.752-10.752 27.648-10.752 37.888 0s10.24 27.648 0 37.888L266.24 509.44c-10.24 10.752-27.136 10.752-37.888 0z"-->
|
||||
<!-- fill="#FFBB12" p-id="3167"></path>-->
|
||||
<!-- <path d="M306.688 393.216c10.752-10.24 27.648-10.24 37.888 0l78.336 78.336c10.752 10.752 10.752 27.648 0 37.888s-27.648 10.24-37.888 0L306.688 431.104c-10.24-10.752-10.24-27.648 0-37.888z"-->
|
||||
<!-- fill="#FFBB12" p-id="3168"></path>-->
|
||||
<!-- </svg>-->
|
||||
<!-- </template>-->
|
||||
<!-- 申请-->
|
||||
<!-- </van-button>-->
|
||||
</div>
|
||||
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image" image="/none.svg" description="暂无数据"></van-empty>
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image"
|
||||
image="/none.svg"
|
||||
description="暂无数据">
|
||||
</van-empty>
|
||||
|
||||
<div>
|
||||
<van-tabbar v-model="tarBarActive">
|
||||
<van-tabbar-item icon="home-o" replace url="/mobile/condolence/apply/for">慰问申请</van-tabbar-item>
|
||||
<van-tabbar-item icon="manager-o" replace url="/mobile/condolence/apply">慰问记录</van-tabbar-item>
|
||||
<van-tabbar-item icon="home-o" replace url="/mobile/condolence/apply/for">慰问申请
|
||||
</van-tabbar-item>
|
||||
<van-tabbar-item icon="manager-o" replace url="/mobile/condolence/apply">慰问记录
|
||||
</van-tabbar-item>
|
||||
</van-tabbar>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
tarBarActive: 1,
|
||||
visible: true,
|
||||
typeOption: [{ value: null, text: "全部" }],
|
||||
typeOption: [
|
||||
{value: null, text: '全部'}
|
||||
],
|
||||
yearOption: [],
|
||||
pageForm: {
|
||||
year: "",
|
||||
type: ""
|
||||
year: '',
|
||||
type: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue")
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
openApply() {
|
||||
window.location.href = "/mobile/condolence/apply/for"
|
||||
window.location.href = '/mobile/condolence/apply/for'
|
||||
},
|
||||
openInfo(id) {
|
||||
window.location.href = "/mobile/condolence/apply/info?id=" + id
|
||||
window.location.href = '/mobile/condolence/apply/info?id=' + id
|
||||
},
|
||||
yearChange(val) {
|
||||
this.pageForm.year = val
|
||||
@@ -114,12 +124,13 @@ layout("/mobile/platform.html"){
|
||||
listenTouch() {
|
||||
this.$nextTick(() => {
|
||||
const app = document.querySelector("#app")
|
||||
app.addEventListener("touchstart", () => {
|
||||
app.addEventListener('touchstart', () => {
|
||||
this.visible = false
|
||||
})
|
||||
app.addEventListener("touchend", () => {
|
||||
app.addEventListener('touchend', () => {
|
||||
this.visible = true
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -129,11 +140,11 @@ layout("/mobile/platform.html"){
|
||||
async created() {
|
||||
this.mLoading = true
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearOption.unshift({ value: i, text: i + "年" })
|
||||
this.yearOption.unshift({value: i, text: i + '年'},)
|
||||
}
|
||||
const { code, data } = await $.get("/platform/condolence/type/getAll")
|
||||
data.forEach((v) => {
|
||||
this.typeOption.push({ value: v.id, text: v.name + v.code })
|
||||
const {code, data} = await $.get("/platform/condolence/type/getAll")
|
||||
data.forEach(v => {
|
||||
this.typeOption.push({value: v.id, text: v.name + v.code})
|
||||
})
|
||||
this.$set(this.pageForm, "year", this.yearOption[0].value)
|
||||
this.$set(this.pageForm, "type", this.typeOption[0].value)
|
||||
|
||||
@@ -3,25 +3,38 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<m-page-loading v-if="mLoading"></m-page-loading>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed
|
||||
@click-left="history.go(-1)"></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
<van-dropdown-menu :active-color="themeColor">
|
||||
<van-dropdown-item v-model="pageForm.year" @change="yearChange" :options="yearList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.isAudit" @change="yearChange" :options="auditList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.type" @change="yearChange" :options="mCondolence.typeList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unionId" @change="yearChange" :options="mCommon.unionList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unitId" @change="yearChange" :options="mCommon.unitList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.year" @change="yearChange"
|
||||
:options="yearList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.isAudit" @change="yearChange"
|
||||
:options="auditList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.type" @change="yearChange"
|
||||
:options="mCondolence.typeList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unionId" @change="yearChange"
|
||||
:options="mCommon.unionList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unitId" @change="yearChange"
|
||||
:options="mCommon.unitList"></van-dropdown-item>
|
||||
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
|
||||
<div style="margin: 70px auto 0">
|
||||
<van-list v-model="mLoading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''" @load="pageData">
|
||||
<van-list v-model="mLoading" :finished="finished"
|
||||
:finished-text="tableData.length>0?'没有更多了':''"
|
||||
@load="pageData">
|
||||
<div v-for="o in tableData" class="list-card" @click="openView(o)">
|
||||
<van-cell-group inset>
|
||||
<van-cell :border="false" title="被慰问人">
|
||||
<span class="van-ellipsis" style="font-size: 16px" :style="{color:themeColor}">{{o.be_username}}</span>
|
||||
<span class="van-ellipsis" style="font-size: 16px;"
|
||||
:style="{color:themeColor}">
|
||||
{{o.be_username}}
|
||||
</span>
|
||||
</van-cell>
|
||||
<van-cell :border="false" title="申 请 人">{{o.sqr_username}}</van-cell>
|
||||
<van-cell :border="false" title="所在单位">{{o.be_unitname}}</van-cell>
|
||||
@@ -36,13 +49,18 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
</van-list>
|
||||
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image" image="/none.svg" description="暂无数据"></van-empty>
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image"
|
||||
image="/none.svg"
|
||||
description="暂无数据">
|
||||
</van-empty>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -50,30 +68,30 @@ layout("/mobile/platform.html"){
|
||||
unionList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{ text: "未审核", value: false },
|
||||
{ text: "已审核", value: true }
|
||||
{text: '未审核', value: false},
|
||||
{text: '已审核', value: true},
|
||||
],
|
||||
handle: true,
|
||||
pageForm: {
|
||||
year: new Date().getFullYear(),
|
||||
isAudit: false
|
||||
}
|
||||
isAudit: false,
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openView(o) {
|
||||
window.location.href = "/mobile/condolence/audit/auditHtml?state_id=" + o.state_id + "&id=" + o.id
|
||||
window.location.href = '/mobile/condolence/audit/auditHtml?state_id=' + o.state_id + '&id=' + o.id
|
||||
},
|
||||
yearChange() {
|
||||
this.tableData = []
|
||||
this.refreshing = true
|
||||
this.finished = false
|
||||
this.refreshing = true;
|
||||
this.finished = false;
|
||||
this.pageForm.pageNumber = 0
|
||||
this.flushUnits()
|
||||
},
|
||||
pageData() {
|
||||
this.mLoading = true
|
||||
$.get(loc() + "/pageData", this.pageForm, (res) => {
|
||||
$.get(loc() + '/pageData', this.pageForm, (res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = this.tableData.concat(res.data.list)
|
||||
if (this.tableData.length === res.data.totalCount) {
|
||||
@@ -84,10 +102,11 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
})
|
||||
this.mLoading = false
|
||||
|
||||
},
|
||||
async flushUnits() {
|
||||
//this.$set(this.pageForm, "unitId", "")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === "true") {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
|
||||
await mCommon.getUnitList(this.pageForm.unionId)
|
||||
} else {
|
||||
await mCommon.getUnitList("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
@@ -96,7 +115,7 @@ layout("/mobile/platform.html"){
|
||||
async init() {
|
||||
let nowYear = new Date().getFullYear()
|
||||
for (let i = nowYear; i >= nowYear - 9; i--) {
|
||||
this.yearList.push({ text: i, value: i })
|
||||
this.yearList.push({text: i, value: i})
|
||||
}
|
||||
await mCondolence.getType()
|
||||
await mCommon.getUnionList()
|
||||
@@ -114,12 +133,12 @@ layout("/mobile/platform.html"){
|
||||
async created() {
|
||||
this.init()
|
||||
this.flushUnits()
|
||||
if (GetQueryString("audit") === "1") {
|
||||
if (GetQueryString("audit") === '1') {
|
||||
this.pageForm.isAudit = true
|
||||
}
|
||||
}
|
||||
})
|
||||
window.addEventListener("pageshow", (e) => {
|
||||
window.addEventListener('pageshow', e => {
|
||||
if (e.persisted || (window.performance && window.performance.navigation.type === 2)) {
|
||||
vue.init()
|
||||
vue.yearChange()
|
||||
@@ -127,6 +146,7 @@ layout("/mobile/platform.html"){
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -0,0 +1,369 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.title_color {
|
||||
color: #000000;
|
||||
}
|
||||
.content_color {
|
||||
color: grey;
|
||||
}
|
||||
.van-doc-card {
|
||||
margin: 8px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="日常慰问分工会审核" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></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="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="auditList" @change="doSearch" v-model="pageForm.isAudit"></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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.sqr_username + '(' + item.sqr_loginname + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24">
|
||||
<span class="title_color">慰问对象:</span>
|
||||
<span class="content_color">{{item.be_username}}</span>
|
||||
</van-col>
|
||||
<van-col span="24"><span class="title_color">对象工号:</span>
|
||||
<span class="content_color">
|
||||
{{item.be_loginname}}
|
||||
</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span class="title_color">所属工会:</span>
|
||||
<span class="content_color">
|
||||
{{item.be_unionname}}
|
||||
</span>
|
||||
</van-col>
|
||||
<van-col span="24"><span class="title_color">工作单位:</span>
|
||||
<span class="content_color">{{item.be_unitname}}</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span class="title_color">慰问类型:</span>
|
||||
<span class="content_color">{{item.type_name}}</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span class="title_color">当前状态:</span>
|
||||
<span class="content_color">{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" type="primary"
|
||||
v-if="item.state_id === 2000"
|
||||
@click="openApproval(item)"
|
||||
style="margin-right: 4px">审核
|
||||
</van-button>
|
||||
<!--<van-button size="small" type="danger"
|
||||
v-if="[2014,2015,2020].includes(item.state_id)"
|
||||
@click="openRevoke(item.id)"
|
||||
style="margin-right: 4px">撤回
|
||||
</van-button>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" 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>
|
||||
<div style="height: calc(100% - 44px);overflow-y: auto">
|
||||
<condolence-info ref="info"></condolence-info>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{ '分工会审核' }}</div>
|
||||
<van-form>
|
||||
<van-field label="审核人员" readonly name="username" v-model="formData.username" required></van-field>
|
||||
<van-field label="审核时间" readonly name="time" v-model="formData.time" required></van-field>
|
||||
<van-field label="审核意见" name="opinion" v-model="formData.opinion" placeholder="请输入审核意见" required></van-field>
|
||||
<van-field label="审核签字" name="sign" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">审核签字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" v-model="formData.sign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click.submit="doApproval(1)">拒绝</van-button>
|
||||
<van-button type="danger" block @click.submit="doApproval(2)">退回</van-button>
|
||||
<van-button type="primary" block @click.submit="doApproval(3)">通过</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{text: '未审核', value: false},
|
||||
{text: '已审核', value: true},
|
||||
],
|
||||
handle: true,
|
||||
pageForm: {
|
||||
year: new Date().getFullYear(),
|
||||
isAudit: false
|
||||
},
|
||||
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
infoShow: false,
|
||||
showApprovalForm: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(item.id)
|
||||
})
|
||||
},
|
||||
openApproval(item) {
|
||||
this.formData.id = item.id
|
||||
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||
this.formData.time = moment().format('YYYY-MM-DD')
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(item.id)
|
||||
})
|
||||
},
|
||||
openRevoke(id) {
|
||||
this.$dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确定要撤回该申请吗?'
|
||||
}).then(() => {
|
||||
$.post('/platform/fw/condolence/ucr/doEdit', { id }).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async doApproval(flag) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail('请填写审核意见')
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
|
||||
if (this.formData.sign === undefined || this.$refs.signature.checkNull()) {
|
||||
this.$toast.fail('请签名')
|
||||
return
|
||||
}
|
||||
await this.$refs.signature.updateSign()
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/fw/condolence/ucr/doReview', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.infoShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/fw/condolence/ucr/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -3,34 +3,37 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
|
||||
|
||||
<condolence-info ref="info" :id.sync="id" title="校工会审核" :handle="handle">
|
||||
<template #handle>
|
||||
<div class="van-cell-group__title mt20">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">校工会审核</div>
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
校工会审核
|
||||
</div>
|
||||
</div>
|
||||
<van-form>
|
||||
<van-field
|
||||
readonly
|
||||
left-icon="contact"
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
|
||||
<van-field readonly left-icon="contact"
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
></van-field>
|
||||
|
||||
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o" readonly></van-field>
|
||||
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o"
|
||||
readonly></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.opinion"
|
||||
left-icon="chat-o"
|
||||
rows="1"
|
||||
required
|
||||
:rules="[{ required:true, message: '请输入审核意见' }]"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
<van-field v-model="formData.opinion"
|
||||
left-icon="chat-o"
|
||||
rows="1"
|
||||
required
|
||||
:rules="[{ required:true, message: '请输入审核意见' }]"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
@@ -42,76 +45,88 @@ layout("/mobile/platform.html"){
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px; padding: 0 25px">
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝</van-button>
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
|
||||
</van-button>
|
||||
</van-col>
|
||||
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(2)">返回修改</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(2)">返回修改
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过
|
||||
</van-button>
|
||||
</van-col>
|
||||
</van-row>
|
||||
|
||||
</van-form>
|
||||
</template>
|
||||
</condolence-info>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
handle: true,
|
||||
id: "",
|
||||
formData: {}
|
||||
formData: {},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue"),
|
||||
"condolence-info": httpVueLoader("/components/condolence/mobile/common.vue?v=" + new Date().getTime())
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
async doAudit(pass) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail("请填写审核意见")
|
||||
this.$toast.fail('请填写审核意见');
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
if (this.$refs.signature.checkNull()) {
|
||||
vant.Toast("请签名!")
|
||||
vant.Toast('请签名!')
|
||||
return
|
||||
}
|
||||
await this.$refs.signature.updateSign()
|
||||
this.formData.pass = pass
|
||||
const resp = await $.post("/platform/fw/condolence/fr/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success("审核成功")
|
||||
this.$toast.success('审核成功')
|
||||
setTimeout(() => {
|
||||
window.history.back()
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail("审核失败")
|
||||
this.$toast.fail('审核失败');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
const { data } = await $.get("/platform/fw/condolence/findOne", { id: this.id })
|
||||
const {data} = await $.get("/platform/fw/condolence/findOne", {id: this.id})
|
||||
this.formData = {
|
||||
id: this.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
time: moment().format("YYYY-MM-DD"),
|
||||
time: moment().format('YYYY-MM-DD'),
|
||||
opinion: null,
|
||||
sign: ""
|
||||
sign: "",
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -3,53 +3,54 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
|
||||
|
||||
<condolence-info ref="info" :id.sync="id" title="校工会主席审核" :handle="handle">
|
||||
<template #handle>
|
||||
<div class="van-cell-group__title mt10">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">校工会主席审核</div>
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
校工会主席审核
|
||||
</div>
|
||||
</div>
|
||||
<van-form>
|
||||
<van-field
|
||||
readonly
|
||||
left-icon="contact"
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
|
||||
<van-field readonly
|
||||
left-icon="contact"
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
></van-field>
|
||||
|
||||
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o" readonly></van-field>
|
||||
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o"
|
||||
readonly></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.money"
|
||||
label="慰问金额"
|
||||
type="number"
|
||||
left-icon="balance-list-o"
|
||||
required
|
||||
:rules="[{ required:true, message: '请输入慰问金额' }]"
|
||||
<van-field v-model="formData.money" label="慰问金额" type="number"
|
||||
left-icon="balance-list-o"
|
||||
required :rules="[{ required:true, message: '请输入慰问金额' }]"
|
||||
></van-field>
|
||||
|
||||
<van-field v-model="auditType" label="审核类型" left-icon="clock-o" @click="typePicker = true" required readonly></van-field>
|
||||
<van-field v-model="auditType" label="审核类型" left-icon="clock-o"
|
||||
@click="typePicker = true" required readonly></van-field>
|
||||
|
||||
<van-popup v-model="typePicker" position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="['审核通过','审核通过(线下提交资料)', '审核拒绝']"
|
||||
@confirm="typeChange"
|
||||
@cancel="typePicker = false"
|
||||
show-toolbar
|
||||
:columns="['审核通过','审核通过(线下提交资料)', '审核拒绝']"
|
||||
@confirm="typeChange"
|
||||
@cancel="typePicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
v-model="formData.opinion"
|
||||
rows="1"
|
||||
required
|
||||
left-icon="chat-o"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
<van-field v-model="formData.opinion"
|
||||
rows="1"
|
||||
required
|
||||
left-icon="chat-o"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
@@ -61,91 +62,102 @@ layout("/mobile/platform.html"){
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px; padding: 0 25px">
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝</van-button>
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button color="red" block plain @click="doAudit(2)">返回修改</van-button>
|
||||
<van-button color="red" block plain @click="doAudit(2)">返回修改
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过
|
||||
</van-button>
|
||||
</van-col>
|
||||
</van-row>
|
||||
|
||||
</van-form>
|
||||
</template>
|
||||
</condolence-info>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
typePicker: false,
|
||||
auditType: "审核通过",
|
||||
auditType: '审核通过',
|
||||
handle: true,
|
||||
id: "",
|
||||
formData: {}
|
||||
formData: {},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue"),
|
||||
"condolence-info": httpVueLoader("/components/condolence/mobile/common.vue?v=" + new Date().getTime())
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
|
||||
},
|
||||
methods: {
|
||||
typeChange(value, index) {
|
||||
if (value === "审核通过") {
|
||||
this.formData.opinion = "情况属实,同意申请。"
|
||||
} else if (value === "审核通过(线下提交资料)") {
|
||||
this.$set(this.formData, "opinion", "请将纸质发票经办人、分工会主席签字后交至行政楼A426办公室。")
|
||||
if(value === '审核通过') {
|
||||
this.formData.opinion = '情况属实,同意申请。'
|
||||
} else if (value === '审核通过(线下提交资料)') {
|
||||
this.$set(this.formData, 'opinion', '请将纸质发票经办人、分工会主席签字后交至行政楼A426办公室。')
|
||||
} else {
|
||||
this.formData.opinion = ""
|
||||
this.formData.opinion = ''
|
||||
}
|
||||
this.typePicker = false
|
||||
},
|
||||
async doAudit(pass) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail("请填写审核意见")
|
||||
this.$toast.fail('请填写审核意见');
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
if (pass === 3 && this.$refs.signature.checkNull()) {
|
||||
vant.Toast("请签名!")
|
||||
vant.Toast('请签名!')
|
||||
return
|
||||
}
|
||||
await this.$refs.signature.updateSign()
|
||||
this.formData.pass = pass
|
||||
if (this.auditType === "审核通过(线下提交资料)") {
|
||||
if(this.auditType === '审核通过(线下提交资料)') {
|
||||
pass = 4
|
||||
}
|
||||
const resp = await $.post("/platform/fw/condolence/vcr/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success("审核成功")
|
||||
this.$toast.success('审核成功');
|
||||
setTimeout(() => {
|
||||
history.back()
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail("审核失败")
|
||||
this.$toast.fail('审核失败');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
const { data } = await $.get("/platform/fw/condolence/findOne", { id: this.id })
|
||||
const {data} = await $.get("/platform/fw/condolence/findOne", {id: this.id})
|
||||
this.formData = {
|
||||
id: this.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
time: moment().format("YYYY-MM-DD"),
|
||||
opinion: "情况属实,同意申请。",
|
||||
time: moment().format('YYYY-MM-DD'),
|
||||
opinion: '情况属实,同意申请。',
|
||||
sign: "",
|
||||
money: data.money
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -0,0 +1,382 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.title_color {
|
||||
color: #000000;
|
||||
}
|
||||
.content_color {
|
||||
color: grey;
|
||||
}
|
||||
.van-doc-card {
|
||||
margin: 8px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="日常慰问校工会主席审核" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></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="unionList" @change="doSearch();flushUnits(pageForm.unionId)" v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="auditList" @change="doSearch" v-model="pageForm.isAudit"></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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.sqr_username + '(' + item.sqr_loginname + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24">
|
||||
<span class="title_color">慰问对象:</span>
|
||||
<span class="content_color">{{item.be_username}}</span>
|
||||
</van-col>
|
||||
<van-col span="24"><span class="title_color">对象工号:</span>
|
||||
<span class="content_color">
|
||||
{{item.be_loginname}}
|
||||
</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span class="title_color">所属工会:</span>
|
||||
<span class="content_color">
|
||||
{{item.be_unionname}}
|
||||
</span>
|
||||
</van-col>
|
||||
<van-col span="24"><span class="title_color">工作单位:</span>
|
||||
<span class="content_color">{{item.be_unitname}}</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span class="title_color">慰问类型:</span>
|
||||
<span class="content_color">{{item.type_name}}</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span class="title_color">当前状态:</span>
|
||||
<span class="content_color">{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" type="primary"
|
||||
v-if="item.state_id === 2020"
|
||||
@click="openApproval(item)"
|
||||
style="margin-right: 4px">审核
|
||||
</van-button>
|
||||
<!--<van-button size="small" type="danger"
|
||||
v-if="[2014,2015,2020].includes(item.state_id)"
|
||||
@click="openRevoke(item.id)"
|
||||
style="margin-right: 4px">撤回
|
||||
</van-button>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" 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>
|
||||
<div style="height: calc(100% - 44px);overflow-y: auto">
|
||||
<condolence-info ref="info"></condolence-info>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{ '校工会主席' }}</div>
|
||||
<van-form>
|
||||
<van-field label="审核人员" readonly name="username" v-model="formData.username" required></van-field>
|
||||
<van-field label="审核时间" readonly name="time" v-model="formData.time" required></van-field>
|
||||
<van-field label="审核意见" name="opinion" v-model="formData.opinion" placeholder="请输入审核意见" required></van-field>
|
||||
<van-field label="审核签字" name="sign" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">审核签字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" v-model="formData.sign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click.submit="doApproval(1)">拒绝</van-button>
|
||||
<van-button type="danger" block @click.submit="doApproval(2)">退回</van-button>
|
||||
<van-button type="primary" block @click.submit="doApproval(3)">通过</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{text: '未审核', value: false},
|
||||
{text: '已审核', value: true},
|
||||
],
|
||||
handle: true,
|
||||
pageForm: {
|
||||
year: new Date().getFullYear(),
|
||||
isAudit: false
|
||||
},
|
||||
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
infoShow: false,
|
||||
showApprovalForm: false,
|
||||
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(item.id)
|
||||
})
|
||||
},
|
||||
openApproval(item) {
|
||||
this.formData.id = item.id
|
||||
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||
this.formData.time = moment().format('YYYY-MM-DD')
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(item.id)
|
||||
})
|
||||
},
|
||||
openRevoke(id) {
|
||||
this.$dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确定要撤回该申请吗?'
|
||||
}).then(() => {
|
||||
$.post('/platform/fw/condolence/vcr/doEdit', { id }).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async doApproval(flag) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail('请填写审核意见')
|
||||
return
|
||||
}
|
||||
if (this.formData.sign === undefined || !this.formData.sign) {
|
||||
this.$toast.fail('请签名')
|
||||
return
|
||||
}
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/fw/condolence/vcr/doReview', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.infoShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/fw/condolence/vcr/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async initUnion(unionId) {
|
||||
this.unionList = await getUnions(unionId)
|
||||
this.unionList.forEach(v => {
|
||||
v.text = v.unionname
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.initUnion()
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.initUnion("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,421 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.title_color {
|
||||
color: #000000;
|
||||
}
|
||||
.content_color {
|
||||
color: grey;
|
||||
}
|
||||
.van-doc-card {
|
||||
margin: 8px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="日常慰问校工会审核" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></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="unionList" @change="doSearch();flushUnits(pageForm.unionId)" v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="auditList" @change="doSearch" v-model="pageForm.isAudit"></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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.sqr_username + '(' + item.sqr_loginname + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24">
|
||||
<span class="title_color">慰问对象:</span>
|
||||
<span class="content_color">{{item.be_username}}</span>
|
||||
</van-col>
|
||||
<van-col span="24"><span class="title_color">对象工号:</span>
|
||||
<span class="content_color">
|
||||
{{item.be_loginname}}
|
||||
</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span class="title_color">所属工会:</span>
|
||||
<span class="content_color">
|
||||
{{item.be_unionname}}
|
||||
</span>
|
||||
</van-col>
|
||||
<van-col span="24"><span class="title_color">工作单位:</span>
|
||||
<span class="content_color">{{item.be_unitname}}</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span class="title_color">慰问类型:</span>
|
||||
<span class="content_color">{{item.type_name}}</span>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span class="title_color">当前状态:</span>
|
||||
<span class="content_color">{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" type="primary"
|
||||
v-if="[2012, 2031].includes(item.state_id)"
|
||||
@click="openApproval(item)"
|
||||
style="margin-right: 4px">审核
|
||||
</van-button>
|
||||
<!--<van-button size="small" type="danger"
|
||||
v-if="[2014,2015,2020].includes(item.state_id)"
|
||||
@click="openRevoke(item.id)"
|
||||
style="margin-right: 4px">撤回
|
||||
</van-button>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" 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>
|
||||
<div style="height: calc(100% - 44px);overflow-y: auto">
|
||||
<condolence-info ref="info"></condolence-info>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{ '校工会审核' }}</div>
|
||||
<van-form>
|
||||
<van-field label="审核人员" readonly name="username" v-model="formData.username" required></van-field>
|
||||
<van-field label="审核时间" readonly name="time" v-model="formData.time" required></van-field>
|
||||
<van-field label="审核类型" readonly name="auditType"
|
||||
@click="showTypePicker = true"
|
||||
placeholder="请选择审核类型"
|
||||
v-model="formData.auditTypeName" required></van-field>
|
||||
<van-popup v-model:show="showTypePicker" position="bottom" round>
|
||||
<van-picker show-toolbar :columns="typeColumns" @confirm="onTypeConfirm"
|
||||
@cancel="showTypePicker = false">
|
||||
</van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field label="慰问金额" type="number" name="money" v-model="formData.money" placeholder="请输入慰问金额" required></van-field>
|
||||
<van-field label="审核意见" name="opinion" v-model="formData.opinion" placeholder="请输入审核意见" required></van-field>
|
||||
<van-field label="审核签字" name="sign" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">审核签字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" v-model="formData.sign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click.submit="doApproval(1)">拒绝</van-button>
|
||||
<van-button type="danger" block @click.submit="doApproval(2)">退回</van-button>
|
||||
<van-button type="primary" block @click.submit="doApproval(3)">通过</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{text: '未审核', value: false},
|
||||
{text: '已审核', value: true},
|
||||
],
|
||||
handle: true,
|
||||
pageForm: {
|
||||
year: new Date().getFullYear(),
|
||||
isAudit: false
|
||||
},
|
||||
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
infoShow: false,
|
||||
showApprovalForm: false,
|
||||
|
||||
showTypePicker: false,
|
||||
typeColumns: [
|
||||
{value: '1', text: '审核通过'},
|
||||
{value: '2', text: '审核通过(线下提交资料)'},
|
||||
{value: '3', text: '审核拒绝'},
|
||||
{value: '4', text: '退回重填'},
|
||||
]
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
onTypeConfirm(val) {
|
||||
if (val.value === '1') {
|
||||
this.$set(this.formData, 'opinion', '情况属实,同意申请。')
|
||||
} else if (val.value === '2') {
|
||||
this.$set(this.formData, 'opinion', '请将分工会主席和经办人签字后的发票、公务卡支付记录(未使用公务卡,请提交支付记录和公务卡结算审批表)一起交至行政楼A426办公室。')
|
||||
} else {
|
||||
this.$set(this.formData, 'opinion', '')
|
||||
this.$set(this.formData, 'money', 0)
|
||||
}
|
||||
this.$set(this.formData, 'auditType', val.value)
|
||||
this.$set(this.formData, 'auditTypeName', val.text)
|
||||
this.showTypePicker = false
|
||||
},
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(item.id)
|
||||
})
|
||||
},
|
||||
openApproval(item) {
|
||||
this.formData.id = item.id
|
||||
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||
this.formData.time = moment().format('YYYY-MM-DD')
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(item.id)
|
||||
})
|
||||
},
|
||||
openRevoke(id) {
|
||||
this.$dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确定要撤回该申请吗?'
|
||||
}).then(() => {
|
||||
$.post('/platform/fw/condolence/fr/doEdit', { id }).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async doApproval(flag) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail('请填写审核意见')
|
||||
return
|
||||
}
|
||||
if (this.formData.sign === undefined || !this.formData.sign) {
|
||||
this.$toast.fail('请签名')
|
||||
return
|
||||
}
|
||||
if (!this.formData.money) {
|
||||
this.$toast.fail('请填写慰问金额')
|
||||
return
|
||||
}
|
||||
if (!this.formData.auditType) {
|
||||
this.$toast.fail('请选择审核类型')
|
||||
return
|
||||
}
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/fw/condolence/fr/doReview', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.infoShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/fw/condolence/fr/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async initUnion(unionId) {
|
||||
this.unionList = await getUnions(unionId)
|
||||
this.unionList.forEach(v => {
|
||||
v.text = v.unionname
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.initUnion()
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.initUnion("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -3,33 +3,37 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
|
||||
|
||||
<condolence-info ref="info" :id.sync="id" title="分工会审核" :handle="handle">
|
||||
<template #handle>
|
||||
<div class="van-cell-group__title mt10">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">分工会审核</div>
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
分工会审核
|
||||
</div>
|
||||
</div>
|
||||
<van-form>
|
||||
<van-field
|
||||
readonly
|
||||
left-icon="contact"
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
readonly
|
||||
left-icon="contact"
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
></van-field>
|
||||
|
||||
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o" readonly></van-field>
|
||||
<van-field v-model="formData.time" label="审核时间" left-icon="clock-o"
|
||||
readonly></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.opinion"
|
||||
left-icon="chat-o"
|
||||
required
|
||||
rows="1"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
<van-field v-model="formData.opinion"
|
||||
left-icon="chat-o"
|
||||
required
|
||||
rows="1"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
@@ -41,75 +45,86 @@ layout("/mobile/platform.html"){
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px; padding: 0 25px">
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝</van-button>
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button color="red" block @click="doAudit(2)">返回修改</van-button>
|
||||
<van-button color="red" block @click="doAudit(2)">返回修改
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过
|
||||
</van-button>
|
||||
</van-col>
|
||||
</van-row>
|
||||
|
||||
</van-form>
|
||||
</template>
|
||||
</condolence-info>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
handle: true,
|
||||
id: "",
|
||||
formData: {}
|
||||
formData: {},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue"),
|
||||
"condolence-info": httpVueLoader("/components/condolence/mobile/common.vue?v=" + new Date().getTime())
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'condolence-info': httpVueLoader('/components/condolence/mobile/common.vue?v=' + new Date().getTime()),
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
async doAudit(pass) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail("请填写审核意见")
|
||||
this.$toast.fail('请填写审核意见');
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
|
||||
if (this.$refs.signature.checkNull()) {
|
||||
vant.Toast("请签名!")
|
||||
return
|
||||
}
|
||||
if (this.$refs.signature.checkNull()) {
|
||||
vant.Toast('请签名!')
|
||||
return
|
||||
}
|
||||
await this.$refs.signature.updateSign()
|
||||
this.formData.pass = pass
|
||||
const resp = await $.post("/platform/fw/condolence/ucr/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success("审核成功")
|
||||
this.$toast.success('审核成功');
|
||||
setTimeout(() => {
|
||||
history.back()
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail("审核失败")
|
||||
this.$toast.fail('审核失败');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
this.formData = {
|
||||
id: this.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
time: moment().format("YYYY-MM-DD"),
|
||||
time: moment().format('YYYY-MM-DD'),
|
||||
opinion: null,
|
||||
sign: ""
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -2,296 +2,364 @@
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.family-list-field .van-field__value .van-field__control {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.family-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.family-list-cell .van-cell__label {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.family-dialog .van-dialog__content {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="困难补助申请" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-form ref="addForm" :show-error-message="false" input-align="right" style="margin-bottom: 60px">
|
||||
<van-cell-group inset class="mt10">
|
||||
|
||||
<van-form @submit="onSubmit" :show-error-message="false">
|
||||
<van-cell inset>
|
||||
<van-field
|
||||
readonly
|
||||
value="${@shiro.getPrincipalProperty('username')} ( ${@shiro.getPrincipalProperty('loginname')} )"
|
||||
name="sqrname"
|
||||
label="申请人"
|
||||
v-model="formData.userName"
|
||||
label="申请人姓名"
|
||||
readonly
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写申请人姓名' }]"
|
||||
></van-field>
|
||||
|
||||
<van-field name="apply_mode" label="申请模式">
|
||||
<template #input>
|
||||
<van-radio-group v-model="formData.apply_mode" direction="horizontal" @change="applyModeChange">
|
||||
<van-radio :name="1">本人申请</van-radio>
|
||||
<van-radio :name="2">替他人申请</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-field
|
||||
@input="userRemoteMethod"
|
||||
name="bbzrusername"
|
||||
v-model="formData.bbzrusername"
|
||||
label="受补助人"
|
||||
placeholder="请输入受补助人姓名"
|
||||
:rules="[{ required: true, message: '请填写受补助人姓名' }]"
|
||||
v-model="formData.loginName"
|
||||
label="申请人工号"
|
||||
readonly
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写申请人工号' }]"
|
||||
></van-field>
|
||||
|
||||
<van-action-sheet
|
||||
v-model="sheetShow"
|
||||
:actions="userList"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
@cancel="userList = []"
|
||||
:close-on-click-overlay="false"
|
||||
@select="onUserSelect"
|
||||
></van-action-sheet>
|
||||
<van-field label="身份证号" v-model="formData.idcard"></van-field>
|
||||
|
||||
<van-field label="性别" v-model="formData.sex"></van-field>
|
||||
|
||||
<van-field label="职称" v-model="formData.zc"></van-field>
|
||||
<van-field label="职务" v-model="formData.zw"></van-field>
|
||||
|
||||
<van-field label="单位" v-model="formData.unitname"></van-field>
|
||||
|
||||
<van-field label="出生日期" v-model="formData.birthday"></van-field>
|
||||
|
||||
<van-field label="手机号码" v-model="formData.lxfs" type="tel"></van-field>
|
||||
|
||||
<van-field
|
||||
name="sq_bzlx_name"
|
||||
@click="sq_bzlxShow = true"
|
||||
:value="formData.sq_bzlx_name"
|
||||
label="补助类型"
|
||||
placeholder="请选择补助类型"
|
||||
v-model="formData.sex"
|
||||
label="性别"
|
||||
required
|
||||
is-link
|
||||
readonly
|
||||
:rules="[{ required: true, message: '性别' }]"
|
||||
clickable
|
||||
@click="showSexPicker = true"
|
||||
></van-field>
|
||||
<van-popup v-model:show="sq_bzlxShow" position="bottom" round>
|
||||
<van-picker show-toolbar :columns="sq_bzlxList" @confirm="onSq_bzlxConfirm" @cancel="sq_bzlxShow = false"></van-picker>
|
||||
<van-popup v-model="showSexPicker" position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="['男', '女']"
|
||||
@confirm="onSexConfirm"
|
||||
@cancel="showSexPicker=false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
name="sq_knlx_name"
|
||||
@click="sq_knlxShow = true"
|
||||
:value="formData.sq_knlx_name"
|
||||
label="困难类型"
|
||||
placeholder="请选择困难类型"
|
||||
v-model="formData.unitName"
|
||||
label="所在单位"
|
||||
placeholder="所在单位"
|
||||
readonly
|
||||
:rules="[{ required: true, message: '所在单位' }]"
|
||||
clearable
|
||||
required
|
||||
></van-field>
|
||||
<van-popup v-model:show="sq_knlxShow" position="bottom" round>
|
||||
<van-picker show-toolbar :columns="sq_knlxist" @confirm="onSq_knlxConfirm" @cancel="sq_knlxShow = false"></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<template v-if="formData.sq_knlx==1">
|
||||
<van-field label="所在医院" placeholder="请填写所在所在医院" v-model="formData.hospital"></van-field>
|
||||
<van-field
|
||||
label="住院时间"
|
||||
:value="formData.hospitalized_time_name"
|
||||
placeholder="请填写住院时间"
|
||||
@click="hospitalized_timeShow = true"
|
||||
></van-field>
|
||||
<van-calendar
|
||||
v-model="hospitalized_timeShow"
|
||||
:min-date="new Date('1999-01-01')"
|
||||
:show-confirm="false"
|
||||
type="range"
|
||||
@confirm="onHospitalized_timeConfirm"
|
||||
></van-calendar>
|
||||
</template>
|
||||
|
||||
<van-field
|
||||
v-model="formData.apply_reason"
|
||||
name="remark"
|
||||
label="申请理由"
|
||||
style="flex-flow: column"
|
||||
placeholder="请填写申请理由"
|
||||
input-align="left"
|
||||
rows="3"
|
||||
maxlength="200"
|
||||
type="textarea"
|
||||
show-word-limit
|
||||
autosize
|
||||
>
|
||||
<template #label>
|
||||
<div class="mb10">申请事由</div>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
v-model="formData.unionName"
|
||||
label="所在分工会"
|
||||
placeholder="所在分工会"
|
||||
readonly
|
||||
:rules="[{ required: true, message: '所在分工会' }]"
|
||||
clearable
|
||||
required
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.monthlyIncome"
|
||||
label="本人月收入"
|
||||
type="number"
|
||||
placeholder="请填写本人月收入"
|
||||
:rules="[{ required: true, message: '请填写本人月收入' }]"
|
||||
required
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.birthday"
|
||||
label="出生年月"
|
||||
is-link
|
||||
@click="showDatePicker = true"
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写出生年月' }]"
|
||||
></van-field>
|
||||
<van-popup v-model="showDatePicker" position="bottom">
|
||||
<van-datetime-picker
|
||||
type="date"
|
||||
:min-date="new Date(1900, 0, 1)"
|
||||
:max-date="new Date()"
|
||||
@confirm="onDateConfirm"
|
||||
@cancel="showDatePicker=false"
|
||||
></van-datetime-picker>
|
||||
</van-popup>
|
||||
<van-field
|
||||
v-model="formData.mobile"
|
||||
label="手机号码"
|
||||
placeholder="请填写手机号码"
|
||||
maxlength="20"
|
||||
clearable
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写手机号码' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.homeAddress"
|
||||
label="家庭地址"
|
||||
placeholder="请填写家庭地址"
|
||||
maxlength="200"
|
||||
clearable
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写家庭地址' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.subsidyStandards"
|
||||
label="款项"
|
||||
placeholder="请选择款项"
|
||||
is-link
|
||||
@click="showSubsidyPicker = true"
|
||||
required
|
||||
:rules="[{ required: true, message: '请选择款项' }]"
|
||||
></van-field>
|
||||
<van-popup v-model="showSubsidyPicker" position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="subsidyStandards"
|
||||
@confirm="onSubsidyConfirm"
|
||||
@cancel="showSubsidyPicker=false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
<van-field
|
||||
v-model="formData.reason"
|
||||
label="申请原因"
|
||||
type="textarea"
|
||||
placeholder="请简述申请原因"
|
||||
maxlength="500"
|
||||
required
|
||||
:rules="[{ required: true, message: '请简述申请原因' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.remarks"
|
||||
label="备注"
|
||||
type="textarea"
|
||||
placeholder="请简述备注"
|
||||
maxlength="500"
|
||||
></van-field>
|
||||
|
||||
<van-cell-group inset class="mt10">
|
||||
<van-field name="files" label="附  件" required style="flex-flow: column" input-align="left">
|
||||
<template #label>
|
||||
<div class="mb10">附  件</div>
|
||||
</template>
|
||||
<van-field name="familyList" label="家庭成员经济收入" @click="showDialog = true" required is-link
|
||||
label-width="60%"
|
||||
clickable
|
||||
class="family-list-field">
|
||||
</van-field>
|
||||
<van-list class="family-list-cell">
|
||||
<van-cell
|
||||
v-for="(member, index) in formData.familyList"
|
||||
:key="index"
|
||||
:title="member.name"
|
||||
:label="'年龄: ' + member.age + ' 岁, 关系: ' + member.relation + ', 月收入: ' + member.monthlyIncome + ' 元'"
|
||||
is-link
|
||||
@click="editMember(index)"
|
||||
>
|
||||
<template #right-icon>
|
||||
<van-icon name="delete" color="red" @click.stop="removeMember(index)"></van-icon>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-list>
|
||||
|
||||
<van-field name="files" label="附件" style="flex-flow: column" input-align="left">
|
||||
<template #input>
|
||||
<vant-file-upload :files.sync="formData.files"></vant-file-upload>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group inset class="mt10">
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">签  字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" :my_sign.sync="formData.sqsign"></mobile-sign>
|
||||
<mobile-sign ref="signature" :my_sign.sync="formData.sign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<div style="margin: 20px 20px 10px 20px">
|
||||
<van-button @click="onSubmit()" style="border-radius: 10px" block type="info" :color="themeColor">提 交</van-button>
|
||||
</div>
|
||||
<!-- 家庭成员经济收入表格和附件上传等功能需要自定义实现 -->
|
||||
<van-button round block type="info" native-type="submit">提交</van-button>
|
||||
</van-cell>
|
||||
</van-form>
|
||||
|
||||
<div>
|
||||
<van-tabbar v-model="tarBarActive" style="z-index: 99">
|
||||
<van-tabbar-item icon="home-o" replace url="/mobile/difficulty/apply/index">困难补助申请</van-tabbar-item>
|
||||
<van-tabbar-item icon="manager-o" replace url="/mobile/difficulty/apply/apply_list">困难补助记录</van-tabbar-item>
|
||||
</van-tabbar>
|
||||
</div>
|
||||
<van-dialog v-model="showDialog" class="family-dialog" title="添加家庭成员" show-cancel-button
|
||||
:before-close="handleBeforeClose">
|
||||
<van-cell-group>
|
||||
<van-field
|
||||
v-model="newMember.name"
|
||||
label="姓名"
|
||||
placeholder="请输入姓名"
|
||||
required
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="newMember.age"
|
||||
label="年龄(岁)"
|
||||
type="number"
|
||||
placeholder="请输入年龄"
|
||||
required
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="newMember.relation"
|
||||
label="关系"
|
||||
placeholder="请输入关系"
|
||||
required
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="newMember.monthlyIncome"
|
||||
label="月收入(元)"
|
||||
type="number"
|
||||
placeholder="请输入月收入"
|
||||
required
|
||||
></van-field>
|
||||
</van-cell-group>
|
||||
</van-dialog>
|
||||
|
||||
</div>
|
||||
<script src="/assets/platform/module/difficulty/common.js?v=1.0.0"></script>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
tarBarActive: 0,
|
||||
id: GetQueryString("id"),
|
||||
hospitalized_timeShow: false,
|
||||
sq_bzlxShow: false,
|
||||
sq_bzlxList: [],
|
||||
minDate: {},
|
||||
sq_knlxShow: false,
|
||||
sq_knlxist: [],
|
||||
userList: [],
|
||||
formData: {
|
||||
apply_mode: 1
|
||||
formData: {},
|
||||
showSexPicker: false,
|
||||
showDatePicker: false,
|
||||
showSubsidyPicker: false,
|
||||
subsidyStandards: [
|
||||
'本人患重症处于康复期、新患重症以外的疾病且自理医疗费在5万元以上、直系亲属患重症:1000-1500元。',
|
||||
'突发事件造成家庭损失较重致生活困难:2000-2500元。',
|
||||
'本人新患重症、长病假人员生活困难、家庭人均收入接近无锡市最低生活保障线:3000元。',
|
||||
'其他'
|
||||
],
|
||||
newMember: {
|
||||
name: '',
|
||||
age: '',
|
||||
relation: '',
|
||||
monthlyIncome: ''
|
||||
},
|
||||
sheetShow: false,
|
||||
files: []
|
||||
showDialog: false,
|
||||
isEditing: false,
|
||||
editingIndex: null
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue")
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
onHospitalized_timeConfirm(val) {
|
||||
this.$set(this.formData, "hospitalized_time_name", moment(val[0]).format("YYYY-MM-DD") + "至" + moment(val[1]).format("YYYY-MM-DD"))
|
||||
this.$set(this.formData, "hospitalized_time", moment(val[0]).format("YYYY-MM-DD") + "至" + moment(val[1]).format("YYYY-MM-DD"))
|
||||
this.hospitalized_timeShow = false
|
||||
},
|
||||
onSq_bzlxConfirm(val) {
|
||||
this.$set(this.formData, "sq_bzlx_name", val.text)
|
||||
this.$set(this.formData, "sq_bzlx", val.value)
|
||||
for (let i in difficulty.getHard(val.value)) {
|
||||
this.sq_knlxist.push({ value: i, text: difficulty.getHard(val.value)[i] })
|
||||
onSubmit(values) {
|
||||
console.log(this.formData)
|
||||
if(this.formData.familyList.length === 0){
|
||||
this.$toast("请添加家庭成员信息")
|
||||
return
|
||||
}
|
||||
this.$set(this.formData, "sq_knlx_name", null)
|
||||
this.$set(this.formData, "sq_knlx", null)
|
||||
this.sq_bzlxShow = false
|
||||
},
|
||||
onSq_knlxConfirm(val) {
|
||||
this.$set(this.formData, "sq_knlx_name", val.text)
|
||||
this.$set(this.formData, "sq_knlx", val.value)
|
||||
this.sq_knlxShow = false
|
||||
},
|
||||
applyModeChange(val) {
|
||||
if (val === 1) {
|
||||
this.$set(this.formData, "difficultyUser", "${@shiro.getPrincipalProperty('id')}")
|
||||
this.$set(this.formData, "bbzrusername", "${@shiro.getPrincipalProperty('username')}")
|
||||
this.$set(this.formData, "sex", "${@shiro.getPrincipalProperty('sex')}")
|
||||
this.$set(this.formData, "zc", "${@shiro.getPrincipalProperty('jobTitle')}")
|
||||
this.$set(this.formData, "zw", "${@shiro.getPrincipalProperty('position')}")
|
||||
this.$set(this.formData, "unitname", "${@shiro.getPrincipalProperty('unit').getName()}")
|
||||
this.$set(this.formData, "birthday", "${@shiro.getPrincipalProperty('birthday')}")
|
||||
this.$set(this.formData, "lxfs", "${@shiro.getPrincipalProperty('mobile')}")
|
||||
this.$set(this.formData, "idcard", "${@shiro.getPrincipalProperty('idcard')}")
|
||||
} else if (val === 2) {
|
||||
this.formData = {}
|
||||
this.$set(this.formData, "apply_mode", 2)
|
||||
this.$set(this.formData, "bbzrusername", undefined)
|
||||
}
|
||||
},
|
||||
async userRemoteMethod(query) {
|
||||
if (query) {
|
||||
const { data } = await $.get("/platform/fw/condolence/apply/queryUser", { query })
|
||||
data.forEach((v) => {
|
||||
v.name = v.username
|
||||
v.subname = v.loginname
|
||||
return v
|
||||
})
|
||||
this.userList = data
|
||||
this.sheetShow = true
|
||||
}
|
||||
},
|
||||
onUserSelect(val) {
|
||||
this.$set(this.formData, "difficultyUser", val.id)
|
||||
this.$set(this.formData, "bbzrusername", val.name)
|
||||
this.$set(this.formData, "lxfs", val.mobile)
|
||||
this.$set(this.formData, "sex", val.sex)
|
||||
this.$set(this.formData, "unitname", val.unitname)
|
||||
this.$set(this.formData, "zc", val.jobTitle)
|
||||
this.$set(this.formData, "zw", val.position)
|
||||
this.$set(this.formData, "birthday", val.birthday)
|
||||
this.$set(this.formData, "sq_bzlx_name", this.sq_bzlxList[0].text)
|
||||
this.$set(this.formData, "sq_bzlx", this.sq_bzlxList[0].value)
|
||||
this.sheetShow = false
|
||||
},
|
||||
|
||||
async onSubmit() {
|
||||
this.$refs.signature.submitSign()
|
||||
/* if (!this.formData.sqsign) {
|
||||
vant.Toast('请签名!')
|
||||
return
|
||||
}*/
|
||||
const formData = clone(this.formData)
|
||||
formData.files = JSON.stringify(formData.files)
|
||||
formData.applicantsign = formData.sqsign
|
||||
formData.bbzrusername = formData.difficultyUser
|
||||
formData.flag = true
|
||||
this.$refs["addForm"].validate().then(async () => {
|
||||
this.$toast.loading("提交中...")
|
||||
const res = await $.post("/platform/fw/difficulty/apply/doAdd", formData)
|
||||
$.post('/platform/difficulty/apply/doAdd', {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success("申请成功")
|
||||
setTimeout(() => {
|
||||
location.replace("/mobile/difficulty/apply/apply_list")
|
||||
}, 1000)
|
||||
this.$toast.success(res.msg)
|
||||
sublime.jumpPagePjax('/platform/difficulty/applylist')
|
||||
} else {
|
||||
this.$toast.fail("申请失败")
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
async getApplyInfo(id) {
|
||||
const { data, code, msg } = await $.get("/platform/fw/difficulty/applylist/findOne", { id })
|
||||
if (data) {
|
||||
data.apply_mode = parseInt(data.apply_mode)
|
||||
this.formData = data
|
||||
if (this.formData.files && this.formData.files.length > 0) {
|
||||
this.formData.files = JSON.parse(data.files)
|
||||
onSexConfirm(value) {
|
||||
this.formData.sex = value;
|
||||
this.showSexPicker = false;
|
||||
},
|
||||
onDateConfirm(value) {
|
||||
this.formData.birthday = value;
|
||||
this.showDatePicker = false;
|
||||
},
|
||||
onSubsidyConfirm(value) {
|
||||
this.formData.subsidyStandards = value;
|
||||
this.showSubsidyPicker = false;
|
||||
},
|
||||
|
||||
handleBeforeClose(action, done) {
|
||||
if (action === 'confirm') {
|
||||
if (!this.newMember.name || !this.newMember.age || !this.newMember.relation || !this.newMember.monthlyIncome) {
|
||||
this.$toast('请填写完整信息');
|
||||
done(false);
|
||||
} else {
|
||||
done()
|
||||
if (this.isEditing) {
|
||||
this.updateMember();
|
||||
} else {
|
||||
this.addMember();
|
||||
}
|
||||
done();
|
||||
}
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
},
|
||||
|
||||
addMember() {
|
||||
this.formData.familyList.push({...this.newMember});
|
||||
this.resetNewMember();
|
||||
},
|
||||
|
||||
editMember(index) {
|
||||
this.newMember = {...this.formData.familyList[index]};
|
||||
this.editingIndex = index;
|
||||
this.isEditing = true;
|
||||
this.showDialog = true;
|
||||
},
|
||||
updateMember() {
|
||||
this.formData.familyList.splice(this.editingIndex, 1, { ...this.newMember });
|
||||
this.resetNewMember();
|
||||
},
|
||||
removeMember(index) {
|
||||
this.formData.familyList.splice(index, 1);
|
||||
},
|
||||
resetNewMember() {
|
||||
this.newMember = {name: '', age: '', relation: '', monthlyIncome: ''};
|
||||
this.isEditing = false;
|
||||
this.editingIndex = null;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.signature) {
|
||||
this.$refs.signature.getMySign()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
async created() {
|
||||
this.applyModeChange(1)
|
||||
for (let i in difficulty.subsidy) {
|
||||
this.sq_bzlxList.push({ value: i, text: difficulty.subsidy[i] })
|
||||
}
|
||||
|
||||
this.$set(this.formData, "sq_bzlx_name", this.sq_bzlxList[0].text)
|
||||
this.$set(this.formData, "sq_bzlx", this.sq_bzlxList[0].value)
|
||||
for (let i in difficulty.getHard(this.formData.sq_bzlx)) {
|
||||
this.sq_knlxist.push({ value: i, text: difficulty.getHard(this.formData.sq_bzlx)[i] })
|
||||
}
|
||||
this.formData.apply_time = moment().format("YYYY-MM-DD")
|
||||
|
||||
if (this.id) {
|
||||
this.getApplyInfo(this.id)
|
||||
$.get('/platform/difficulty/apply/findOne', {id: this.id}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const user = JSON.parse(window.sessionStorage.getItem('user'))
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
this.$set(this.formData, 'userName', user.username)
|
||||
this.$set(this.formData, 'loginName', user.loginname)
|
||||
this.$set(this.formData, 'sex', user.sex)
|
||||
this.$set(this.formData, 'unitId', user.unit.id)
|
||||
this.$set(this.formData, 'unitName', user.unit.name)
|
||||
this.$set(this.formData, 'unionId', user.union.id)
|
||||
this.$set(this.formData, 'unionName', user.union.unionname)
|
||||
this.$set(this.formData, 'monthlyIncome', null)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||
this.$set(this.formData, 'subsidyStandards', null)
|
||||
this.$set(this.formData, 'reason', null)
|
||||
this.$set(this.formData, 'remarks', null)
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -0,0 +1,494 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.family-list-field .van-field__value .van-field__control {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.family-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.family-list-cell .van-cell__label {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.family-dialog .van-dialog__content {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar @click-left="pjaxReplace('/mobile/index')" fixed left-arrow placeholder
|
||||
title="困难补助申请"></van-nav-bar>
|
||||
|
||||
<van-form :show-error-message="false" @submit="onSubmit">
|
||||
<van-cell inset>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请填写申请人姓名' }]"
|
||||
label="申请人姓名"
|
||||
readonly
|
||||
required1
|
||||
v-model="formData.proxyUserName"
|
||||
></van-field>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请填写申请人工号' }]"
|
||||
label="申请人工号"
|
||||
readonly
|
||||
required
|
||||
v-model="formData.proxyLoginName"
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
label="申请模式"
|
||||
readonly
|
||||
required
|
||||
>
|
||||
<template #input>
|
||||
<van-radio-group :disabled="formData.id" @change="modeChange"
|
||||
direction="horizontal" v-model="formData.mode">
|
||||
<van-radio name="1">本人申请</van-radio>
|
||||
<van-radio name="2">替他人申请</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<!-- <van-field
|
||||
v-model="formData.userName"
|
||||
label="姓名"
|
||||
readonly
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写申请人姓名' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.loginName"
|
||||
label="工号"
|
||||
readonly
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写申请人工号' }]"
|
||||
></van-field>-->
|
||||
<van-field :readonly="formData.id"
|
||||
:rules="[{ required: true, message: '请填写受补助人姓名' }]"
|
||||
label="受补助人" name="userName"
|
||||
placeholder="请输入受补助人姓名" required v-if="formData.mode==='2'"
|
||||
v-model="formData.userName">
|
||||
<template #button>
|
||||
<van-button :color="themeColor" :disabled="formData.id"
|
||||
@click="userNameInput(formData.userName)" size="small"
|
||||
type="primary"
|
||||
v-if="formData.mode==='2'">查询
|
||||
</van-button>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-action-sheet :actions="subsidizedList"
|
||||
:close-on-click-overlay="false"
|
||||
@cancel="subsidizedList = []"
|
||||
@select="onUserSelect"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
v-model="userNameSheetShow">
|
||||
</van-action-sheet>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '性别' }]"
|
||||
@click="showSexPicker = true"
|
||||
clickable
|
||||
is-link
|
||||
label="性别"
|
||||
placeholder="性别"
|
||||
readonly
|
||||
required
|
||||
v-model="formData.sex"
|
||||
></van-field>
|
||||
<van-popup position="bottom" v-model="showSexPicker">
|
||||
<van-picker
|
||||
:columns="['男', '女']"
|
||||
@cancel="showSexPicker=false"
|
||||
@confirm="onSexConfirm"
|
||||
show-toolbar
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '所在单位' }]"
|
||||
clearable
|
||||
label="所在单位"
|
||||
placeholder="所在单位"
|
||||
readonly
|
||||
required
|
||||
v-model="formData.unitName"
|
||||
></van-field>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '所在分工会' }]"
|
||||
clearable
|
||||
label="所在分工会"
|
||||
placeholder="所在分工会"
|
||||
readonly
|
||||
required
|
||||
v-model="formData.unionName"
|
||||
></van-field>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请填写本人月收入' }]"
|
||||
label="本人月收入"
|
||||
placeholder="请填写本人月收入"
|
||||
required
|
||||
type="number"
|
||||
v-model="formData.monthlyIncome"
|
||||
></van-field>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请填写出生年月' }]"
|
||||
@click="showDatePicker = true"
|
||||
is-link
|
||||
label="出生年月"
|
||||
placeholder="出生年月"
|
||||
required
|
||||
v-model="formData.birthday"
|
||||
></van-field>
|
||||
<van-popup position="bottom" v-model="showDatePicker">
|
||||
<van-datetime-picker
|
||||
:max-date="new Date()"
|
||||
:min-date="new Date(1900, 0, 1)"
|
||||
@cancel="showDatePicker=false"
|
||||
@confirm="onDateConfirm"
|
||||
type="date"
|
||||
></van-datetime-picker>
|
||||
</van-popup>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请填写手机号码' }]"
|
||||
clearable
|
||||
label="手机号码"
|
||||
maxlength="20"
|
||||
placeholder="请填写手机号码"
|
||||
required
|
||||
v-model="formData.mobile"
|
||||
></van-field>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请填写家庭地址' }]"
|
||||
clearable
|
||||
label="家庭地址"
|
||||
maxlength="200"
|
||||
placeholder="请填写家庭地址"
|
||||
required
|
||||
v-model="formData.homeAddress"
|
||||
></van-field>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请选择款项' }]"
|
||||
@click="showSubsidyPicker = true"
|
||||
is-link
|
||||
label="款项"
|
||||
placeholder="请选择款项"
|
||||
required
|
||||
v-model="formData.subsidyStandards"
|
||||
></van-field>
|
||||
<van-popup position="bottom" v-model="showSubsidyPicker">
|
||||
<van-picker
|
||||
:columns="subsidyStandards"
|
||||
@cancel="showSubsidyPicker=false"
|
||||
@confirm="onSubsidyConfirm"
|
||||
show-toolbar
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请简述申请原因' }]"
|
||||
label="申请原因"
|
||||
maxlength="500"
|
||||
placeholder="请简述申请原因"
|
||||
required
|
||||
type="textarea"
|
||||
v-model="formData.reason"
|
||||
></van-field>
|
||||
<van-field
|
||||
label="备注"
|
||||
maxlength="500"
|
||||
placeholder="请简述备注"
|
||||
type="textarea"
|
||||
v-model="formData.remarks"
|
||||
></van-field>
|
||||
|
||||
<van-field @click="showDialog = true" class="family-list-field" clickable is-link
|
||||
label="家庭成员经济收入"
|
||||
label-width="60%"
|
||||
name="familyList"
|
||||
required>
|
||||
</van-field>
|
||||
<van-list class="family-list-cell">
|
||||
<van-cell
|
||||
:key="index"
|
||||
:label="'年龄: ' + member.age + ' 岁, 关系: ' + member.relation + ', 月收入: ' + member.monthlyIncome + ' 元'"
|
||||
:title="member.name"
|
||||
@click="editMember(index)"
|
||||
is-link
|
||||
v-for="(member, index) in formData.familyList"
|
||||
>
|
||||
<template #right-icon>
|
||||
<van-icon @click.stop="removeMember(index)" color="red"
|
||||
name="delete"></van-icon>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-list>
|
||||
|
||||
<van-field input-align="left" label="附件" name="files" style="flex-flow: column">
|
||||
<template #input>
|
||||
<vant-file-upload :files.sync="formData.files"></vant-file-upload>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
<template #input>
|
||||
<mobile-sign :is_value_base64="false" ref="signature"
|
||||
v-model="formData.signature"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<!-- 家庭成员经济收入表格和附件上传等功能需要自定义实现 -->
|
||||
<van-button block native-type="submit" round type="info">提交</van-button>
|
||||
</van-cell>
|
||||
</van-form>
|
||||
|
||||
<van-dialog :before-close="handleBeforeClose" class="family-dialog" show-cancel-button
|
||||
title="添加家庭成员"
|
||||
v-model="showDialog">
|
||||
<van-cell-group>
|
||||
<van-field
|
||||
label="姓名"
|
||||
placeholder="请输入姓名"
|
||||
required
|
||||
v-model="newMember.name"
|
||||
></van-field>
|
||||
<van-field
|
||||
label="年龄(岁)"
|
||||
placeholder="请输入年龄"
|
||||
required
|
||||
type="number"
|
||||
v-model="newMember.age"
|
||||
></van-field>
|
||||
<van-field
|
||||
label="关系"
|
||||
placeholder="请输入关系"
|
||||
required
|
||||
v-model="newMember.relation"
|
||||
></van-field>
|
||||
<van-field
|
||||
label="月收入(元)"
|
||||
placeholder="请输入月收入"
|
||||
required
|
||||
type="number"
|
||||
v-model="newMember.monthlyIncome"
|
||||
></van-field>
|
||||
</van-cell-group>
|
||||
</van-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
id: GetQueryString("id"),
|
||||
formData: {},
|
||||
showSexPicker: false,
|
||||
showDatePicker: false,
|
||||
showSubsidyPicker: false,
|
||||
subsidyStandards: [
|
||||
'本人患重症处于康复期、新患重症以外的疾病且自理医疗费在5万元以上、直系亲属患重症:1000-1500元。',
|
||||
'突发事件造成家庭损失较重致生活困难:2000-2500元。',
|
||||
'本人新患重症、长病假人员生活困难、家庭人均收入接近无锡市最低生活保障线:3000元。'
|
||||
],
|
||||
newMember: {
|
||||
name: '',
|
||||
age: '',
|
||||
relation: '',
|
||||
monthlyIncome: ''
|
||||
},
|
||||
showDialog: false,
|
||||
isEditing: false,
|
||||
editingIndex: null,
|
||||
|
||||
subsidizedList: [],
|
||||
userNameSheetShow: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
userNameInput(val) {
|
||||
$.post('/platform/difficulty/apply/querySqr', {key: val}).then(res => {
|
||||
res.data.forEach(v => {
|
||||
v.name = v.username
|
||||
v.subname = v.loginname
|
||||
return v
|
||||
})
|
||||
this.subsidizedList = res.data;
|
||||
this.userNameSheetShow = true
|
||||
});
|
||||
},
|
||||
onUserSelect(val) {
|
||||
const user = this.subsidizedList.find(item => item.id === val.id)
|
||||
if (user) {
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
this.$set(this.formData, 'userName', user.username)
|
||||
this.$set(this.formData, 'loginName', user.loginname)
|
||||
this.$set(this.formData, 'sex', user.sex)
|
||||
this.$set(this.formData, 'unitId', user.unitid)
|
||||
this.$set(this.formData, 'unitName', user.unitname)
|
||||
this.$set(this.formData, 'unionId', user.unionid)
|
||||
this.$set(this.formData, 'unionName', user.unionname)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
} else {
|
||||
this.$set(this.formData, 'userId', null)
|
||||
this.$set(this.formData, 'userName', null)
|
||||
this.$set(this.formData, 'loginName', null)
|
||||
this.$set(this.formData, 'sex', null)
|
||||
this.$set(this.formData, 'unitId', null)
|
||||
this.$set(this.formData, 'unitName', null)
|
||||
this.$set(this.formData, 'unionId', null)
|
||||
this.$set(this.formData, 'unionName', null)
|
||||
this.$set(this.formData, 'birthday', null)
|
||||
this.$set(this.formData, 'mobile', null)
|
||||
}
|
||||
this.userNameSheetShow = false
|
||||
},
|
||||
modeChange(val) {
|
||||
if (this.formData.id) {
|
||||
return
|
||||
}
|
||||
const user = JSON.parse(window.sessionStorage.getItem('user'))
|
||||
if (val === "1") {
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
this.$set(this.formData, 'userName', user.username)
|
||||
this.$set(this.formData, 'loginName', user.loginname)
|
||||
this.$set(this.formData, 'proxyUserId', user.id)
|
||||
this.$set(this.formData, 'proxyUserName', user.username)
|
||||
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
||||
this.$set(this.formData, 'mode', "1")
|
||||
this.$set(this.formData, 'sex', user.sex)
|
||||
this.$set(this.formData, 'unitId', user.unit.id)
|
||||
this.$set(this.formData, 'unitName', user.unit.name)
|
||||
this.$set(this.formData, 'unionId', user.union.id)
|
||||
this.$set(this.formData, 'unionName', user.union.unionname)
|
||||
this.$set(this.formData, 'monthlyIncome', null)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||
this.$set(this.formData, 'subsidyStandards', null)
|
||||
this.$set(this.formData, 'reason', null)
|
||||
this.$set(this.formData, 'remarks', null)
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
} else {
|
||||
this.formData = {}
|
||||
this.$set(this.formData, 'proxyUserId', user.id)
|
||||
this.$set(this.formData, 'proxyUserName', user.username)
|
||||
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
||||
this.$set(this.formData, 'mode', "2")
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
}
|
||||
},
|
||||
onSubmit(values) {
|
||||
if (this.formData.familyList.length === 0) {
|
||||
this.$toast("请添加家庭成员信息")
|
||||
return
|
||||
}
|
||||
if (!this.formData.signature) {
|
||||
this.$toast("请签字!")
|
||||
return
|
||||
}
|
||||
let urlValue = 'doAdd'
|
||||
if (this.id) {
|
||||
urlValue = 'doEdit'
|
||||
}
|
||||
$.post('/platform/difficulty/apply/' + urlValue, {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
pjaxReplace('/platform/difficulty/applylist/h5')
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
onSexConfirm(value) {
|
||||
this.formData.sex = value;
|
||||
this.showSexPicker = false;
|
||||
},
|
||||
onDateConfirm(value) {
|
||||
this.formData.birthday = value;
|
||||
this.showDatePicker = false;
|
||||
},
|
||||
onSubsidyConfirm(value) {
|
||||
this.formData.subsidyStandards = value;
|
||||
this.showSubsidyPicker = false;
|
||||
},
|
||||
|
||||
handleBeforeClose(action, done) {
|
||||
if (action === 'confirm') {
|
||||
if (!this.newMember.name || !this.newMember.age || !this.newMember.relation || !this.newMember.monthlyIncome) {
|
||||
this.$toast('请填写完整信息');
|
||||
done(false);
|
||||
} else {
|
||||
done()
|
||||
if (this.isEditing) {
|
||||
this.updateMember();
|
||||
} else {
|
||||
this.addMember();
|
||||
}
|
||||
done();
|
||||
}
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
},
|
||||
|
||||
addMember() {
|
||||
this.formData.familyList.push({...this.newMember});
|
||||
this.resetNewMember();
|
||||
},
|
||||
|
||||
editMember(index) {
|
||||
this.newMember = {...this.formData.familyList[index]};
|
||||
this.editingIndex = index;
|
||||
this.isEditing = true;
|
||||
this.showDialog = true;
|
||||
},
|
||||
updateMember() {
|
||||
this.formData.familyList.splice(this.editingIndex, 1, {...this.newMember});
|
||||
this.resetNewMember();
|
||||
},
|
||||
removeMember(index) {
|
||||
this.formData.familyList.splice(index, 1);
|
||||
},
|
||||
resetNewMember() {
|
||||
this.newMember = {name: '', age: '', relation: '', monthlyIncome: ''};
|
||||
this.isEditing = false;
|
||||
this.editingIndex = null;
|
||||
}
|
||||
},
|
||||
|
||||
async created() {
|
||||
if (this.id) {
|
||||
$.get('/platform/difficulty/apply/findOne', {id: this.id}).then(res => {
|
||||
if (res.code === 0) {
|
||||
res.data.birthday = moment(res.data.birthday).format('YYYY-MM-DD')
|
||||
this.formData = res.data
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.modeChange("1")
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,10 +1,12 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style></style>
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="困难帮扶申请信息" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="困难帮扶申请信息" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
|
||||
|
||||
<div>
|
||||
<difficulty-info :id.sync="id"></difficulty-info>
|
||||
@@ -13,7 +15,7 @@ layout("/mobile/platform.html"){
|
||||
<script src="/assets/platform/module/difficulty/common.js?v=1.0.0"></script>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -22,15 +24,15 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"difficulty-info": httpVueLoader("/components/mobile/difficulty/info.vue?v=" + new Date().getTime())
|
||||
'difficulty-info': httpVueLoader('/components/mobile/difficulty/info.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
this.state_id = GetQueryString("state_id")
|
||||
this.id = GetQueryString('id')
|
||||
this.state_id = GetQueryString('state_id')
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
@@ -3,10 +3,10 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.apply_btn {
|
||||
animation: come 0.5s;
|
||||
animation: come .5s;
|
||||
position: fixed;
|
||||
top: 20%;
|
||||
right: 0;
|
||||
right: 0
|
||||
}
|
||||
|
||||
@keyframes come {
|
||||
@@ -17,11 +17,12 @@ layout("/mobile/platform.html"){
|
||||
right: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<m-page-loading v-if="mLoading"></m-page-loading>
|
||||
<van-nav-bar title="困难帮扶申请列表" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="困难帮扶申请列表" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
<van-dropdown-menu active-color="#1989fa">
|
||||
@@ -29,11 +30,14 @@ layout("/mobile/platform.html"){
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
<div style="margin: 60px auto 0 auto">
|
||||
<van-list v-model="loading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''" @load="pageData">
|
||||
<van-list v-model="loading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''"
|
||||
@load="pageData">
|
||||
<div v-for="o in tableData" class="list-card" @click="openInfo(o.id,o.zt)">
|
||||
<van-cell-group inset>
|
||||
<van-cell :border="false" title="受补助人">
|
||||
<span class="van-ellipsis" style="font-size: 16px" :style="{color:themeColor}">{{o.sbzrname}}({{o.sbzrloginname}})</span>
|
||||
<span class="van-ellipsis" style="font-size: 16px;" :style="{color:themeColor}">
|
||||
{{o.sbzrname}}({{o.sbzrloginname}})
|
||||
</span>
|
||||
</van-cell>
|
||||
<van-cell :border="false" title="申请时间">{{o.sqsj}}</van-cell>
|
||||
<van-cell :border="false" title="所属单位">{{o.unitname}}</van-cell>
|
||||
@@ -46,30 +50,34 @@ layout("/mobile/platform.html"){
|
||||
</van-list>
|
||||
</div>
|
||||
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image" image="/none.svg" description="暂无数据"></van-empty>
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image" image="/none.svg"
|
||||
description="暂无数据">
|
||||
</van-empty>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
visible: true,
|
||||
typeOption: [{ value: null, text: "全部" }],
|
||||
typeOption: [
|
||||
{value: null, text: '全部'}
|
||||
],
|
||||
yearOption: [],
|
||||
pageForm: {
|
||||
year: "",
|
||||
type: ""
|
||||
year: '',
|
||||
type: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue")
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
openInfo(id, state) {
|
||||
window.location.href = "/mobile/difficulty/apply/apply_info?id=" + id
|
||||
window.location.href = '/mobile/difficulty/apply/apply_info?id=' + id
|
||||
/* if ([95,96, 100].includes(state)) {
|
||||
window.location.href = '/mobile/difficulty/apply/index?id=' + id
|
||||
}else{
|
||||
@@ -84,18 +92,19 @@ layout("/mobile/platform.html"){
|
||||
listenTouch() {
|
||||
this.$nextTick(() => {
|
||||
const app = document.querySelector("#app")
|
||||
app.addEventListener("touchstart", () => {
|
||||
app.addEventListener('touchstart', () => {
|
||||
this.visible = false
|
||||
})
|
||||
app.addEventListener("touchend", () => {
|
||||
app.addEventListener('touchend', () => {
|
||||
this.visible = true
|
||||
})
|
||||
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
this.mLoading = true
|
||||
setTimeout(async () => {
|
||||
$.get("/platform/fw/difficulty/applylist/pageData", this.pageForm, (res) => {
|
||||
$.get('/platform/fw/difficulty/applylist/pageData', this.pageForm, (res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = this.tableData.concat(res.data.list)
|
||||
if (this.tableData.length === res.data.totalCount) {
|
||||
@@ -107,7 +116,7 @@ layout("/mobile/platform.html"){
|
||||
})
|
||||
this.mLoading = false
|
||||
}, 600)
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.listenTouch()
|
||||
@@ -115,7 +124,7 @@ layout("/mobile/platform.html"){
|
||||
async created() {
|
||||
this.mLoading = true
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearOption.unshift({ value: i, text: i + "年" })
|
||||
this.yearOption.unshift({value: i, text: i + '年'},)
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearOption[0].value)
|
||||
this.mLoading = false
|
||||
@@ -124,4 +133,4 @@ layout("/mobile/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
@@ -3,24 +3,36 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<m-page-loading v-if="mLoading"></m-page-loading>
|
||||
<van-nav-bar title="困难帮扶审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="困难帮扶审核" left-arrow placeholder fixed
|
||||
@click-left="history.go(-1)"></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
<van-dropdown-menu active-color="#1989fa">
|
||||
<van-dropdown-item v-model="pageForm.year" @change="yearChange" :options="yearList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.isAudit" @change="yearChange" :options="auditList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unionId" @change="yearChange" :options="mCommon.unionList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unitId" @change="yearChange" :options="mCommon.unitList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.year" @change="yearChange"
|
||||
:options="yearList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.isAudit" @change="yearChange"
|
||||
:options="auditList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unionId" @change="yearChange"
|
||||
:options="mCommon.unionList"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.unitId" @change="yearChange"
|
||||
:options="mCommon.unitList"></van-dropdown-item>
|
||||
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
|
||||
<div style="margin: 70px auto 0">
|
||||
<van-list v-model="loading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''" @load="pageData">
|
||||
<van-list v-model="loading" :finished="finished"
|
||||
:finished-text="tableData.length>0?'没有更多了':''"
|
||||
@load="pageData">
|
||||
<div v-for="o in tableData" class="list-card" @click="openView(o)">
|
||||
<van-cell-group inset>
|
||||
<van-cell :border="false" title="受助人">
|
||||
<span class="van-ellipsis" style="font-size: 16px" :style="{color:themeColor}">{{o.sbzrname}}({{o.sbzrloginname}})</span>
|
||||
<span class="van-ellipsis" style="font-size: 16px;"
|
||||
:style="{color:themeColor}">
|
||||
{{o.sbzrname}}({{o.sbzrloginname}})
|
||||
</span>
|
||||
</van-cell>
|
||||
<van-cell :border="false" title="申 请 人">{{o.sqrname}}</van-cell>
|
||||
<van-cell :border="false" title="所在工会">{{o.sqrunionname}}</van-cell>
|
||||
@@ -34,13 +46,18 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
</van-list>
|
||||
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image" image="/none.svg" description="暂无数据"></van-empty>
|
||||
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image"
|
||||
image="/none.svg"
|
||||
description="暂无数据">
|
||||
</van-empty>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -48,19 +65,19 @@ layout("/mobile/platform.html"){
|
||||
unionList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{ text: "未审核", value: false },
|
||||
{ text: "已审核", value: true }
|
||||
{text: '未审核', value: false},
|
||||
{text: '已审核', value: true},
|
||||
],
|
||||
handle: true,
|
||||
pageForm: {
|
||||
year: new Date().getFullYear(),
|
||||
isAudit: false
|
||||
}
|
||||
isAudit: false,
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openView(o) {
|
||||
window.location.href = "/mobile/difficulty/audit/auditHtml?zt=" + o.zt + "&id=" + o.id
|
||||
window.location.href = '/mobile/difficulty/audit/auditHtml?zt=' + o.zt + '&id=' + o.id
|
||||
},
|
||||
yearChange() {
|
||||
this.pageForm.pageNumber = 1
|
||||
@@ -72,7 +89,7 @@ layout("/mobile/platform.html"){
|
||||
pageData() {
|
||||
this.mLoading = true
|
||||
setTimeout(async () => {
|
||||
$.get(loc() + "/pageData", this.pageForm, (res) => {
|
||||
$.get(loc() + '/pageData', this.pageForm, (res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = this.tableData.concat(res.data.list)
|
||||
if (this.tableData.length === res.data.totalCount) {
|
||||
@@ -86,7 +103,7 @@ layout("/mobile/platform.html"){
|
||||
}, 600)
|
||||
},
|
||||
async flushUnits() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === "true") {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
|
||||
await mCommon.getUnitList(this.pageForm.unionId)
|
||||
} else {
|
||||
await mCommon.getUnitList("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
@@ -95,7 +112,7 @@ layout("/mobile/platform.html"){
|
||||
async init() {
|
||||
let nowYear = new Date().getFullYear()
|
||||
for (let i = nowYear; i >= nowYear - 9; i--) {
|
||||
this.yearList.push({ text: i, value: i })
|
||||
this.yearList.push({text: i, value: i})
|
||||
}
|
||||
await mCondolence.getType()
|
||||
await mCommon.getUnionList()
|
||||
@@ -112,7 +129,7 @@ layout("/mobile/platform.html"){
|
||||
this.flushUnits()
|
||||
}
|
||||
})
|
||||
window.addEventListener("pageshow", (e) => {
|
||||
window.addEventListener('pageshow', e => {
|
||||
if (e.persisted || (window.performance && window.performance.navigation.type === 2)) {
|
||||
vue.init()
|
||||
vue.yearChange()
|
||||
@@ -120,6 +137,7 @@ layout("/mobile/platform.html"){
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
@@ -0,0 +1,356 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.van-doc-card {
|
||||
margin: 14px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="困难帮扶分工会审核" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<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="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="auditList" @change="doSearch" v-model="pageForm.isAudit"></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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.userName + '(' + item.loginName + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">性 别:</span><span>{{item.sex}}</span></van-col>
|
||||
<van-col span="24"><span style="color: grey">联系方式:</span>{{item.mobile}}</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">所属工会:</span>{{item.unionName}}</van-col>
|
||||
<van-col span="24"><span style="color: grey">工作单位:</span><span>{{item.unitName}}</span></van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">款 项:</span>{{item.subsidyStandards}}</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span style="color: grey">当前状态:</span>
|
||||
<span>{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" type="primary"
|
||||
v-if="item.stateId === 3000"
|
||||
@click="openApproval(item)"
|
||||
style="margin-right: 4px">审核
|
||||
</van-button>
|
||||
<van-button size="small" type="danger"
|
||||
v-if="[3010,3020,3030].includes(item.stateId)"
|
||||
@click="openRevoke(item.id)"
|
||||
style="margin-right: 4px">撤回
|
||||
</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" 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>
|
||||
<div style="height: calc(100% - 44px);overflow-y: auto">
|
||||
<info ref="infoRef"></info>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{ '分工会审核' }}</div>
|
||||
<van-form>
|
||||
<van-field label="审核人员" readonly name="username" v-model="formData.username" required></van-field>
|
||||
<van-field label="审核时间" readonly name="auditTime" v-model="formData.auditTime" required></van-field>
|
||||
<van-field label="审核金额" type="number" name="money" v-model="formData.money" placeholder="请输入审核金额" required></van-field>
|
||||
<van-field label="审核意见" name="auditOpinion" v-model="formData.auditOpinion" placeholder="请输入审核意见" required></van-field>
|
||||
<van-field label="审核签字" name="auditSign" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">审核签字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" :is_value_base64="false" v-model="formData.auditSign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click.submit="doApproval(1)">拒绝</van-button>
|
||||
<van-button type="danger" block @click.submit="doApproval(2)">返回修改</van-button>
|
||||
<van-button type="primary" block @click.submit="doApproval(3)">通过</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
isAudit: false
|
||||
},
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{text: "已审核", value: true},
|
||||
{text: "未审核", value: false},
|
||||
],
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
|
||||
userId: "",
|
||||
infoShow: false,
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'info': info
|
||||
},
|
||||
methods: {
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
openApproval(item) {
|
||||
this.formData.id = item.id
|
||||
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||
this.formData.auditTime = moment().format('YYYY-MM-DD')
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
openRevoke(id) {
|
||||
this.$dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确定要撤回该申请吗?'
|
||||
}).then(() => {
|
||||
$.post('/platform/difficulty/branchUnionAudit/doEdit', { id }).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async doApproval(flag) {
|
||||
if (!this.formData.money || !this.formData.auditOpinion || !this.formData.auditSign) {
|
||||
this.$toast.fail('存在未填写的必填项,请填写完整后再次提交')
|
||||
return
|
||||
}
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/difficulty/branchUnionAudit/doReview', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.infoShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/difficulty/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,161 @@
|
||||
const info = {
|
||||
template: /*language=HTML*/
|
||||
`
|
||||
<div>
|
||||
|
||||
<van-cell-group>
|
||||
<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.unitName }}</van-cell>
|
||||
<van-cell title="分工会">{{ viewData.unionName }}</van-cell>
|
||||
<van-cell title="月收入">{{ viewData.monthlyIncome }}</van-cell>
|
||||
<van-cell title="出生年月">{{ viewData.birthday }}</van-cell>
|
||||
<van-cell title="手机号码">{{ viewData.mobile }}</van-cell>
|
||||
<van-cell title="家庭地址">{{ viewData.homeAddress }}</van-cell>
|
||||
<van-cell title="款项">{{ viewData.subsidyStandards }}</van-cell>
|
||||
<van-cell title="申请原因">{{ viewData.reason }}</van-cell>
|
||||
<van-cell title="备注">{{ viewData.remarks }}</van-cell>
|
||||
<van-cell title="家庭成员收入" class="column-cell">
|
||||
<table class="family-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="table-header">序号</th>
|
||||
<th class="table-header">姓名</th>
|
||||
<th class="table-header">年龄(岁)</th>
|
||||
<th class="table-header">关系</th>
|
||||
<th class="table-header">月收入(元)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="table-row" v-for="(item, index) in viewData.familyList" :key="index">
|
||||
<td class="table-cell">{{ index + 1 }}</td>
|
||||
<td class="table-cell">{{ item.name }}</td>
|
||||
<td class="table-cell">{{ item.age }}</td>
|
||||
<td class="table-cell">{{ item.relation }}</td>
|
||||
<td class="table-cell">{{ item.monthlyIncome }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</van-cell>
|
||||
<van-cell title="附件" class="column-cell">
|
||||
<vant-file-upload :files.sync="viewData.files" view :del="false"
|
||||
v-if="viewData.files&&viewData.files.length"></vant-file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</van-cell>
|
||||
<van-cell title="签字" class="column-cell">
|
||||
<van-image width="200" height="100" :src="CREATE_PREVIEW_URL(viewData.signature)"
|
||||
v-if="viewData.signature"></van-image>
|
||||
<span v-else>暂无</span>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group v-if="viewData.branchUnionAudit">
|
||||
<div class="van-cell-group__title mt20">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
分工会审核信息
|
||||
</div>
|
||||
</div>
|
||||
<van-cell title="审核人">{{ viewData.branchUnionAudit.username }}</van-cell>
|
||||
<van-cell title="审核时间">{{ viewData.branchUnionAudit.auditTime }}</van-cell>
|
||||
<van-cell title="审核金额" v-if="!viewData.isSelf">{{ viewData.branchUnionAudit.ext?.money }}元</van-cell>
|
||||
<van-cell title="审核意见">{{ viewData.branchUnionAudit.auditOpinion }}</van-cell>
|
||||
<van-cell title="签字" class="column-cell">
|
||||
<van-image width="200" height="100" :src="CREATE_PREVIEW_URL(viewData.branchUnionAudit.auditSign)"
|
||||
v-if="viewData.branchUnionAudit.auditSign"></van-image>
|
||||
<span v-else>暂无</span>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group v-if="viewData.schoolUnionInitialAudit">
|
||||
<div class="van-cell-group__title mt20">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
校工会初审信息
|
||||
</div>
|
||||
</div>
|
||||
<van-cell title="审核人">{{ viewData.schoolUnionInitialAudit.username }}</van-cell>
|
||||
<van-cell title="审核时间">{{ viewData.schoolUnionInitialAudit.auditTime }}</van-cell>
|
||||
<van-cell title="审核金额">{{ viewData.schoolUnionInitialAudit.ext?.money }}元</van-cell>
|
||||
<van-cell title="审核意见" v-if="!viewData.isSelf">{{ viewData.schoolUnionInitialAudit.auditOpinion }}</van-cell>
|
||||
<van-cell title="签字" class="column-cell">
|
||||
<van-image width="200" height="100" :src="CREATE_PREVIEW_URL(viewData.schoolUnionInitialAudit.auditSign)"
|
||||
v-if="viewData.schoolUnionInitialAudit.auditSign"></van-image>
|
||||
<span v-else>暂无</span>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group v-if="viewData.schoolUnionFinalAudit">
|
||||
<div class="van-cell-group__title mt20">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
批准部门意见
|
||||
</div>
|
||||
</div>
|
||||
<van-cell title="审核人">{{ viewData.schoolUnionFinalAudit.username }}</van-cell>
|
||||
<van-cell title="审核时间">{{ viewData.schoolUnionFinalAudit.auditTime }}</van-cell>
|
||||
<van-cell title="审核金额">{{ viewData.schoolUnionInitialAudit.ext?.money }}元</van-cell>
|
||||
<van-cell title="审核意见">{{ viewData.schoolUnionFinalAudit.auditOpinion }}</van-cell>
|
||||
<van-cell title="签字" class="column-cell">
|
||||
<van-image width="200" height="100" :src="CREATE_PREVIEW_URL(viewData.schoolUnionFinalAudit.auditSign)"
|
||||
v-if="viewData.schoolUnionFinalAudit.auditSign"></van-image>
|
||||
<span v-else>暂无</span>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
return {
|
||||
activeName: 'info',
|
||||
viewData: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
CREATE_PREVIEW_URL,
|
||||
onOpen(id, activeName = '1') {
|
||||
this.activeName = activeName
|
||||
$.get('/platform/difficulty/common/findOne', {id}).then(res => {
|
||||
if (res.code === 0) {
|
||||
try {
|
||||
res.data.familyList = JSON.parse(res.data.familyList)
|
||||
res.data.files = JSON.parse(res.data.files)
|
||||
} catch (e) {
|
||||
}
|
||||
this.viewData = res.data
|
||||
console.log(this.viewData)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/
|
||||
`
|
||||
.column-cell {
|
||||
flex-direction: column;
|
||||
}
|
||||
.family-table {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
border-collapse: collapse;
|
||||
table-layout: auto;
|
||||
text-align: center;
|
||||
font-family: 'Arial', sans-serif;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.table-header {
|
||||
background-color: #1867b0;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.table-row {
|
||||
background-color: #f9f9f9;
|
||||
transition: background-color 0.3s;
|
||||
}
|
||||
.table-row:hover {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
.table-cell {
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #ddd;
|
||||
text-align: center;
|
||||
}
|
||||
`
|
||||
}
|
||||
@@ -0,0 +1,293 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.van-doc-card {
|
||||
margin: 14px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="困难帮扶申请记录" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<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="unionList" @change="doSearch();flushUnits(pageForm.unionId)" 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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.userName + '(' + item.loginName + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">性 别:</span><span>{{item.sex}}</span></van-col>
|
||||
<van-col span="24"><span style="color: grey">联系方式:</span>{{item.mobile}}</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">所属工会:</span>{{item.unionName}}</van-col>
|
||||
<van-col span="24"><span style="color: grey">工作单位:</span><span>{{item.unitName}}</span></van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">款 项:</span>{{item.subsidyStandards}}</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span style="color: grey">当前状态:</span>
|
||||
<span>{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" @click="pjaxReplace('/platform/difficulty/apply/h5?id=' + item.id)"
|
||||
v-if="[3000,3020,3050,3080].includes(item.stateId)"
|
||||
type="info" style="margin-right: 4px">编辑</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" description="暂无数据"></van-empty>
|
||||
</div>
|
||||
|
||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100vh', width: '100%' }" safe-area-inset-bottom>
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="infoShow=false" left-arrow
|
||||
title="困难帮扶申请记录详情"></van-nav-bar>
|
||||
</van-sticky>
|
||||
<div style="height: calc(100% - 44px);overflow-y: auto">
|
||||
<info ref="infoRef"></info>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
isAudit: false
|
||||
},
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
|
||||
infoShow: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'info': info
|
||||
},
|
||||
methods: {
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/difficulty/applylist/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async initUnion(unionId) {
|
||||
this.unionList = await getUnions(unionId)
|
||||
this.unionList.forEach(v => {
|
||||
v.text = v.unionname
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.initUnion()
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.initUnion("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -3,20 +3,35 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="慰问审核" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
|
||||
|
||||
<difficulty-info ref="info" :id.sync="id" title="校工会主席审核" :handle="handle">
|
||||
<template #handle>
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">校工会主席审核</div>
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
校工会主席审核
|
||||
</div>
|
||||
</div>
|
||||
<van-form>
|
||||
<van-field readonly value="${@shiro.getPrincipalProperty('username')}" name="username" label="审核人员"></van-field>
|
||||
|
||||
<van-field readonly
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
></van-field>
|
||||
|
||||
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
|
||||
<van-field v-model="formData.xghbzje" label="初审金额"></van-field>
|
||||
|
||||
<van-field v-model="formData.opinion" rows="1" autosize label="审核意见" type="textarea" placeholder="请输入审核意见"></van-field>
|
||||
<van-field v-model="formData.opinion"
|
||||
rows="1"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
<template #label>
|
||||
@@ -27,42 +42,52 @@ layout("/mobile/platform.html"){
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px; padding: 0 25px">
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝</van-button>
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
|
||||
</van-button>
|
||||
</van-col>
|
||||
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">返回修改</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">返回修改
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(2)">通 过</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(2)">通 过
|
||||
</van-button>
|
||||
</van-col>
|
||||
</van-row>
|
||||
|
||||
</van-form>
|
||||
</template>
|
||||
</difficulty-info>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
handle: true,
|
||||
id: "",
|
||||
formData: {}
|
||||
formData: {},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue"),
|
||||
"difficulty-info": httpVueLoader("/components/mobile/difficulty/info.vue?v=" + new Date().getTime())
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'difficulty-info': httpVueLoader('/components/mobile/difficulty/info.vue?v=' + new Date().getTime()),
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
async doAudit(pass) {
|
||||
if (!this.formData.opinion) {
|
||||
this.$toast.fail("请填写审核意见")
|
||||
this.$toast.fail('请填写审核意见');
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
@@ -71,14 +96,14 @@ layout("/mobile/platform.html"){
|
||||
this.formData.pass = pass
|
||||
const resp = await $.post("/platform/fw/difficulty/schoolmanager/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success("审核成功")
|
||||
this.$toast.success('审核成功');
|
||||
setTimeout(() => {
|
||||
history.back()
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail("审核失败")
|
||||
this.$toast.fail('审核失败');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
@@ -86,16 +111,19 @@ layout("/mobile/platform.html"){
|
||||
this.formData = {
|
||||
id: this.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format("YYYY-MM-DD"),
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
auditOpinion: null,
|
||||
auditSign: "",
|
||||
xghbzje: this.$refs.info.viewData.xghbzje
|
||||
}
|
||||
}, 300)
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
@@ -0,0 +1,369 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.van-doc-card {
|
||||
margin: 14px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="困难帮扶委员会审核" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<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="unionList" @change="doSearch" v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="auditList" @change="doSearch" v-model="pageForm.isAudit"></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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.userName + '(' + item.loginName + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">性 别:</span><span>{{item.sex}}</span></van-col>
|
||||
<van-col span="24"><span style="color: grey">联系方式:</span>{{item.mobile}}</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">所属工会:</span>{{item.unionName}}</van-col>
|
||||
<van-col span="24"><span style="color: grey">工作单位:</span><span>{{item.unitName}}</span></van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">款 项:</span>{{item.subsidyStandards}}</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span style="color: grey">当前状态:</span>
|
||||
<span>{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" type="primary"
|
||||
v-if="item.stateId === 3060"
|
||||
@click="openApproval(item)"
|
||||
style="margin-right: 4px">审核
|
||||
</van-button>
|
||||
<van-button size="small" type="danger"
|
||||
v-if="[3070,3080,3090].includes(item.stateId)"
|
||||
@click="openRevoke(item.id)"
|
||||
style="margin-right: 4px">撤回
|
||||
</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" 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>
|
||||
<info ref="infoRef"></info>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{ '工会常委会审核审核' }}</div>
|
||||
<van-form>
|
||||
<van-field label="审核人员" readonly name="username" v-model="formData.username" required></van-field>
|
||||
<van-field label="审核时间" readonly name="auditTime" v-model="formData.auditTime" required></van-field>
|
||||
<van-field label="审核金额" type="number" name="money" v-model="formData.money" placeholder="请输入审核金额" required></van-field>
|
||||
<van-field label="审核意见" name="auditOpinion" v-model="formData.auditOpinion" placeholder="请输入审核意见" required></van-field>
|
||||
<van-field label="审核签字" name="auditSign" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">审核签字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" v-model="formData.auditSign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click.submit="doApproval(1)">拒绝</van-button>
|
||||
<van-button type="danger" block @click.submit="doApproval(2)">返回修改</van-button>
|
||||
<van-button type="primary" block @click.submit="doApproval(3)">通过</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
isAudit: false
|
||||
},
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{text: "已审核", value: true},
|
||||
{text: "未审核", value: false},
|
||||
],
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
|
||||
userId: "",
|
||||
infoShow: false,
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'info': info
|
||||
},
|
||||
methods: {
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
openApproval(item) {
|
||||
this.formData.id = item.id
|
||||
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||
this.formData.auditTime = moment().format('YYYY-MM-DD')
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
openRevoke(id) {
|
||||
this.$dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确定要撤回该申请吗?'
|
||||
}).then(() => {
|
||||
$.post('/platform/difficulty/schoolUnionFinalAudit/doEdit', { id }).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async doApproval(flag) {
|
||||
if (!this.formData.money || !this.formData.auditOpinion || !this.formData.auditSign) {
|
||||
this.$toast.fail('存在未填写的必填项,请填写完整后再次提交')
|
||||
return
|
||||
}
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/difficulty/schoolUnionFinalAudit/doReview', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.infoShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/difficulty/schoolUnionFinalAudit/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async initUnion(unionId) {
|
||||
this.unionList = await getUnions(unionId)
|
||||
this.unionList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.initUnion()
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.initUnion("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,369 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.van-doc-card {
|
||||
margin: 14px;
|
||||
padding: 12px 12px 12px 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 6px 0;
|
||||
}
|
||||
|
||||
.van-button--small {
|
||||
border-radius: 8px;
|
||||
height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-col {
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.title_span {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
left: -1px;
|
||||
top: 11px;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: #1867b0;
|
||||
}
|
||||
|
||||
.cus_overflow {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.van-dropdown-menu__item {
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.van-cell__title {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.van-cell__right-icon {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.van-sidebar-item {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.footer .van-button {
|
||||
height: 34px;
|
||||
border-radius: 6px;
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.join {
|
||||
background-color: #0e78c5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.info_tab .van-doc-card > div:first-child {
|
||||
border: 2px #0e78c5 solid;
|
||||
width: 26px;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 15px;
|
||||
color: #1867b0;
|
||||
font-weight: 600;
|
||||
margin: 10px 0 10px 0!important;
|
||||
padding:10px;
|
||||
position: relative;
|
||||
line-height: 1.1;
|
||||
font-family: inherit;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="困难帮扶校工会初审" left-arrow placeholder fixed
|
||||
@click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch"
|
||||
></van-search>
|
||||
<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="unionList" @change="doSearch();flushUnits(pageForm.unionId)" v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="auditList" @change="doSearch" v-model="pageForm.isAudit"></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 v-for="item in tableData" :key="item.id" class="van-doc-card">
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="width: 74%">
|
||||
<div class="van-ellipsis title">
|
||||
<span class="title_span">|</span>
|
||||
<span>{{item.userName + '(' + item.loginName + ')'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 4px">
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">性 别:</span><span>{{item.sex}}</span></van-col>
|
||||
<van-col span="24"><span style="color: grey">联系方式:</span>{{item.mobile}}</van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">所属工会:</span>{{item.unionName}}</van-col>
|
||||
<van-col span="24"><span style="color: grey">工作单位:</span><span>{{item.unitName}}</span></van-col>
|
||||
</van-row>
|
||||
<van-row>
|
||||
<van-col span="24"><span style="color: grey">款 项:</span>{{item.subsidyStandards}}</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
<span style="color: grey">当前状态:</span>
|
||||
<span>{{item.state_name}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<van-button size="small" @click="openView(item)"
|
||||
type="info" style="margin-right: 4px">查看
|
||||
</van-button>
|
||||
<van-button size="small" type="primary"
|
||||
v-if="item.stateId === 3030"
|
||||
@click="openApproval(item)"
|
||||
style="margin-right: 4px">审核
|
||||
</van-button>
|
||||
<van-button size="small" type="danger"
|
||||
v-if="[3040,3050,3060].includes(item.stateId)"
|
||||
@click="openRevoke(item.id)"
|
||||
style="margin-right: 4px">撤回
|
||||
</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else class="custom-image" image="/none.svg" 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>
|
||||
<info ref="infoRef"></info>
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{ '校工会初审' }}</div>
|
||||
<van-form>
|
||||
<van-field label="审核人员" readonly name="username" v-model="formData.username" required></van-field>
|
||||
<van-field label="审核时间" readonly name="auditTime" v-model="formData.auditTime" placeholder="请输入审核时间" required></van-field>
|
||||
<van-field label="审核金额" type="number" name="money" v-model="formData.money" placeholder="请输入审核金额" required></van-field>
|
||||
<van-field label="审核意见" name="auditOpinion" v-model="formData.auditOpinion" placeholder="请输入审核意见" required></van-field>
|
||||
<van-field label="审核签字" name="auditSign" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">审核签字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" v-model="formData.auditSign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click.submit="doApproval(1)">拒绝</van-button>
|
||||
<van-button type="danger" block @click.submit="doApproval(2)">返回修改</van-button>
|
||||
<van-button type="primary" block @click.submit="doApproval(3)">通过</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include('../common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
isAudit: false
|
||||
},
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
yearList: [],
|
||||
auditList: [
|
||||
{text: "已审核", value: true},
|
||||
{text: "未审核", value: false},
|
||||
],
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
|
||||
userId: "",
|
||||
infoShow: false,
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'info': info
|
||||
},
|
||||
methods: {
|
||||
openView(item) {
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = false
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
openApproval(item) {
|
||||
this.formData.id = item.id
|
||||
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||
this.formData.auditTime = moment().format('YYYY-MM-DD')
|
||||
this.infoShow = true
|
||||
this.showApprovalForm = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(item.id)
|
||||
})
|
||||
},
|
||||
openRevoke(id) {
|
||||
this.$dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确定要撤回该申请吗?'
|
||||
}).then(() => {
|
||||
$.post('/platform/difficulty/schoolUnionInitialAudit/doEdit', { id }).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async doApproval(flag) {
|
||||
if (!this.formData.money || !this.formData.auditOpinion || !this.formData.auditSign) {
|
||||
this.$toast.fail('存在未填写的必填项,请填写完整后再次提交')
|
||||
return
|
||||
}
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/difficulty/schoolUnionInitialAudit/doReview', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.infoShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast.fail(resp.msg)
|
||||
}
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.tableData = []
|
||||
this.finished = false
|
||||
this.pageData()
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
$.post('/platform/difficulty/schoolUnionInitialAudit/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
async initUnion(unionId) {
|
||||
this.unionList = await getUnions(unionId)
|
||||
this.unionList.forEach(v => {
|
||||
v.text = v.unionname
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unionList && this.unionList.length > 0) {
|
||||
this.unionList.unshift({ text: "全部工会", value: null })
|
||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
||||
}
|
||||
},
|
||||
async flushUnits(unionId) {
|
||||
this.unitList = await getUnits(unionId)
|
||||
this.unitList.forEach(v => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
if (this.unitList && this.unitList.length > 0) {
|
||||
this.unitList.unshift({ text: "全部单位", value: null })
|
||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
await this.initUnion()
|
||||
await this.flushUnits()
|
||||
} else {
|
||||
await this.initUnion("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
await this.flushUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
||||
this.doSearch()
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -3,26 +3,34 @@ layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="困难帮扶审核" left-arrow placeholder fixed @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
||||
<van-nav-bar title="困难帮扶审核" left-arrow placeholder fixed
|
||||
@click-left="history.back()"></van-nav-bar>
|
||||
|
||||
|
||||
<difficulty-info ref="info" :id.sync="id" title="分工会审核" :handle="handle">
|
||||
<template #handle>
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">分工会主席审核</div>
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
分工会主席审核
|
||||
</div>
|
||||
</div>
|
||||
<van-form>
|
||||
<van-field readonly value="${@shiro.getPrincipalProperty('username')}" name="username" label="审核人员"></van-field>
|
||||
<van-field
|
||||
readonly
|
||||
value="${@shiro.getPrincipalProperty('username')}"
|
||||
name="username"
|
||||
label="审核人员"
|
||||
></van-field>
|
||||
|
||||
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.auditOpinion"
|
||||
required
|
||||
rows="1"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
<van-field v-model="formData.auditOpinion"
|
||||
required
|
||||
rows="1"
|
||||
autosize
|
||||
label="审核意见"
|
||||
type="textarea"
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
@@ -34,71 +42,82 @@ layout("/mobile/platform.html"){
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px; padding: 0 25px">
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝</van-button>
|
||||
<van-button :color="themeColor" plain block @click="doAudit(1)">拒 绝
|
||||
</van-button>
|
||||
</van-col>
|
||||
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(2)">返回修改</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(2)">返回修改
|
||||
</van-button>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过</van-button>
|
||||
<van-button :color="themeColor" block @click="doAudit(3)">通 过
|
||||
</van-button>
|
||||
</van-col>
|
||||
</van-row>
|
||||
|
||||
</van-form>
|
||||
</template>
|
||||
</difficulty-info>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
handle: true,
|
||||
id: "",
|
||||
formData: {}
|
||||
formData: {},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"mobile-sign": httpVueLoader("/components/sign/mobileSign.vue"),
|
||||
"difficulty-info": httpVueLoader("/components/mobile/difficulty/info.vue?v=" + new Date().getTime())
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
'difficulty-info': httpVueLoader('/components/mobile/difficulty/info.vue?v=' + new Date().getTime()),
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
async doAudit(pass) {
|
||||
if (!this.formData.auditOpinion) {
|
||||
this.$toast.fail("请填写审核意见")
|
||||
this.$toast.fail('请填写审核意见');
|
||||
return
|
||||
}
|
||||
this.$refs.signature.submitSign()
|
||||
await this.$refs.signature.updateSign()
|
||||
this.formData.pass = pass
|
||||
const resp = await $.post("/platform/fw/difficulty/unionchairman/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success("审核成功")
|
||||
if(resp.code===0){
|
||||
this.$toast.success('审核成功');
|
||||
setTimeout(() => {
|
||||
location.href = "/mobile/difficulty/audit"
|
||||
location.href = '/mobile/difficulty/audit'
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toast.fail("审核失败")
|
||||
}else{
|
||||
this.$toast.fail('审核失败');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.id = GetQueryString("id")
|
||||
this.formData = {
|
||||
id: this.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format("YYYY-MM-DD"),
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
auditOpinion: null,
|
||||
auditSign: ""
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,69 +3,66 @@
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">活动时间</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy"
|
||||
></el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">活动名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-input clearable placeholder="请输入活动名称"
|
||||
v-model="pageForm.name"></el-input>
|
||||
<el-input clearable placeholder="请输入活动名称" v-model="pageForm.name"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索
|
||||
</el-button>
|
||||
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="活动列表">
|
||||
<table-tool :app="this" label="活动列表"></table-tool>
|
||||
|
||||
</table-tool>
|
||||
|
||||
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
|
||||
v-loading="tableLoading">
|
||||
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:size="tableSize"
|
||||
@sort-change="pageOrder"
|
||||
class="vi-table"
|
||||
row-key="id"
|
||||
style="width: 100%; margin-bottom: 20px"
|
||||
v-loading="tableLoading"
|
||||
>
|
||||
<el-table-column
|
||||
:index="indexMethod"
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns">
|
||||
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='time'">
|
||||
<span>
|
||||
{{moment(row.startTime).format('YYYY-MM-DD')}} - {{moment(row.endTime).format('YYYY-MM-DD')}}
|
||||
</span>
|
||||
<span>{{moment(row.startTime).format('YYYY-MM-DD')}} - {{moment(row.endTime).format('YYYY-MM-DD')}}</span>
|
||||
</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='projectTypeName'">
|
||||
{{row.projectTypeName}}({{row.projectTypeCode}})
|
||||
</template>
|
||||
<template scope="{row}" v-else-if="column.prop=='projectTypeName'">{{row.projectTypeName}}({{row.projectTypeCode}})</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='tussueName'">
|
||||
<span v-if="row.type==40002">{{row.unionname?row.unionname:'暂无'}}</span>
|
||||
@@ -74,65 +71,61 @@
|
||||
</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='countUser'">
|
||||
<el-tag type="success" v-if="row.countUser>0">已报名({{row.countUser}})
|
||||
</el-tag>
|
||||
<el-tag type="success" v-if="row.countUser>0">已报名({{row.countUser}})</el-tag>
|
||||
<el-tag type="danger" v-else>未报名</el-tag>
|
||||
</template>
|
||||
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
prop="userOnline" width="200px">
|
||||
<el-table-column align="center" header-align="center" label="操作" prop="userOnline" width="200px">
|
||||
<template scope="{row}">
|
||||
<el-button :loading="row.loading" @click="openView(row)" size="mini"
|
||||
type="primary">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button :loading="row.loading" @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<template
|
||||
v-if="moment(row.applyStartTime).valueOf()<moment().valueOf()&&moment(row.applyEndTime).valueOf()>moment().valueOf()">
|
||||
<el-button :loading="row.loading" @click="openAudit(row)"
|
||||
size="mini"
|
||||
type="primary" v-if="row.signUpMethod === 2">
|
||||
v-if="moment(row.applyStartTime).valueOf()<moment().valueOf()&&moment(row.applyEndTime).valueOf()>moment().valueOf()"
|
||||
>
|
||||
<el-button :loading="row.loading" @click="openAudit(row)" size="mini" type="primary" v-if="row.signUpMethod === 2">
|
||||
报名
|
||||
</el-button>
|
||||
<el-button :loading="row.loading" @click="doAdd(row)" size="mini"
|
||||
type="primary"
|
||||
v-if="row.signUpMethod === 1&&row.countUser===0">
|
||||
<el-button :loading="row.loading" @click="openAudit(row)" size="mini" type="primary" v-if="row.signUpMethod === 3">
|
||||
报名
|
||||
</el-button>
|
||||
<el-button :loading="row.loading" @click="doDelete(row)" size="mini"
|
||||
type="danger"
|
||||
v-if="row.countUser>0&&row.signUpMethod === 1">
|
||||
<el-button
|
||||
:loading="row.loading"
|
||||
@click="doAdd(row)"
|
||||
size="mini"
|
||||
type="primary"
|
||||
v-if="row.signUpMethod === 1&&row.countUser===0"
|
||||
>
|
||||
报名
|
||||
</el-button>
|
||||
<el-button
|
||||
:loading="row.loading"
|
||||
@click="doDelete(row)"
|
||||
size="mini"
|
||||
type="danger"
|
||||
v-if="row.countUser>0&&row.signUpMethod === 1"
|
||||
>
|
||||
取消报名
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-transfer
|
||||
:data="leftData"
|
||||
:filter-method="filterMethod"
|
||||
:props="{key: 'id',label: 'name'}"
|
||||
:titles="['可报人员名单', '当前选择']"
|
||||
filterable
|
||||
ref="transfer"
|
||||
v-loading="tableLoading"
|
||||
v-model="rightData">
|
||||
:data="leftData"
|
||||
:filter-method="filterMethod"
|
||||
:props="{key: 'id',label: 'name'}"
|
||||
:titles="['可报人员名单', '当前选择']"
|
||||
filterable
|
||||
ref="transfer"
|
||||
v-loading="tableLoading"
|
||||
v-model="rightData"
|
||||
>
|
||||
<template #left-footer>
|
||||
<div></div>
|
||||
</template>
|
||||
@@ -141,208 +134,205 @@
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<el-table :data="escalationTableData" max-height="500px">
|
||||
<el-table-column
|
||||
align="center" header-align="center" label="序号"
|
||||
type="index"
|
||||
width="100">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index" width="100"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="姓名"
|
||||
prop="username"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名" prop="username"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="教工号"
|
||||
prop="loginname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="教工号" prop="loginname"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="单位"
|
||||
prop="unitname"
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位" prop="unitname" sortable></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
sortable>
|
||||
<!--<el-table-column align="center" header-align="center" label="操作" sortable>
|
||||
<template scope="{$index,row}">
|
||||
<el-button @click="rightData.splice($index,1)" size="mini"
|
||||
type="danger">删除
|
||||
</el-button>
|
||||
<el-button @click="rightData.splice($index,1)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>-->
|
||||
</el-table>
|
||||
</el-card>
|
||||
<el-row class="mt10 text-right">
|
||||
|
||||
<el-button @click="doBatchAdd" class="mt10" type="primary"
|
||||
v-loading="submitLoading">
|
||||
提交
|
||||
</el-button>
|
||||
<el-button @click="doBatchAdd" class="mt10" type="primary" v-loading="submitLoading">提交</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<tissue-info ref="info"></tissue-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
submitLoading: false,
|
||||
pageForm: {
|
||||
type: type,
|
||||
year: new Date().getFullYear() + ''
|
||||
year: new Date().getFullYear() + ""
|
||||
},
|
||||
tableColumns: [
|
||||
{prop: 'name', label: '活动名称'},
|
||||
{prop: 'address', label: '活动地点'},
|
||||
{prop: 'projectTypeName', label: '活动项目类型'},
|
||||
{prop: 'tussueName', label: '举办单位'},
|
||||
{prop: 'time', label: '活动日期'},
|
||||
{prop: 'applyTime', label: '创建时间', sortable: true},
|
||||
{prop: 'countUser', label: '报名人数', sortable: true}
|
||||
|
||||
{ prop: "name", label: "活动名称" },
|
||||
{ prop: "address", label: "活动地点" },
|
||||
{ prop: "projectTypeName", label: "活动项目类型" },
|
||||
{ prop: "tussueName", label: "举办单位" },
|
||||
{ prop: "time", label: "活动日期" },
|
||||
{ prop: "applyTime", label: "创建时间", sortable: true },
|
||||
{ prop: "countUser", label: "报名人数", sortable: true }
|
||||
],
|
||||
leftData: [],
|
||||
rightData: [],
|
||||
rightData: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue?v=' + new Date().getTime()),
|
||||
"tissue-info": httpVueLoader("/components/activity/school/tissueInfo.vue?v=" + new Date().getTime())
|
||||
},
|
||||
computed: {
|
||||
escalationTableData() {
|
||||
return this.leftData.filter(v => this.rightData.includes(v.id))
|
||||
return this.leftData.filter((v) => this.rightData.includes(v.id))
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
const { id } = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
async doBatchAdd() {
|
||||
if (this.rightData && this.rightData.length > this.rowData.teamNum && this.rowData.signUpMethod === 3) {
|
||||
this.$message.error("该模式组队限制人数为" + this.rowData.teamNum + "人!")
|
||||
return
|
||||
}
|
||||
|
||||
this.submitLoading = true
|
||||
const {
|
||||
code,
|
||||
msg
|
||||
} = await $.get('/mobile/activity/unionActivity/doSaveUnionRegister', {
|
||||
const { code, msg } = await $.get("/mobile/activity/unionActivity/doSaveUnionRegister", {
|
||||
activityId: this.tissueId,
|
||||
personIds: JSON.stringify(this.rightData)
|
||||
})
|
||||
if (code === 0) {
|
||||
this.notifySuccess(msg)
|
||||
this.$message.success(msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyError(msg)
|
||||
this.$message.warning(msg)
|
||||
}
|
||||
this.submitLoading = false
|
||||
|
||||
},
|
||||
async doDelete(row) {
|
||||
const confirm = await this.$confirm('确认要取消报名吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
const confirm = await this.$confirm("确认要取消报名吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
row.loading = true
|
||||
const {
|
||||
code,
|
||||
msg
|
||||
} = await $.get('/mobile/activity/unionActivity/doSingleCancelRegister', {
|
||||
const { code, msg } = await $.get("/mobile/activity/unionActivity/doSingleCancelRegister", {
|
||||
activityId: row.id
|
||||
})
|
||||
if (code === 0) {
|
||||
this.notifySuccess(msg)
|
||||
this.$message.success(msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyError(msg)
|
||||
this.$message.warning(msg)
|
||||
}
|
||||
row.loading = false
|
||||
}
|
||||
},
|
||||
async doAdd(row) {
|
||||
const confirm = await this.$confirm('确认要报名吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
const confirm = await this.$confirm("确认要报名吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
row.loading = true
|
||||
const {
|
||||
code,
|
||||
msg
|
||||
} = await $.get('/mobile/activity/unionActivity/doSingleRegister', {
|
||||
const { code, msg } = await $.get("/mobile/activity/unionActivity/doSingleRegister", {
|
||||
activityId: row.id
|
||||
})
|
||||
if (code === 0) {
|
||||
this.notifySuccess(msg)
|
||||
this.$message.success(msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyError(msg)
|
||||
this.$message.warning(msg)
|
||||
}
|
||||
row.loading = false
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
async openAudit(row) {
|
||||
console.log(row)
|
||||
this.tissueId = row.id
|
||||
|
||||
const flag = await getScopeUser(row.groupId)
|
||||
if (!flag) {
|
||||
this.$message.warning("您没有报名权限!")
|
||||
return
|
||||
}
|
||||
|
||||
this.tableLoading = true
|
||||
this.$refs.guava.edit()
|
||||
const {data} = await $.get('/platform/activity/applyUser/selfUnionUsers', {
|
||||
const { data } = await $.get("/platform/activity/applyUser/selfUnionUsers", {
|
||||
groupId: row.groupId
|
||||
})
|
||||
this.leftData = data
|
||||
|
||||
const {data: rightData} = await $.get('/platform/activity/applyUser/getReportedUser', {
|
||||
const { data: rightData } = await $.get("/platform/activity/applyUser/getReportedUser", {
|
||||
tissueId: row.id
|
||||
})
|
||||
this.leftData = data.map(user => {
|
||||
return this.getTransProp(user)
|
||||
})
|
||||
this.rightData = rightData.map(user => {
|
||||
return this.getTransProp(user)
|
||||
this.leftData = data.map((user) => {
|
||||
return this.getTransProp(user, row.signUpMethod)
|
||||
})
|
||||
// this.rightData = rightData.map((user) => {
|
||||
// return this.getTransProp(user)
|
||||
// })
|
||||
|
||||
this.rightData = rightData
|
||||
//如果是组队报名,默认添加自己
|
||||
if (rightData && rightData.length === 0 && row.signUpMethod === 3) {
|
||||
rightData.push("${@shiro.getPrincipalProperty('id')}")
|
||||
}
|
||||
|
||||
this.tableLoading = false
|
||||
},
|
||||
getTransProp(user) {
|
||||
getTransProp(user, signUpMethod) {
|
||||
return {
|
||||
id: user.id,
|
||||
username:user.username,
|
||||
loginname:user.loginname,
|
||||
sex:user.sex,
|
||||
unionname:user.unionname,
|
||||
unitname:user.unitname,
|
||||
userState:user.userState,
|
||||
username: user.username,
|
||||
loginname: user.loginname,
|
||||
sex: user.sex,
|
||||
unionname: user.unionname,
|
||||
unitname: user.unitname,
|
||||
userState: user.userState,
|
||||
name: user.username + "-" + user.loginname + "-" + user.unitname,
|
||||
//如果是组队报名,并且userId等于当前登入人禁用选项
|
||||
disabled: signUpMethod === 3 && user.id === "${@shiro.getPrincipalProperty('id')}" ? true : false
|
||||
}
|
||||
},
|
||||
filterMethod(query, item) {
|
||||
if (!query){
|
||||
if (!query) {
|
||||
return -1
|
||||
}
|
||||
return item.name.indexOf(query) > -1;
|
||||
return item.name.indexOf(query) > -1
|
||||
},
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
sublime.showLoadingbar()
|
||||
this.tableLoading = true
|
||||
$.post("/platform/activity/applyUser/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
}, "json");
|
||||
$.post(
|
||||
"/platform/activity/applyUser/pageData",
|
||||
this.pageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar()
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
@@ -354,7 +344,7 @@
|
||||
<style>
|
||||
.flexible-gifts {
|
||||
display: flex;
|
||||
flex-direction: column
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flexible-gifts-item {
|
||||
@@ -387,7 +377,7 @@
|
||||
}
|
||||
|
||||
.avatar-uploader .el-upload:hover {
|
||||
border-color: #409EFF;
|
||||
border-color: #409eff;
|
||||
}
|
||||
|
||||
.avatar-uploader-icon {
|
||||
@@ -428,4 +418,3 @@
|
||||
margin: 0 10px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
@@ -1,34 +1,27 @@
|
||||
<div class="platform" id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">活动时间</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
@change="getActivityByYearOrType"
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
@change="getActivityByYearOrType"
|
||||
placeholder="选择年"
|
||||
style="width: 100%"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy"
|
||||
></el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">活动名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-select filterable placeholder="请选择活动" style="width: 100%"
|
||||
v-model="pageForm.activityId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in activityList">
|
||||
</el-option>
|
||||
<el-select filterable placeholder="请选择活动" style="width: 100%" v-model="pageForm.activityId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in activityList"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,15 +29,8 @@
|
||||
<div class="search-item" v-if="type==40002||type==40001">
|
||||
<div class="search-item-label">工会名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-select clearable filterable placeholder="请选择工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.unionname"
|
||||
:value="item.id"
|
||||
v-for="item in unionList">
|
||||
</el-option>
|
||||
<el-select clearable filterable placeholder="请选择工会" style="width: 100%" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.unionname" :value="item.id" v-for="item in unionList"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -52,99 +38,95 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">姓名/工号</div>
|
||||
<div class="search-item-option">
|
||||
<el-input @keyup.enter.native="doSearch" clearable
|
||||
placeholder="请输入姓名/工号"
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="姓名/工号" slot="prepend"
|
||||
style="width: 80px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入姓名/工号" v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="姓名/工号" slot="prepend" style="width: 80px" v-model="pageForm.searchName">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginanme"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索
|
||||
</el-button>
|
||||
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="人员列表">
|
||||
<template #func>
|
||||
<el-button @click="doExport" icon="el-icon-s-promotion" type="primary">导出
|
||||
</el-button>
|
||||
<el-button @click="doExport" icon="el-icon-s-promotion" type="primary">导出</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
|
||||
v-loading="tableLoading">
|
||||
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:size="tableSize"
|
||||
@sort-change="pageOrder"
|
||||
class="vi-table"
|
||||
row-key="id"
|
||||
style="width: 100%; margin-bottom: 20px"
|
||||
v-loading="tableLoading"
|
||||
>
|
||||
<el-table-column
|
||||
:index="indexMethod"
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
align="center"
|
||||
header-align="center"
|
||||
sortable
|
||||
v-for="column in tableColumns">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
v-if="${@shiro.hasRole('sysadmin')}"
|
||||
width="100">
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
align="center"
|
||||
header-align="center"
|
||||
sortable
|
||||
v-for="column in tableColumns"
|
||||
></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" v-if="${@shiro.hasRole('sysadmin')}" width="100">
|
||||
<template scope="{row}">
|
||||
<el-button @click="doDelete(row)" size="mini" type="danger">
|
||||
删除
|
||||
</el-button>
|
||||
<el-button @click="doDelete(row)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
|
||||
|
||||
</el-card>
|
||||
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
unionList: {},
|
||||
activityList: {},
|
||||
pageForm: {
|
||||
unionId: '',
|
||||
unionId: "",
|
||||
searchName: "u.username",
|
||||
type: type,
|
||||
year: new Date().getFullYear() + ''
|
||||
year: new Date().getFullYear() + ""
|
||||
},
|
||||
tableColumns: [
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'sex', label: '性别'},
|
||||
{prop: 'mobile', label: '联系方式'},
|
||||
{prop: 'unitname', label: '所属单位'},
|
||||
{prop: 'unionname', label: '所属工会'},
|
||||
{prop: 'applyDateTime', label: '报名时间'}
|
||||
],
|
||||
{ prop: "username", label: "姓名" },
|
||||
{ prop: "loginname", label: "工号" },
|
||||
{ prop: "sex", label: "性别" },
|
||||
{ prop: "mobile", label: "联系方式" },
|
||||
{ prop: "unitname", label: "所属单位" },
|
||||
{ prop: "unionname", label: "所属工会" },
|
||||
{ prop: "applyDateTime", label: "报名时间" }
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doDelete(row) {
|
||||
this.$confirm('您确认要取消报名吗?', '提示', {type: 'warning'}).then(async () => {
|
||||
const resp = await $.post('/mobile/activity/unionActivity/doSingleCancelRegister', {
|
||||
this.$confirm("您确认要取消报名吗?", "提示", { type: "warning" }).then(async () => {
|
||||
const resp = await $.post("/mobile/activity/unionActivity/doSingleCancelRegister", {
|
||||
activityId: this.pageForm.activityId,
|
||||
applyUserId: row.applyUserId,
|
||||
id: row.atpId
|
||||
@@ -159,28 +141,32 @@
|
||||
})
|
||||
},
|
||||
async doExport() {
|
||||
const {activityId, unionId} = this.pageForm
|
||||
window.open("/platform/activity/info/mange/doExportUser?id=" + activityId +
|
||||
"&unionId=" + unionId)
|
||||
const { activityId, unionId } = this.pageForm
|
||||
window.open("/platform/activity/info/mange/doExportUser?id=" + activityId + "&unionId=" + unionId)
|
||||
},
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
sublime.showLoadingbar()
|
||||
this.tableLoading = true
|
||||
$.post("/platform/activity/user/statistics/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.notifyError(data.msg)
|
||||
}
|
||||
}, "json");
|
||||
$.post(
|
||||
"/platform/activity/user/statistics/pageData",
|
||||
this.pageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar()
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.notifyError(data.msg)
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
},
|
||||
async getActivityByYearOrType() {
|
||||
const resp = await $.get("/platform/activity/user/statistics/getActivityByYearOrType", {
|
||||
type: this.pageForm.type,
|
||||
year: this.pageForm.year,
|
||||
year: this.pageForm.year
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.activityList = resp.data
|
||||
@@ -191,12 +177,11 @@
|
||||
}
|
||||
this.pageData()
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getActivityByYearOrType()
|
||||
this.unionList = await getUnions(null)
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -30,18 +30,13 @@ layout("/layouts/platform.html"){
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never"
|
||||
style="margin-bottom: 5px;padding: 0px 10px 5px;">
|
||||
|
||||
<el-card shadow="never" style="margin-bottom: 5px; padding: 0px 10px 5px">
|
||||
<el-row type="flex" align="middle" class="query-row">
|
||||
<el-col class="query-row-title">基础查询:</el-col>
|
||||
<el-col class="query-row-content">
|
||||
<div class="btn-group tool-button">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 100px;">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword" @keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型" style="width: 100px">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
</el-select>
|
||||
@@ -49,44 +44,40 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
<el-row class="btn-group tool-button">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 200px;"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 200px" clearable="true" filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-row>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<dict-select v-model="pageForm.personType" style="width: 200px"
|
||||
clearable placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.personType"
|
||||
style="width: 200px"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"
|
||||
></dict-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<dict-select v-model="pageForm.userState" style="width: 200px" clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.userState"
|
||||
style="width: 200px"
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"
|
||||
></dict-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" icon="el-icon-search"
|
||||
@click="doSearch"></el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right">
|
||||
<div class="btn-group tool-button">
|
||||
<el-button @click="clearHistory" slot="reference"
|
||||
type="primary">
|
||||
清空历史记录
|
||||
</el-button>
|
||||
<el-button :loading="updateBirthdayLoading" @click="updateBirthday"
|
||||
slot="reference" type="primary">
|
||||
<el-button @click="clearHistory" slot="reference" type="primary">清空历史记录</el-button>
|
||||
<el-button :loading="updateBirthdayLoading" @click="updateBirthday" slot="reference" type="primary">
|
||||
根据身份证号设置出生日期
|
||||
</el-button>
|
||||
<el-button slot="reference" type="primary"
|
||||
@click="checkSource" :loading="updateLoading">
|
||||
更新
|
||||
</el-button>
|
||||
<el-button slot="reference" type="primary" @click="checkSource" :loading="updateLoading">更新</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
@@ -97,23 +88,26 @@ layout("/layouts/platform.html"){
|
||||
<el-col class="query-row-content">
|
||||
<div class="btn-group tool-button">
|
||||
<el-date-picker
|
||||
style="width: 200px"
|
||||
v-model="pageForm.changeDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="更新日期">
|
||||
</el-date-picker>
|
||||
style="width: 200px"
|
||||
v-model="pageForm.changeDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="更新日期"
|
||||
></el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<enum-select v-model="pageForm.changeType" value="code"
|
||||
label="description"
|
||||
style="width: 200px"
|
||||
clearable placeholder="异动类型"
|
||||
enum="UserChangeType"></enum-select>
|
||||
<enum-select
|
||||
v-model="pageForm.changeType"
|
||||
value="code"
|
||||
label="description"
|
||||
style="width: 200px"
|
||||
clearable
|
||||
placeholder="异动类型"
|
||||
enum="UserChangeType"
|
||||
></enum-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" icon="el-icon-search"
|
||||
@click="doSearch"></el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
<el-button type="primary" @click="exportChange">导出异动人员</el-button>
|
||||
</div>
|
||||
<!--<div class="btn-group tool-button">
|
||||
@@ -122,67 +116,85 @@ layout("/layouts/platform.html"){
|
||||
</div>-->
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder" :key="tableKey"
|
||||
v-loading="tableLoading"
|
||||
lazy
|
||||
:load="load"
|
||||
:tree-props="{hasChildren: 'hasHis'}"
|
||||
border
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%"
|
||||
row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
:key="tableKey"
|
||||
v-loading="tableLoading"
|
||||
lazy
|
||||
:load="load"
|
||||
:tree-props="{hasChildren: 'hasHis'}"
|
||||
border
|
||||
>
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
type="index"
|
||||
:index="indexMethod"
|
||||
label="序号"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column label="工号" prop="loginname" header-align="center"
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center"
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center"
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center"
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="工号" prop="loginname" header-align="center" align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center" align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center" align="center" show-overflow-tooltip></el-table-column>
|
||||
<!-- <el-table-column label="出生日期" prop="birthday" header-align="center"-->
|
||||
<!-- align="center" show-overflow-tooltip></el-table-column>-->
|
||||
<!-- <el-table-column label="身份证" prop="idcard" header-align="center"-->
|
||||
<!-- align="center" show-overflow-tooltip></el-table-column>-->
|
||||
<el-table-column label="人员类型" prop="personType" header-align="center" sortable
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="在职状态" prop="userState" header-align="center" sortable
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column
|
||||
label="人员类型"
|
||||
prop="personType"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="在职状态"
|
||||
prop="userState"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column label="所属单位" prop="unitid" header-align="center"
|
||||
align="center" show-overflow-tooltip sortable>
|
||||
<el-table-column label="所属单位" prop="unitid" header-align="center" align="center" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span v-if="row.unitid"> {{row.unitname}}({{row.unitid}})</span>
|
||||
<span v-if="row.unitid">{{row.unitname}}({{row.unitid}})</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="异动信息" header-align="center">
|
||||
<el-table-column label="更新时间" prop="changeTime" min-width="100px"
|
||||
header-align="center" sortable
|
||||
align="center" show-overflow-tooltip>
|
||||
<el-table-column
|
||||
label="更新时间"
|
||||
prop="changeTime"
|
||||
min-width="100px"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<!-- <template scope="{row:{changeTime}}">
|
||||
{{changeTime?changeTime:'暂无'}}
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
<el-table-column label="异动类型" prop="changeType" header-align="center"
|
||||
align="center" show-overflow-tooltip sortable>
|
||||
<el-table-column label="异动类型" prop="changeType" header-align="center" align="center" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span style="color: #0e78c5;cursor: pointer" @click="openUserChangeInfo(row)">
|
||||
<span style="color: #0e78c5; cursor: pointer" @click="openUserChangeInfo(row)">
|
||||
{{getChangeTypes(row.changeTypes)}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作"
|
||||
min-width="80px">
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" min-width="80px">
|
||||
<template scope="scope">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button plain size="mini">
|
||||
@@ -190,9 +202,7 @@ layout("/layouts/platform.html"){
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="{type:'view',data:scope.row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'view',data:scope.row}">查看</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -200,34 +210,25 @@ layout("/layouts/platform.html"){
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
<template #view>
|
||||
|
||||
<el-tabs v-model="active">
|
||||
<el-tab-pane label="个人信息" name="info">
|
||||
<member ref="memberInfo" :source="source" :id="userId" view></member>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<el-dialog
|
||||
title="选择数据源"
|
||||
:visible.sync="dialogVisible"
|
||||
width="50%">
|
||||
<el-dialog title="选择数据源" :visible.sync="dialogVisible" width="50%">
|
||||
<el-timeline>
|
||||
<el-timeline-item timestamp="数据源" placement="top">
|
||||
<el-radio-group class="checkGroup" v-model="sourceTime" style="width: 100%">
|
||||
<el-row v-for="item in latelyUpdateTimes" style="margin-bottom: 10px">
|
||||
<el-radio :key="item.pullTime" style="width: 100%"
|
||||
:label="item.pullTime" border>
|
||||
时间:{{item.pullTime}}<span
|
||||
style="float: right;color: #F56C6C">rows: {{item.num}}</span>
|
||||
<el-radio :key="item.pullTime" style="width: 100%" :label="item.pullTime" border>
|
||||
时间:{{item.pullTime}}
|
||||
<span style="float: right; color: #f56c6c">rows: {{item.num}}</span>
|
||||
</el-radio>
|
||||
</el-row>
|
||||
</el-radio-group>
|
||||
@@ -246,19 +247,25 @@ layout("/layouts/platform.html"){
|
||||
<el-timeline-item timestamp="选择更新组别" placement="top" v-if="sourceType=='part'">
|
||||
<el-row class="query-row">
|
||||
<el-col span="12">
|
||||
<el-select v-model="partGroupId" clearable filterable
|
||||
placeholder="请选择更新组别" style="width: 100%">
|
||||
<el-select v-model="partGroupId" clearable filterable placeholder="请选择更新组别" style="width: 100%">
|
||||
<el-option
|
||||
v-for="column in partGroupInfos"
|
||||
:key="column.groupId"
|
||||
:label="column.groupName"
|
||||
:value="column.groupId">
|
||||
</el-option>
|
||||
v-for="column in partGroupInfos"
|
||||
:key="column.groupId"
|
||||
:label="column.groupName"
|
||||
:value="column.groupId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-checkbox style="margin-left: 10px;margin-top: 4px" v-model="isInvert" label="是否更新此组别之外人员" border></el-checkbox>
|
||||
<el-button style="margin-left: 10px;margin-top: 4px" type="primary" @click="partUpdate(sourceType)">设置部分更新人员</el-button>
|
||||
<el-checkbox
|
||||
style="margin-left: 10px; margin-top: 4px"
|
||||
v-model="isInvert"
|
||||
label="是否更新此组别之外人员"
|
||||
border
|
||||
></el-checkbox>
|
||||
<el-button style="margin-left: 10px; margin-top: 4px" type="primary" @click="partUpdate(sourceType)">
|
||||
设置部分更新人员
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-timeline-item>
|
||||
@@ -266,42 +273,32 @@ layout("/layouts/platform.html"){
|
||||
<el-timeline-item timestamp="过滤字段" placement="top" v-if="sourceType=='part'">
|
||||
<el-row class="query-row">
|
||||
<el-col class="query-title" span="6">过滤字段:</el-col>
|
||||
<el-col style="justify-content: end;margin-left: 10px">
|
||||
<el-select v-model="columnNames" clearable filterable
|
||||
placeholder="请选择字段" style="width: 100%" multiple>
|
||||
<el-col style="justify-content: end; margin-left: 10px">
|
||||
<el-select v-model="columnNames" clearable filterable placeholder="请选择字段" style="width: 100%" multiple>
|
||||
<el-option
|
||||
v-for="column in columnInfos"
|
||||
:key="column.COLUMN_NAME"
|
||||
:label="column.COLUMN_COMMENT"
|
||||
:value="column.COLUMN_NAME">
|
||||
</el-option>
|
||||
v-for="column in columnInfos"
|
||||
:key="column.COLUMN_NAME"
|
||||
:label="column.COLUMN_COMMENT"
|
||||
:value="column.COLUMN_NAME"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col class="query-row">
|
||||
<span style="color: red;margin-left: 10px">该条件为更新时忽略某字段,如无需忽略请勿填充该条件</span>
|
||||
<span style="color: red; margin-left: 10px">该条件为更新时忽略某字段,如无需忽略请勿填充该条件</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" :loading="updateLoading" @click="doUpdate">确 定</el-button>
|
||||
</span>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<el-drawer
|
||||
:wrapperClosable="false"
|
||||
title="我是标题" size="78%"
|
||||
:visible.sync="userScopeDialog"
|
||||
:append-to-body="true"
|
||||
:with-header="false">
|
||||
<div style="padding: 0px 16px;" class="clearfix">
|
||||
<el-button icon="el-icon-back" style="font-size: 16px" type="text"
|
||||
@click="doBack()">返回
|
||||
</el-button>
|
||||
<el-drawer :wrapperClosable="false" title="我是标题" size="78%" :visible.sync="userScopeDialog" :append-to-body="true" :with-header="false">
|
||||
<div style="padding: 0px 16px" class="clearfix">
|
||||
<el-button icon="el-icon-back" style="font-size: 16px" type="text" @click="doBack()">返回</el-button>
|
||||
</div>
|
||||
<guava>
|
||||
<el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
|
||||
@@ -316,25 +313,23 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
</guava>
|
||||
</el-drawer>
|
||||
|
||||
<user-change-history ref="userChangeHistory"></user-change-history>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
active: 'info',
|
||||
active: "info",
|
||||
updateLoading: false,
|
||||
updateBirthdayLoading: false,
|
||||
pageForm: {
|
||||
searchName: "u.username",
|
||||
searchName: "u.username"
|
||||
},
|
||||
|
||||
userId: "",
|
||||
@@ -345,36 +340,36 @@ layout("/layouts/platform.html"){
|
||||
dialogVisible: false,
|
||||
sourceTime: "",
|
||||
changeType: {},
|
||||
source: 'sys_user',
|
||||
source: "sys_user",
|
||||
sourceType: null,
|
||||
|
||||
activeName: '1',
|
||||
activeName: "1",
|
||||
userScopeDialog: false,
|
||||
columnNames: [],
|
||||
columnInfos: [],
|
||||
upDataCount: '0',
|
||||
isUpSet: '0',
|
||||
upDataCount: "0",
|
||||
isUpSet: "0",
|
||||
|
||||
partGroupId: '',
|
||||
partGroupId: "",
|
||||
partGroupInfos: [],
|
||||
isInvert:'',
|
||||
isInvert: ""
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue?v=1.0.0'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
'user-upset': httpVueLoader('/components/userpartupdate/UserPartUpdateSet.vue'),
|
||||
'user-upset-data': httpVueLoader('/components/userpartupdate/UserDataPartUpSet.vue'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=' + new Date().getTime()),
|
||||
guava: httpVueLoader("/components/plugins/Guava.vue?v=1.0.0"),
|
||||
"dict-select": httpVueLoader("/components/plugins/DictSelect.vue?v=1.0.0"),
|
||||
member: httpVueLoader("/components/member/MemberInfo.vue?v=1.0.3"),
|
||||
"mem-change-records": httpVueLoader("/components/member/MemChangeRecords.vue?v=1.0.2"),
|
||||
"user-upset": httpVueLoader("/components/userpartupdate/UserPartUpdateSet.vue"),
|
||||
"user-upset-data": httpVueLoader("/components/userpartupdate/UserDataPartUpSet.vue"),
|
||||
"user-change-history": httpVueLoader("/components/userChangeHistory/userChangeHistory.vue?v=" + new Date().getTime())
|
||||
},
|
||||
methods: {
|
||||
async openUserChangeInfo({hisId}) {
|
||||
async openUserChangeInfo({ hisId }) {
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
|
||||
},
|
||||
async getColumnInfo() {
|
||||
const {data, msg, code} = await $.post('/platform/activity/basic/scope/getUserTableColumnInfo')
|
||||
const { data, msg, code } = await $.post("/platform/activity/basic/scope/getUserTableColumnInfo")
|
||||
if (code !== 0) {
|
||||
this.$notify.warning(msg)
|
||||
return
|
||||
@@ -382,12 +377,12 @@ layout("/layouts/platform.html"){
|
||||
this.columnInfos = data
|
||||
},
|
||||
clearHistory() {
|
||||
this.$confirm('您确定要清空历史记录吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
this.$confirm("您确定要清空历史记录吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
const resp = await $.post(loc() + '/clearHistory')
|
||||
const resp = await $.post(loc() + "/clearHistory")
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.doSearch()
|
||||
@@ -397,20 +392,20 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
async updateBirthday() {
|
||||
const confirm = await this.$confirm('是否确定根据身份证号更新出生日期?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
const confirm = await this.$confirm("是否确定根据身份证号更新出生日期?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
this.updateBirthdayLoading = true
|
||||
const resp = await $.post(loc() + '/updateBirthday')
|
||||
const resp = await $.post(loc() + "/updateBirthday")
|
||||
this.updateBirthdayLoading = false
|
||||
}
|
||||
},
|
||||
async load(tree, treeNode, resolve) {
|
||||
const {loginname} = tree
|
||||
const resp = await $.get(loc() + "/historyUsers", {loginname})
|
||||
const { loginname } = tree
|
||||
const resp = await $.get(loc() + "/historyUsers", { loginname })
|
||||
if (resp.code === 0) {
|
||||
resolve(resp.data)
|
||||
} else {
|
||||
@@ -420,54 +415,54 @@ layout("/layouts/platform.html"){
|
||||
checkSource() {
|
||||
if (!this.latelyUpdateTimes.length) {
|
||||
this.$notify({
|
||||
title: '警告',
|
||||
message: '没有可供更新的数据源',
|
||||
type: 'warning'
|
||||
});
|
||||
title: "警告",
|
||||
message: "没有可供更新的数据源",
|
||||
type: "warning"
|
||||
})
|
||||
return
|
||||
}
|
||||
this.sourceTime = ''
|
||||
this.sourceTime = ""
|
||||
this.dialogVisible = true
|
||||
// this.doUpdate()
|
||||
},
|
||||
doUpdate() {
|
||||
if (!this.sourceTime) {
|
||||
this.$notify({
|
||||
title: '警告',
|
||||
message: '请选择数据源',
|
||||
type: 'warning'
|
||||
});
|
||||
title: "警告",
|
||||
message: "请选择数据源",
|
||||
type: "warning"
|
||||
})
|
||||
return
|
||||
}
|
||||
if (!this.sourceType) {
|
||||
this.$notify({
|
||||
title: '警告',
|
||||
message: '请选择更新范围',
|
||||
type: 'warning'
|
||||
});
|
||||
title: "警告",
|
||||
message: "请选择更新范围",
|
||||
type: "warning"
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.sourceType == 'part' && !this.partGroupId) {
|
||||
if (this.sourceType == "part" && !this.partGroupId) {
|
||||
this.$notify({
|
||||
title: '警告',
|
||||
message: '部分更新请选择更新组别',
|
||||
type: 'warning'
|
||||
});
|
||||
return;
|
||||
title: "警告",
|
||||
message: "部分更新请选择更新组别",
|
||||
type: "warning"
|
||||
})
|
||||
return
|
||||
}
|
||||
this.$confirm('是否确定更新用户数据?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
this.$confirm("是否确定更新用户数据?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
this.updateLoading = true
|
||||
const resp = await $.post(loc() + '/update', {
|
||||
const resp = await $.post(loc() + "/update", {
|
||||
sourceTime: this.sourceTime,
|
||||
sourceType: this.sourceType,
|
||||
columnNames: JSON.stringify(this.columnNames),
|
||||
isUpSet: this.isUpSet,
|
||||
partGroupId: this.partGroupId,
|
||||
isInvert: this.isInvert,
|
||||
isInvert: this.isInvert
|
||||
})
|
||||
this.updateLoading = false
|
||||
if (resp.code === 0) {
|
||||
@@ -480,20 +475,20 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
},
|
||||
reset(){
|
||||
this.isInvert = ''
|
||||
this.sourceType = ''
|
||||
this.partGroupId = ''
|
||||
reset() {
|
||||
this.isInvert = ""
|
||||
this.sourceType = ""
|
||||
this.partGroupId = ""
|
||||
},
|
||||
openView({id, flag}) {
|
||||
this.active = 'info'
|
||||
openView({ id, flag }) {
|
||||
this.active = "info"
|
||||
this.userId = id
|
||||
this.source = flag ? 'sys_user' : 'user_history'
|
||||
this.source = flag ? "sys_user" : "user_history"
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
const { type, data } = command
|
||||
if (type == "view") {
|
||||
this.openView(data)
|
||||
}
|
||||
},
|
||||
@@ -508,81 +503,89 @@ layout("/layouts/platform.html"){
|
||||
async getChangeType() {
|
||||
const changeType = {}
|
||||
const changeTypeOptions = await getEnumOptions("UserChangeType")
|
||||
changeTypeOptions.forEach(v => {
|
||||
changeTypeOptions.forEach((v) => {
|
||||
changeType[v.code] = v.description
|
||||
})
|
||||
return changeType
|
||||
},
|
||||
exportChange() {
|
||||
const {
|
||||
searchName,
|
||||
searchKeyword,
|
||||
unitId,
|
||||
personType,
|
||||
changeDate,
|
||||
userState
|
||||
} = this.pageForm
|
||||
window.open(loc() + '/exportChangePeo?searchName=' + searchName + '&searchKeyword=' + searchKeyword + '&unitId=' + (unitId ? unitId : '') +
|
||||
'&userState=' + (userState ? userState : '') + '&personType=' + (personType ? personType : '') + '&changeDate=' + (changeDate ? changeDate : ''))
|
||||
const { searchName, searchKeyword, unitId, personType, changeDate, userState } = this.pageForm
|
||||
window.open(
|
||||
loc() +
|
||||
"/exportChangePeo?searchName=" +
|
||||
searchName +
|
||||
"&searchKeyword=" +
|
||||
searchKeyword +
|
||||
"&unitId=" +
|
||||
(unitId ? unitId : "") +
|
||||
"&userState=" +
|
||||
(userState ? userState : "") +
|
||||
"&personType=" +
|
||||
(personType ? personType : "") +
|
||||
"&changeDate=" +
|
||||
(changeDate ? changeDate : "")
|
||||
)
|
||||
},
|
||||
async getPartCount() {
|
||||
const resp = await $.get('/platform/user/part/update/getPartCount')
|
||||
const resp = await $.get("/platform/user/part/update/getPartCount")
|
||||
this.upDataCount = resp.data
|
||||
},
|
||||
partUpdate(sourceType) {
|
||||
if (sourceType === 'part') {
|
||||
if (sourceType === "part") {
|
||||
this.userScopeDialog = true
|
||||
}
|
||||
this.getPartCount()
|
||||
},
|
||||
handleClick() {
|
||||
if (this.activeName === "2") {
|
||||
this.$refs.userUpsetData.pageData();
|
||||
this.$refs.userUpsetData.getActivityGroup();
|
||||
this.$refs.userUpsetData.pageData()
|
||||
this.$refs.userUpsetData.getActivityGroup()
|
||||
}
|
||||
},
|
||||
async getPartGroupInfos() {
|
||||
const resp = await $.get('/platform/user/part/update/getUserPart')
|
||||
const resp = await $.get("/platform/user/part/update/getUserPart")
|
||||
this.partGroupInfos = resp.data
|
||||
},
|
||||
doBack(){
|
||||
doBack() {
|
||||
this.userScopeDialog = false
|
||||
this.getPartGroupInfos();
|
||||
this.getPartGroupInfos()
|
||||
},
|
||||
async retireWelfareChange(){
|
||||
this.$confirm('是否确定更新用户数据?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
async retireWelfareChange() {
|
||||
this.$confirm("是否确定更新用户数据?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据更新中,请稍后。。。',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
const resp = await $.get(loc() + '/retireWelfareChange')
|
||||
if (resp.code === 0){
|
||||
text: "数据更新中,请稍后。。。",
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0, 0, 0, 0.7)"
|
||||
})
|
||||
const resp = await $.get(loc() + "/retireWelfareChange")
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
loading.close();
|
||||
loading.close()
|
||||
})
|
||||
},
|
||||
getChangeTypes(changeTypes) {
|
||||
if (changeTypes) {
|
||||
const c = JSON.parse(changeTypes)
|
||||
return c.map(v => {
|
||||
return this.changeType[v]
|
||||
}).join(',')
|
||||
return c
|
||||
.map((v) => {
|
||||
return this.changeType[v]
|
||||
})
|
||||
.join(",")
|
||||
}
|
||||
return null
|
||||
},
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData();
|
||||
this.pageData()
|
||||
this.units = await getUnits()
|
||||
await this.getLatelyUpdateTimes()
|
||||
this.changeType = await this.getChangeType()
|
||||
|
||||
@@ -26,7 +26,7 @@ layout("/layouts/platform.html"){
|
||||
<guava>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span style="color: #409EFF;"><h3>活动申报</h3></span>
|
||||
<span style="color: #409EFF;"><h3>活动申请</h3></span>
|
||||
</div>
|
||||
|
||||
<el-form :model="formData" :rules="formRules" label-suffix=":" label-width="120px"
|
||||
@@ -38,7 +38,7 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申报时间" prop="apply_time">
|
||||
<el-form-item label="申请时间" prop="apply_time">
|
||||
<el-input disabled type="text" v-model="formData.apply_time"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -118,16 +118,16 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申报(承办)单位" prop="fundsUnitName"
|
||||
<el-form-item label="申请(承办)单位" prop="fundsUnitName"
|
||||
v-if="formData.activity_type!=40003">
|
||||
<el-input placeholder="请输入申报(承办)单位" type="text"
|
||||
<el-input placeholder="请输入申请(承办)单位" type="text"
|
||||
v-model="formData.fundsUnitName"></el-input>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="申报协会" prop="clubId"
|
||||
<el-form-item label="申请协会" prop="clubId"
|
||||
v-else-if="formData.activity_type==40003">
|
||||
<el-select @change="fundsUnitChange"
|
||||
placeholder="请选择申报协会"
|
||||
placeholder="请选择申请协会"
|
||||
style="width: 100%;" v-model="formData.clubId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
@@ -291,8 +291,8 @@ layout("/layouts/platform.html"){
|
||||
activityType: this.formData.activity_type
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
// 检测到您有相同名称的活动正在申报流程中,是否需要自动填充该活动的申报记录
|
||||
this.$confirm('检测到您有相同名称的活动正在申报流程中,是否需要自动填充该活动的申报信息', '提示', {
|
||||
// 检测到您有相同名称的活动正在申请流程中,是否需要自动填充该活动的申请记录
|
||||
this.$confirm('检测到您有相同名称的活动正在申请流程中,是否需要自动填充该活动的申请信息', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
@@ -392,8 +392,8 @@ layout("/layouts/platform.html"){
|
||||
async doAdd() {
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
// 提交后将进入审核流程,无法修改申报内容,确定提交吗?
|
||||
this.$confirm('提交后将进入审核流程,无法修改申报内容,确定提交吗?', '提示', {
|
||||
// 提交后将进入审核流程,无法修改申请内容,确定提交吗?
|
||||
this.$confirm('提交后将进入审核流程,无法修改申请内容,确定提交吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
@@ -436,8 +436,8 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
doSave() {
|
||||
// 确定要保存吗?保存后可在【我的申报】页面选中设置按钮的【重新编辑】按钮进行修改或提交
|
||||
this.$confirm('确定要保存吗?保存后可在【我的申报】页面选中设置按钮的【重新编辑】按钮进行修改或提交', '提示', {
|
||||
// 确定要保存吗?保存后可在【我的申请】页面选中设置按钮的【重新编辑】按钮进行修改或提交
|
||||
this.$confirm('确定要保存吗?保存后可在【我的申请】页面选中设置按钮的【重新编辑】按钮进行修改或提交', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
||||
@@ -105,14 +105,14 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="fundsUnitName" label="申报(承办)单位" v-show="formData.activity_type!=40003">
|
||||
<el-form-item prop="fundsUnitName" label="申请(承办)单位" v-show="formData.activity_type!=40003">
|
||||
<el-input v-model="formData.fundsUnitName" type="text"
|
||||
placeholder="请输入申报(承办)单位"></el-input>
|
||||
placeholder="请输入申请(承办)单位"></el-input>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item prop="fundsUnitName" label="申报(承办)单位" v-show="formData.activity_type==40003">
|
||||
<el-form-item prop="fundsUnitName" label="申请(承办)单位" v-show="formData.activity_type==40003">
|
||||
<el-select v-model="formData.fundsUnitName"
|
||||
placeholder="请选择申报(承办)单位"
|
||||
placeholder="请选择申请(承办)单位"
|
||||
style="width: 100%;">
|
||||
<el-option
|
||||
v-for="item in fundsUnitNameOption"
|
||||
|
||||
@@ -81,7 +81,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column label="申请类型" prop="apply_type" header-align="center" sortable
|
||||
align="center">
|
||||
<template scope="{row}">
|
||||
{{ row.apply_type == 1 ? "经费申报" : "报销申请" }}
|
||||
{{ row.apply_type == 1 ? "经费申请" : "报销申请" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column label="申请类型" prop="apply_type" header-align="center" sortable
|
||||
align="center">
|
||||
<template scope="{row}">
|
||||
{{ row.apply_type == 1 ? "经费申报" : "报销申请" }}
|
||||
{{ row.apply_type == 1 ? "经费申请" : "报销申请" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ layout("/layouts/platform.html"){
|
||||
<el-col :span="12">
|
||||
<div style="padding: 4px 0 20px 0">
|
||||
<el-button type="primary" size="small" @click="doExportActivityApply">
|
||||
导出活动申报方案表
|
||||
导出活动申请方案表
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" style="margin-left: 10px"
|
||||
@click="doExportReimbursementVoucher">导出报销凭证
|
||||
@@ -120,14 +120,14 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="fundsUnitName" label="申报(承办)单位"
|
||||
<el-form-item prop="fundsUnitName" label="申请(承办)单位"
|
||||
v-if="formData.activity_type!=40003">
|
||||
<el-input readonly v-model="formData.fundsUnitName" type="text"></el-input>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item prop="clubId" label="申报协会"
|
||||
<el-form-item prop="clubId" label="申请协会"
|
||||
v-else-if="formData.activity_type==40003">
|
||||
<el-select placeholder="请选择申报协会"
|
||||
<el-select placeholder="请选择申请协会"
|
||||
disabled
|
||||
style="width: 100%;" v-model="formData.clubId">
|
||||
<el-option
|
||||
@@ -232,47 +232,50 @@ layout("/layouts/platform.html"){
|
||||
<el-row :gutter="20" v-if="formData.id != null && formData.id !== ''">
|
||||
<el-divider content-position="left" class="dia"><span
|
||||
style="color: #3ea1ec;">活动费用预算及报销信息表</span></el-divider>
|
||||
<el-form-item>
|
||||
<el-form-item label-width="40px">
|
||||
<span style="color: red">如有收款人请填写收款人、支行名称及报销卡号;如无收款人,请在备注栏中说明报销情况</span>
|
||||
<el-table :data="formData.budgets" border max-height="500" size="mini" style="width: 100%">
|
||||
<el-table-column label="序号" sortable type="index" width="80"></el-table-column>
|
||||
<el-table-column label="费用项目名称" prop="name">
|
||||
<el-table-column label="序号" sortable fixed type="index" width="60"></el-table-column>
|
||||
<el-table-column label="费用项目名称" fixed prop="name" width="200">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.name'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.name" maxlength="50" readonly
|
||||
<el-input v-model="row.name" style="width: 100%" maxlength="50"
|
||||
placeholder="请输入费用项目名称"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预算费用" prop="budgetPrice">
|
||||
<el-table-column label="预算费用" prop="budgetPrice" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.budgetPrice'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="预算费用" v-model="row.budgetPrice"
|
||||
:precision="2" disabled
|
||||
:precision="2" style="width: 100%"
|
||||
:min="1"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际费用" prop="actualPrice">
|
||||
<el-table-column label="实际费用" prop="actualPrice" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.actualPrice'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="请填写实际费用" v-model="row.actualPrice"
|
||||
:precision="2"
|
||||
:precision="2" style="width: 100%"
|
||||
:min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收款人" prop="payeeId">
|
||||
<el-table-column label="收款人" prop="payeeId" width="200">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.payeeId'">
|
||||
<el-select :loading="selectLoading" :remote-method="remoteMethod"
|
||||
<el-input v-model="row.username" maxlength="50"
|
||||
@input="getCardNumberByPayeeId(row)"
|
||||
placeholder="请输入收款人"></el-input>
|
||||
<!--<el-select :loading="selectLoading" :remote-method="remoteMethod"
|
||||
clearable
|
||||
filterable
|
||||
@change="getCardNumberByPayeeId(row)"
|
||||
@@ -287,39 +290,49 @@ layout("/layouts/platform.html"){
|
||||
:value="item.id"
|
||||
v-for="item in userList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-select>-->
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="支行名称" prop="bankName">
|
||||
<el-table-column label="支行名称" prop="bankName" width="300">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.bankName'">
|
||||
<el-input v-model="row.bankName" maxlength="50"
|
||||
<el-input v-model="row.bankName" maxlength="80"
|
||||
placeholder="请输入支行名称"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="报销卡号" prop="bankCardNum">
|
||||
<el-table-column label="报销卡号" prop="bankCardNum" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0">
|
||||
<el-input type="number" v-model="row.bankCardNum"
|
||||
maxlength="50"
|
||||
placeholder="请输入报销卡号"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="备注" prop="remark">
|
||||
<el-table-column label="备注" prop="remark" width="400">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.remark'">
|
||||
<el-input v-model="row.remark" maxlength="50"
|
||||
<el-input v-model="row.remark" maxlength="200"
|
||||
placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" label="操作" width="100">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="formData.budgets.push({})" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button :disabled="formData.budgets.length==1"
|
||||
@click="formData.budgets.splice(scope.$index,1)"
|
||||
size="mini"
|
||||
icon="el-icon-delete"
|
||||
type="danger"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
@@ -410,7 +423,7 @@ layout("/layouts/platform.html"){
|
||||
width="40%">
|
||||
|
||||
<span style="line-height: 24px">
|
||||
  1、智慧工会“基层活动”提交活动申报,审核通过后开展活动。活动结束后在系统中提交活动内容,导出报销凭据到工会财务处报销。<br/>
|
||||
  1、智慧工会“基层活动”提交活动申请,审核通过后开展活动。活动结束后在系统中提交活动内容,导出报销凭据到工会财务处报销。<br/>
|
||||
  2、活动报销所需材料如下:<br/>
|
||||
    ①.活动方案(含预算),校工会主席签字;<br/>
|
||||
    ②.活动新闻稿/照片;<br/>
|
||||
@@ -488,15 +501,17 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
async getCardNumberByPayeeId(row) {
|
||||
const user = this.userList.find(v => v.id === row.payeeId)
|
||||
row.loginName = user.loginname
|
||||
row.username = user.username
|
||||
const resp = await $.get('/platform/jf/Funds/apply/getCardNumberByPayeeId', {payeeId: row.payeeId})
|
||||
// const user = this.userList.find(v => v.id === row.payeeId)
|
||||
// row.loginName = user.loginname
|
||||
// row.username = user.username
|
||||
const resp = await $.get('/platform/jf/Funds/apply/getCardNumberByPayeeId', {username:row.username})
|
||||
if (resp.code === 0) {
|
||||
debugger
|
||||
if (resp.data) {
|
||||
row.bankCardNum = resp.data.bankCardNum
|
||||
row.bankName = resp.data.bankName
|
||||
debugger
|
||||
this.$set(row, "bankCardNum", resp.data.bankCardNum)
|
||||
this.$set(row, "bankName", resp.data.bankName)
|
||||
// row.bankCardNum = resp.data.bankCardNum
|
||||
// row.bankName = resp.data.bankName
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -504,7 +519,7 @@ layout("/layouts/platform.html"){
|
||||
doExportReimbursementVoucher() {
|
||||
window.open('/platform/jf/activity_bx/reimbursement/doExport?id=' + this.formData.id)
|
||||
},
|
||||
//导出活动申报表
|
||||
//导出活动申请表
|
||||
doExportActivityApply() {
|
||||
window.open('/platform/jf/activity_bx/reimbursementview/doExport?id=' + this.formData.id)
|
||||
},
|
||||
@@ -592,8 +607,8 @@ layout("/layouts/platform.html"){
|
||||
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
// 提交后将进入审核流程,无法修改申报内容,确定提交吗?
|
||||
this.$confirm('提交后将进入审核流程,无法修改申报内容,确定提交吗?', '提示', {
|
||||
// 提交后将进入审核流程,无法修改申请内容,确定提交吗?
|
||||
this.$confirm('提交后将进入审核流程,无法修改申请内容,确定提交吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
@@ -649,7 +664,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.id = id
|
||||
await this.activityChange(id);
|
||||
}
|
||||
this.dialogVisible = true
|
||||
// this.dialogVisible = true
|
||||
await this.getUserClub();
|
||||
}
|
||||
})
|
||||
|
||||
@@ -145,7 +145,7 @@ layout("/layouts/platform.html"){
|
||||
title=""
|
||||
width="200"
|
||||
trigger="hover"
|
||||
content="申报和报销的活动经费">
|
||||
content="申请和报销的活动经费">
|
||||
<i style="color: #409EFF" slot="reference" class="el-icon-question"></i>
|
||||
</el-popover>
|
||||
</div>
|
||||
@@ -160,7 +160,7 @@ layout("/layouts/platform.html"){
|
||||
title=""
|
||||
width="200"
|
||||
trigger="hover"
|
||||
content="申报和报销的活动经费">
|
||||
content="申请和报销的活动经费">
|
||||
<i style="color: #409EFF" slot="reference" class="el-icon-question"></i>
|
||||
</el-popover>
|
||||
</div>
|
||||
@@ -175,7 +175,7 @@ layout("/layouts/platform.html"){
|
||||
title=""
|
||||
width="200"
|
||||
trigger="hover"
|
||||
content="申报和报销的活动经费">
|
||||
content="申请和报销的活动经费">
|
||||
<i style="color: #409EFF" slot="reference" class="el-icon-question"></i>
|
||||
</el-popover>
|
||||
</div>
|
||||
|
||||
@@ -146,7 +146,7 @@ layout("/layouts/platform.html"){
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:1}">
|
||||
导出申报方案表
|
||||
导出申请方案表
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:2}">
|
||||
导出活动报销凭证
|
||||
|
||||
@@ -135,7 +135,7 @@ layout("/layouts/platform.html"){
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:1}">
|
||||
导出申报方案表
|
||||
导出申请方案表
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:2}">
|
||||
导出活动报销凭证
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch" style="width: 100%">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
@@ -49,7 +50,8 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
filterable
|
||||
@change="flushUnits" @clear="flushUnits">
|
||||
@@ -62,16 +64,17 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable>
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
@@ -94,7 +97,8 @@
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
@@ -109,7 +113,8 @@
|
||||
</template>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -128,9 +133,11 @@
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
@@ -154,13 +161,16 @@
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作"
|
||||
min-width="100px">
|
||||
<template scope="{row}">
|
||||
<el-button size="small" :loading="row.loading" v-if="row.audit" type="primary"
|
||||
<el-button size="mini" :loading="row.loading" v-if="row.audit"
|
||||
type="primary"
|
||||
@click="openAudit(row,true)">审核
|
||||
</el-button>
|
||||
<el-button size="small" :loading="row.loading" v-else @click="openAudit(row,false)">查看
|
||||
<el-button size="mini" :loading="row.loading" v-else
|
||||
@click="openAudit(row,false)">查看
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -171,136 +181,145 @@
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<el-tabs v-model="active">
|
||||
<el-tab-pane label="个人信息" name="info">
|
||||
<member ref="memberInfo" :id="info.userId" view></member>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="分工会审核" name="union">
|
||||
|
||||
<el-tabs v-model="active">
|
||||
<el-tab-pane label="个人信息" name="info">
|
||||
<member ref="memberInfo" :id="info.userId" view></member>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="分工会审核" name="union">
|
||||
<el-form :model="formData" ref="form" :rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
|
||||
<el-form :model="formData" ref="form" :rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
<template v-if="!info.unionAudit&&source==1">
|
||||
|
||||
<template v-if="!info.unionAudit&&source==1">
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-row :gutter="20" v-if="info&&info.unionAudit">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员">
|
||||
<span>{{ info.unionAudit.username }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间">
|
||||
<span>{{ info.unionAudit.auditTime }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-form-item prop="auditSign" label="签字">
|
||||
<sign v-model="formData.auditSign"></sign>
|
||||
</el-form-item>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核意见">
|
||||
<span>{{ info.unionAudit.auditOpinion }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-descriptions :column="2" border class="descriptions-form" v-if="info&&info.unionAudit">
|
||||
<el-descriptions-item label="审核人员">{{ info.unionAudit.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ info.unionAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" span="2">{{ info.unionAudit.auditOpinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="2">
|
||||
<el-image
|
||||
v-if="info.unionAudit.auditSign"
|
||||
:src="info.unionAudit.auditSign"
|
||||
style="width: 100px; height: 100px"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会审核" name="school"
|
||||
v-if="info.unionAudit">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form"
|
||||
:rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会审核" name="school"
|
||||
v-if="info.unionAudit">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form" :rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
<template v-if="!info.schoolAudit&&source==2">
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
|
||||
<el-form-item prop="auditSign" label="签字">
|
||||
<sign v-model="formData.auditSign"></sign>
|
||||
</el-form-item>
|
||||
<template v-if="!info.schoolAudit&&source==2">
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-descriptions :column="2" border class="descriptions-form" v-if="info&&info.schoolAudit">
|
||||
<el-descriptions-item label="审核人员">{{ info.schoolAudit.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ info.schoolAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" span="2">{{ info.schoolAudit.auditOpinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" span="2">
|
||||
<el-image
|
||||
v-if="info.schoolAudit.auditSign"
|
||||
:src="info.schoolAudit.auditSign"
|
||||
style="width: 100px; height: 100px"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-row :gutter="20" v-if="info&&info.schoolAudit">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员">
|
||||
<span>{{ info.schoolAudit.username }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间">
|
||||
<span>{{ info.schoolAudit.auditTime }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核意见">
|
||||
<span>{{ info.schoolAudit.auditOpinion }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
@@ -341,19 +360,17 @@
|
||||
{prop: 'mobile', label: '联系电话'},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true ,checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true ,checked: 0},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
{prop: 'applyDate', label: '申请时间', sortable: true},
|
||||
{prop: 'stateId', label: '状态', sortable: true},
|
||||
],
|
||||
units: [],
|
||||
isThreeUnit: null,
|
||||
isThreeUnit: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v='+ new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
async doAudit(pass) {
|
||||
@@ -364,6 +381,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
@@ -434,6 +452,7 @@
|
||||
async created() {
|
||||
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
||||
if (this.isThreeUnit) {
|
||||
|
||||
this.tableColumns.forEach(v => {
|
||||
if (["threeUnitName", "unionGroupName"].includes(v.prop)) {
|
||||
v.checked = 1
|
||||
@@ -442,7 +461,7 @@
|
||||
}
|
||||
|
||||
this.pageData();
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
|
||||
@@ -42,7 +42,7 @@ layout("/layouts/platform.html"){
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava" style="width: 100%;height: 100%">
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<div class="v-body">
|
||||
<el-card class="v-card" shadow="never">
|
||||
@@ -66,29 +66,20 @@ layout("/layouts/platform.html"){
|
||||
<el-form-item label="加入方式">
|
||||
<el-radio-group v-model="memberStates">
|
||||
<el-radio :label="1">新增</el-radio>
|
||||
<el-radio :label="2">转入</el-radio>
|
||||
<!-- <el-radio :label="2">转入</el-radio>-->
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button
|
||||
v-if="unionInfo.member !== 1"
|
||||
:disabled="!((unionInfo.apply||unionInfo.reApply))"
|
||||
type="primary"
|
||||
@click="apply"
|
||||
style="width: 70%;margin-left: 15%;margin-top: 20px">
|
||||
<span v-if="unionInfo.apply||unionInfo.reApply">{{unionInfo.reApply?'重新申请':'申请加入'}}</span>
|
||||
<span v-if="unionInfo.apply||unionInfo.reApply">{{unionInfo.reApply?'重新申请':'加入'}}</span>
|
||||
<span v-else-if="unionInfo.record">{{unionInfo.record.stateName}}</span>
|
||||
<span v-else>您已是会员</span>
|
||||
</el-button>
|
||||
|
||||
<!--<el-radio
|
||||
style="width: 70%;margin-left: 15%;margin-top: 20px;color: #F56C6C"
|
||||
v-model="reading" :label="true">
|
||||
阅读须知:我自愿加入工会
|
||||
</el-radio>-->
|
||||
|
||||
<el-button style="width: 70%;margin-top: 10px;margin-left: 15%;" type="primary" @click="exportApply">
|
||||
导出申请表
|
||||
</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
@@ -208,20 +199,19 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #edit_func>
|
||||
<el-button type="primary" @click="doSubmit">提交</el-button>
|
||||
<!-- <el-button type="primary" @click="doSubmit">提交</el-button>-->
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
|
||||
<div style="width: 800px;margin: 0 auto;">
|
||||
<h3 style="text-align: center">中华全国总工会</h3>
|
||||
<h3 style="text-align: center">入会申请书</h3>
|
||||
<div style="text-align: center">入会申请书</div>
|
||||
<p style="text-indent: 2em">
|
||||
我自愿加入中华全国总工会,遵守工会章程,执行工会决议,积极参加工会活动,为全面建成小康社会、把我国建设成为富强民主文明和谐美丽的社会主义现代化强国、实现中华民族伟大复兴的中国梦而奋斗。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<el-divider></el-divider>
|
||||
|
||||
<el-form :model="formData" :rules="rules" ref="AddForm" label-width="170px">
|
||||
<el-row :gutter="20">
|
||||
@@ -232,6 +222,13 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工号" prop="loginname">
|
||||
<el-input disabled placeholder="工号"
|
||||
v-model="formData.loginname"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别" prop="sex">
|
||||
<el-radio v-model="formData.sex" label="男" border size="small">男
|
||||
@@ -243,7 +240,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="nation" label="民族">
|
||||
<el-select placeholder="请选择民族" style="width: 100%" filterable v-model="formData.nation">
|
||||
<el-select placeholder="民族" style="width: 100%" filterable v-model="formData.nation">
|
||||
<el-option v-for="nation in nationOptions" :key="nation" :value="nation"
|
||||
:label="nation"></el-option>
|
||||
</el-select>
|
||||
@@ -252,24 +249,31 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="education" label="学历">
|
||||
<dict-select code="Education" placeholder="请选择学历"
|
||||
style="width: 100%"
|
||||
v-model="formData.education"></dict-select>
|
||||
<dict-select v-model="formData.education" style="width: 100%"
|
||||
placeholder="请选择学历"
|
||||
code="Education"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="academicDegree" label="学位">
|
||||
<dict-select v-model="formData.academicDegree" style="width: 100%"
|
||||
placeholder="请选择学位"
|
||||
code="academicDegree"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="political" label="政治面貌">
|
||||
<dict-select code="political" placeholder="请选择政治面貌"
|
||||
style="width: 100%"
|
||||
v-model="formData.political"></dict-select>
|
||||
<el-input maxlength="100" placeholder="政治面貌"
|
||||
v-model="formData.political"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="marriage" label="婚姻状况">
|
||||
<dict-select v-model="formData.marriage" style="width: 100%" placeholder="请选择婚姻状况"
|
||||
code="maritalStatus"></dict-select>
|
||||
<el-form-item prop="userState" label="人员类型">
|
||||
<dict-select v-model="formData.personType" style="width: 100%" placeholder="请选择人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -300,49 +304,35 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="registeredResidence" label="户口所在地">
|
||||
<el-input maxlength="50" placeholder="请填写户口所在地"
|
||||
v-model="formData.registeredResidence"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="homeAddress" label="现居住地">
|
||||
<el-input placeholder="请填写现居住地"
|
||||
v-model="formData.homeAddress"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="jobTitle" label="岗位">
|
||||
<el-input placeholder="请填写岗位"
|
||||
v-model="formData.jobTitle"></el-input>
|
||||
v-model="formData.registeredResidence" type="textarea"
|
||||
rows="3"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="vita" label="简历">
|
||||
<el-input maxlength="500" placeholder="请填写简历"
|
||||
<el-form-item prop="homeAddress" label="现居住地">
|
||||
<el-input maxlength="50" placeholder="请填写现居住地"
|
||||
v-model="formData.homeAddress" type="textarea"
|
||||
rows="3"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="vita" label="个人工作简历">
|
||||
<el-input maxlength="500" placeholder="请填写个人工作简历"
|
||||
v-model="formData.vita" type="textarea"
|
||||
rows="3"></el-input>
|
||||
</el-form-item>
|
||||
<div style="margin: -10px 0 10px 170px">
|
||||
<span style="color: #ac3111">填写简历时请从大学开始填写,并填写毕业院校</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="specialSkill" label="有何特长">
|
||||
<el-form-item prop="specialSkill" label="特长">
|
||||
<el-input maxlength="50" placeholder="请填写特长"
|
||||
v-model="formData.specialSkill" type="textarea"
|
||||
rows="3"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="签  字" prop="sign">
|
||||
<sign :qz.sync="formData.sign" prefix="memberApply"></sign>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="家庭成员">
|
||||
<span style="color: red">(已结婚填配偶信息,未结婚填父母信息)</span>
|
||||
@@ -367,27 +357,13 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="isCondolence" label="是否慰问" align="center"
|
||||
<el-table-column prop="unit" label="单位" align="center"
|
||||
header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-radio-group v-model="scope.row.isCondolence" size="mini">
|
||||
<el-radio label="是">是</el-radio>
|
||||
<el-radio label="否">否</el-radio>
|
||||
</el-radio-group>
|
||||
<!--<el-input placeholder="请输入单位" maxlength="100"
|
||||
v-model="scope.row.unit" clearable></el-input>-->
|
||||
<el-input placeholder="请输入单位" maxlength="100"
|
||||
v-model="scope.row.unit" clearable></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="condolenceTime" label="慰问时间" align="center"
|
||||
header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker style="width: 100%" v-model="scope.row.condolenceTime" format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" type="date"
|
||||
placeholder="慰问时间"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="remark" label="备注" align="center"
|
||||
header-align="center">
|
||||
<template slot-scope="scope">
|
||||
@@ -437,6 +413,7 @@ layout("/layouts/platform.html"){
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
dicts: ['memberApplyPersonType'],
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -456,6 +433,8 @@ layout("/layouts/platform.html"){
|
||||
idcard: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
position: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
homeAddress: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
specialSkill: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
registeredResidence: [{
|
||||
required: true,
|
||||
message: '必填',
|
||||
@@ -467,9 +446,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v='+ new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -519,6 +496,16 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
async apply() {
|
||||
const values = this.dict.type.memberApplyPersonType.map(v => v.value)
|
||||
const personType = "${@shiro.getPrincipalProperty('personType')}"
|
||||
const msg = '您当前的人员类型是<span style="color: red">' + (personType || '空') + '</span>,目前只允许<strong>' + values.join('、') + '</strong>加入会员,如有疑问,请联系校工会进行更改。'
|
||||
if (!values.includes(personType)) {
|
||||
this.$alert(msg, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
dangerouslyUseHTMLString: true
|
||||
})
|
||||
return
|
||||
}
|
||||
this.$refs.guava.edit()
|
||||
},
|
||||
|
||||
@@ -547,9 +534,6 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
|
||||
exportApply() {
|
||||
window.open(loc() + '/exportApply')
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.getUnionInfo()
|
||||
|
||||
@@ -131,12 +131,9 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'enum-select': httpVueLoader('/components/plugins/EnumSelect.vue?v=1.0.0'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.0'),
|
||||
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v='+ new Date().getTime()),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v='+ new Date().getTime()),
|
||||
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v='+ new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -146,6 +143,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.getUnionInfo()
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -17,7 +17,8 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width:80px;">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
@@ -29,12 +30,14 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}"
|
||||
filterable>
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -42,207 +45,87 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable>
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unionGroups"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in threeUnits"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userType" style="width: 100%" clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userStates"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="userState"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">变更类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.changeType" style="width: 100%" clearable
|
||||
placeholder="变更类型"
|
||||
code="MemberChangeType"></dict-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personTypes"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">申请方式:</div>
|
||||
<div class="search-item-option">
|
||||
<enum-select enum="MemberChangeOrigin" v-model="pageForm.applyOrigin" value="code"
|
||||
label="description"
|
||||
style="width: 100%" clearable placeholder="申请方式"></enum-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">变更类型:</div>
|
||||
<div class="search-item-option">
|
||||
<enum-select v-model="pageForm.changeTypes"
|
||||
enum="UserChangeType"
|
||||
label="description"
|
||||
multiple
|
||||
value="code"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="变更类型"
|
||||
></enum-select>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">变更来源:</div>
|
||||
<div class="search-item-option">
|
||||
<enum-select enum="MemberChangeOrigin"
|
||||
v-model="pageForm.changeOrigins"
|
||||
multiple
|
||||
value="code"
|
||||
label="description"
|
||||
style="width: 100%" clearable
|
||||
placeholder="变更来源"></enum-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
|
||||
<more v-model="searchMore"></more>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="变更列表" :app="this">
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
resizable
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
<el-table-column type="expand" width="40px">
|
||||
<template slot-scope="{row}">
|
||||
<el-form class="demo-table-expand" v-loading="row.loading"
|
||||
label-position="right" label-suffix=":" label-width="120px">
|
||||
|
||||
<vi-title title="变更信息"></vi-title>
|
||||
|
||||
<el-form-item label="变更原因">
|
||||
{{ row.remark }}
|
||||
</el-form-item>
|
||||
|
||||
<!--异动-->
|
||||
<template v-if="row.type==1">
|
||||
|
||||
<vi-title title="异动信息"></vi-title>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="原科室">
|
||||
<span>{{ row.originThreeUnitName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="原单位">
|
||||
<span>{{ row.originUnitName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="原工会">
|
||||
<span>{{ row.originUnionName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="新科室">
|
||||
<span>{{ row.currentThreeUnitName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="新单位">
|
||||
<span>{{ row.currentUnitName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="新工会">
|
||||
<span>{{ row.currentUnionName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<vi-title title="分工会审核信息"></vi-title>
|
||||
|
||||
<el-row :gutter="20" v-if="row.unionAudit">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员">
|
||||
<span>{{ row.unionAudit.username }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间">
|
||||
<span>{{ row.unionAudit.auditTime }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核意见">
|
||||
<span>{{ row.unionAudit.auditOpinion }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
|
||||
<vi-title title="校工会审核信息"></vi-title>
|
||||
<el-row :gutter="20" v-if="row.schoolAudit">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员">
|
||||
<span>{{ row.schoolAudit.username }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间">
|
||||
<span>{{ row.schoolAudit.auditTime }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核意见">
|
||||
<span>{{ row.schoolAudit.auditOpinion }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
@@ -252,54 +135,44 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
>
|
||||
<template v-if="column.prop=='type'" scope="{row:{type}}">
|
||||
{{changeType[type]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='applyOrigin'" scope="{row:{applyOrigin}}">
|
||||
{{changeOrigin[applyOrigin]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='stateId'" scope="{row}">
|
||||
<vi-table-state v-if="row.stateId" :state="row"></vi-table-state>
|
||||
<vi-table-state v-else :state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
</template>
|
||||
<template v-else-if="column.prop==='unitname'" scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unitcode+')':null}}{{row.unitname}}
|
||||
</template>
|
||||
<template v-else-if="column.prop==='unionname'" scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unioncode+')':null}}{{row.unionname}}
|
||||
<template v-if="column.prop=='stateId'" scope="{row}">
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="变更人姓名">
|
||||
<template slot-scope="{row}">
|
||||
{{row.schoolAudit?row.schoolAudit.username:''}}
|
||||
</template>
|
||||
<!-- <template v-else-if="column.prop==='changePersonLoginname'" scope="{row}">-->
|
||||
<!-- {{row.schoolAudit.loginname}}-->
|
||||
<!-- </template>-->
|
||||
<!-- <template v-else-if="column.prop==='changeTime'" scope="{row}">-->
|
||||
<!-- {{row.schoolAudit.auditTime}}-->
|
||||
<!-- </template>-->
|
||||
</el-table-column>
|
||||
<el-table-column label="变更人工号">
|
||||
<template slot-scope="{row}">
|
||||
{{row.schoolAudit?row.schoolAudit.loginname:''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="变更时间" width="150">
|
||||
<template slot-scope="{row}">
|
||||
{{row.schoolAudit?row.schoolAudit.auditTime:''}}
|
||||
</template>
|
||||
<el-table-column label="异动信息" header-align="center">
|
||||
<el-table-column label="更新时间" prop="changeTime" min-width="145px"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="异动类型" prop="changeTypes" header-align="center"
|
||||
align="center" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span style="color: #0e78c5;cursor: pointer" @click="openUserChangeInfo(row)">
|
||||
{{getChangeTypes(row.changeTypes)}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
width="100px" fixed="right">
|
||||
<el-table-column label="审核状态">
|
||||
<template scope="{row}">
|
||||
<el-button size="small" :loading="row.loading" @click="openView(row.userId)">查看
|
||||
</el-button>
|
||||
<vi-table-state v-if="row.stateId" :state="row"></vi-table-state>
|
||||
<vi-table-state v-else
|
||||
:state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="userOnline" align="center" header-align="center"-->
|
||||
<!-- label="操作"-->
|
||||
<!-- width="100px" fixed="right">-->
|
||||
<!-- <template scope="{row}">-->
|
||||
<!-- <el-button size="mini"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- @click="openView(row.userId)">查看-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
@@ -320,6 +193,9 @@ layout("/layouts/platform.html"){
|
||||
</el-tabs>
|
||||
|
||||
</template>
|
||||
|
||||
<user-change-history ref="userChangeHistory"></user-change-history>
|
||||
|
||||
</guava>
|
||||
|
||||
|
||||
@@ -340,6 +216,9 @@ layout("/layouts/platform.html"){
|
||||
formData: {},
|
||||
pageForm: {
|
||||
searchName: "u.username",
|
||||
changeTypes: [],
|
||||
personTypes: [],
|
||||
changeOrigins: []
|
||||
},
|
||||
unions: [],
|
||||
units: [],
|
||||
@@ -350,28 +229,41 @@ layout("/layouts/platform.html"){
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'sex', label: '性别', sortable: true, width: '100px'},
|
||||
{prop: 'birthday', label: '出生年月', sortable: true},
|
||||
{prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
{prop: 'type', label: '变更类型', sortable: true},
|
||||
{prop: 'applyDate', label: '申请时间', sortable: true},
|
||||
{prop: 'applyOrigin', label: '申请方式', sortable: true},
|
||||
{prop: 'stateId', label: '状态', sortable: true}
|
||||
// {prop: 'type', label: '变更类型', sortable: true},
|
||||
// {prop: 'applyDate', label: '申请时间', sortable: true},
|
||||
// {prop: 'applyOrigin', label: '申请方式', sortable: true},
|
||||
// {prop: 'stateId', label: '状态', sortable: true}
|
||||
],
|
||||
isThreeUnit:null,
|
||||
isThreeUnit: false,
|
||||
|
||||
memberChangeOriginOptions: [],
|
||||
userChangeTypeOptions: []
|
||||
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=1.0.0'),
|
||||
'enum-select': httpVueLoader('/components/plugins/EnumSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=' + new Date().getTime()),
|
||||
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=' + new Date().getTime()),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
|
||||
async openUserChangeInfo({id}) {
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(id)
|
||||
},
|
||||
getChangeTypes(changeTypes) {
|
||||
if (changeTypes) {
|
||||
const c = JSON.parse(changeTypes)
|
||||
return this.userChangeTypeOptions.filter(v => c.includes(v.code)).map(v => v.description).join()
|
||||
}
|
||||
return null
|
||||
},
|
||||
async onExpand(row, expandedRows) {
|
||||
if (!expandedRows.includes(row)) {
|
||||
return
|
||||
@@ -380,9 +272,9 @@ layout("/layouts/platform.html"){
|
||||
this.$set(row, "loading", true)
|
||||
const resp = await $.get("/platform/member/common/findChangeApplyInfo", {id: row.id})
|
||||
this.$set(row, "loading", false)
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.$set(row, "info", data)
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$set(row, "info", {})
|
||||
}
|
||||
@@ -395,11 +287,11 @@ layout("/layouts/platform.html"){
|
||||
async doSubmit(formData) {
|
||||
const resp = await $.post(loc() + "/change", formData)
|
||||
this.$refs.apply.closeLoading()
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.userId = ""
|
||||
this.$refs.guava.index()
|
||||
this.pageData()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -419,9 +311,29 @@ layout("/layouts/platform.html"){
|
||||
this.unionGroups = await unionGroupsByUnionId(this.pageForm.unionId)
|
||||
}
|
||||
},
|
||||
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.userStates = JSON.stringify(pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
|
||||
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
|
||||
$.post(loc() + '/pageData', pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
|
||||
},
|
||||
async created() {
|
||||
this.pageData();
|
||||
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
||||
if (this.isThreeUnit) {
|
||||
this.tableColumns.forEach(v => {
|
||||
@@ -431,7 +343,8 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
}
|
||||
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.pageData();
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
@@ -440,6 +353,14 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
this.changeType = await member.getChangeType()
|
||||
this.changeOrigin = await member.getChangeOrigin()
|
||||
|
||||
getEnumOptions('MemberChangeOrigin').then(res => {
|
||||
this.memberChangeOriginOptions = res
|
||||
})
|
||||
getEnumOptions('UserChangeType').then(res => {
|
||||
this.userChangeTypeOptions = res
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch" style="width: 100%">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
@@ -25,113 +26,89 @@
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">申请时间:</div>
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="pageForm.dateRange"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
<dict-select v-model="pageForm.userStates"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="userState"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personTypes"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">变更类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.type" style="width: 100%" clearable placeholder="变更类型"
|
||||
code="MemberChangeType"></dict-select>
|
||||
<enum-select v-model="pageForm.changeTypes"
|
||||
enum="UserChangeType"
|
||||
label="description"
|
||||
multiple
|
||||
value="code"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="变更类型"
|
||||
></enum-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable
|
||||
filterable
|
||||
@change="flushUnits" @clear="flushUnits">
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
filterable
|
||||
@change="flushUnits" @clear="flushUnits">
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable>
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unionGroups"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in threeUnits"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">会员状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.memberStatus" style="width: 100%" clearable
|
||||
placeholder="会员状态" code="memberStatusText"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
<more v-model="searchMore"></more>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="申请列表" :app="this">
|
||||
<template #func>
|
||||
<!-- <el-button type="primary" v-if="source==2" size="small"-->
|
||||
<!-- :disabled="selection.length===0" @click="batchOpenAudit">批量审核-->
|
||||
<!-- </el-button>-->
|
||||
<el-radio-group v-model="pageForm.audit" @change="doSearch" size="small"
|
||||
style="margin-bottom: -7.5px">
|
||||
class="ml10">
|
||||
<el-radio-button :label="0">全部</el-radio-button>
|
||||
<el-radio-button :label="1">已审核</el-radio-button>
|
||||
<el-radio-button :label="2">未审核</el-radio-button>
|
||||
@@ -139,9 +116,17 @@
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
ref="table"
|
||||
@selection-change="handleSelectionChange"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
<el-table-column type="selection" width="55"
|
||||
v-if="source==2"
|
||||
reserve-selection
|
||||
:selectable="(row)=>{return row.audit}"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
@@ -153,10 +138,11 @@
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
>
|
||||
<template v-if="column.prop=='type'" scope="{row:{type}}">
|
||||
{{changeType[type]}}
|
||||
<template v-if="column.prop=='type'" scope="{row}">
|
||||
<span style="color: #0e78c5;cursor: pointer" @click="openUserChangeInfo(row)">{{changeType[row.type]}}</span>
|
||||
</template>
|
||||
<template v-else-if="column.prop=='applyOrigin'" scope="{row:{applyOrigin}}">
|
||||
<template v-else-if="column.prop=='applyOrigin'"
|
||||
scope="{row:{applyOrigin}}">
|
||||
{{changeOrigin[applyOrigin]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='stateId'" scope="{row}">
|
||||
@@ -171,13 +157,18 @@
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作"
|
||||
fixed="right"
|
||||
width="100px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" :loading="row.loading" v-if="row.audit" type="primary"
|
||||
<el-button size="mini" :loading="row.loading" v-if="row.audit"
|
||||
type="primary"
|
||||
@click="openAudit(row,true)">审核
|
||||
</el-button>
|
||||
<el-button size="mini" :loading="row.loading" v-else @click="openAudit(row,false)">查看
|
||||
<el-button size="mini" :loading="row.loading" v-else
|
||||
type="primary"
|
||||
@click="openAudit(row,false)">查看
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -188,17 +179,14 @@
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
|
||||
<template #edit>
|
||||
|
||||
<el-tabs v-model="active">
|
||||
<el-tab-pane label="个人信息" name="info">
|
||||
<member ref="memberInfo" :id="info.userId" view></member>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="变更记录" name="changInfo">
|
||||
<mem-change-records :userid="info.userId"></mem-change-records>
|
||||
</el-tab-pane>
|
||||
<!-- <el-tab-pane label="变更记录" name="changInfo">-->
|
||||
<!-- <mem-change-records :userid="info.userId"></mem-change-records>-->
|
||||
<!-- </el-tab-pane>-->
|
||||
|
||||
<el-tab-pane label="分工会审核" name="union">
|
||||
<el-form :model="formData" ref="form" :rules="formRules"
|
||||
@@ -211,23 +199,27 @@
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原单位">
|
||||
<el-input :value="info.originUnit.name" disabled></el-input>
|
||||
<el-input :value="info.originUnit.name"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原工会">
|
||||
<el-input :value="info.originUnion.unionname" disabled></el-input>
|
||||
<el-input :value="info.originUnion.unionname"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新单位">
|
||||
<el-input :value="info.currentUnit.name" disabled></el-input>
|
||||
<el-input :value="info.currentUnit.name"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新工会">
|
||||
<el-input :value="info.currentUnion.unionname" disabled></el-input>
|
||||
<el-input :value="info.currentUnion.unionname"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -248,7 +240,8 @@
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
@@ -291,7 +284,8 @@
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会审核" name="school"
|
||||
v-if="info.unionAudit">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form" :rules="formRules"
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form"
|
||||
:rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
@@ -302,23 +296,27 @@
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原单位">
|
||||
<el-input :value="info.originUnit.name" disabled></el-input>
|
||||
<el-input :value="info.originUnit.name"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原工会">
|
||||
<el-input :value="info.originUnion.unionname" disabled></el-input>
|
||||
<el-input :value="info.originUnion.unionname"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新单位">
|
||||
<el-input :value="info.currentUnit.name" disabled></el-input>
|
||||
<el-input :value="info.currentUnit.name"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新工会">
|
||||
<el-input :value="info.currentUnion.unionname" disabled></el-input>
|
||||
<el-input :value="info.currentUnion.unionname"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -339,12 +337,14 @@
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" type="danger" :loading="submitLoading">拒
|
||||
<el-button @click="doAudit(false)" type="danger"
|
||||
:loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
@@ -390,6 +390,38 @@
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<el-dialog title="审核信息" :visible.sync="dialogVisible" width="40%" :close-on-click-modal="false">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form" :rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="batchDoAudit(false)">拒 绝</el-button>
|
||||
<el-button type="primary" @click="batchDoAudit(true)">通 过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<user-change-history ref="userChangeHistory"></user-change-history>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -400,6 +432,8 @@
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
selection: [],
|
||||
active: 'info',
|
||||
submitLoading: false,
|
||||
formRules: {},
|
||||
@@ -415,7 +449,10 @@
|
||||
unionGroupId: null,
|
||||
source: source,
|
||||
searchName: "u.username",
|
||||
audit: 2
|
||||
audit: 2,
|
||||
changeTypes: [],
|
||||
personTypes: [],
|
||||
changeOrigins: []
|
||||
},
|
||||
units: [],
|
||||
unions: [],
|
||||
@@ -426,26 +463,62 @@
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号', checked: true},
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'MMobile', label: '联系电话'},
|
||||
{prop: 'mobile', label: '联系电话'},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
// {prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
// {prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
{prop: 'type', label: '变更类型', sortable: true},
|
||||
{prop: 'applyDate', label: '申请时间', sortable: true},
|
||||
{prop: 'applyOrigin', label: '申请方式', sortable: true},
|
||||
{prop: 'stateId', label: '状态', sortable: true},
|
||||
],
|
||||
isThreeUnit: null,
|
||||
isThreeUnit: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=' + new Date().getTime()),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
openUserChangeInfo({hisId}){
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
|
||||
},
|
||||
|
||||
async batchDoAudit(pass) {
|
||||
const confirm = await this.$confirm('您确定要批量审核【' + this.selection.map(v => v.username) + '】吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if ('confirm' === confirm) {
|
||||
this.formData.auditPass = pass
|
||||
this.formData.recordIds = JSON.stringify(this.selection.map(v => v.id))
|
||||
const resp = await $.post("/platform/member/change/audit/batchDoAudit", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.dialogVisible = false
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
batchOpenAudit() {
|
||||
if (this.pageForm.source === 2) {
|
||||
this.active = 'school'
|
||||
}
|
||||
this.formData = {
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
handleSelectionChange(row) {
|
||||
this.selection = row
|
||||
},
|
||||
async doAudit(pass) {
|
||||
if (!pass) {
|
||||
const confirm = await this.$confirm('您确定要拒绝吗?', '提示', {
|
||||
@@ -460,13 +533,13 @@
|
||||
this.submitLoading = true
|
||||
const resp = await $.post("/platform/member/change/audit/doAudit", this.formData)
|
||||
this.submitLoading = false
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
//更新用户信息
|
||||
this.info.userId = ""
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -474,7 +547,7 @@
|
||||
this.$set(row, "loading", true)
|
||||
const resp = await $.get("/platform/member/common/findChangeApplyInfo", {id: row.id})
|
||||
this.$set(row, "loading", false)
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
const data = resp.data
|
||||
data.audit = audit
|
||||
this.info = data
|
||||
@@ -498,7 +571,7 @@
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -506,11 +579,17 @@
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
this.pageForm.date = JSON.stringify(this.pageForm.dateRange)
|
||||
$.post("/platform/member/change/audit/pageData", this.pageForm, (data) => {
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.userStates = JSON.stringify(pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
|
||||
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
|
||||
pageForm.date = JSON.stringify(pageForm.date)
|
||||
|
||||
$.post("/platform/member/change/audit/pageData", pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code == 0) {
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
@@ -533,18 +612,9 @@
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
||||
if (this.isThreeUnit) {
|
||||
this.tableColumns.forEach(v => {
|
||||
if (["threeUnitName", "unionGroupName"].includes(v.prop)) {
|
||||
v.checked = 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
this.pageData();
|
||||
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
|
||||
@@ -436,7 +436,7 @@ layout("/layouts/platform.html"){
|
||||
components: {
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=' + new Date().getTime()),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=' + new Date().getTime()),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -21,9 +21,7 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-label">任务:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.taskId" style="width: 100%">
|
||||
<el-option v-for="item in memberCheckTaskOptions"
|
||||
:label="item.taskName"
|
||||
:value="item.id"></el-option>
|
||||
<el-option v-for="item in memberCheckTaskOptions" :label="item.taskName" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,12 +29,14 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">职工信息:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-input
|
||||
placeholder="请输入内容"
|
||||
clearable
|
||||
v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch"
|
||||
>
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型" style="width: 80px">
|
||||
<el-option label="姓名" value="username"></el-option>
|
||||
<el-option label="工号" value="loginname"></el-option>
|
||||
</el-select>
|
||||
@@ -44,31 +44,35 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
placeholder="所属工会"
|
||||
v-model="pageForm.unionId"
|
||||
style="width: 100%"
|
||||
clearable="true"
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
filterable="true"
|
||||
>
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">组成单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="组成单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
placeholder="组成单位"
|
||||
v-model="pageForm.unitId"
|
||||
style="width: 100%"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true"
|
||||
>
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -76,10 +80,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">性  别:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.sex" style="width: 100%" clearable
|
||||
placeholder="请选择">
|
||||
<el-option v-for="sex in sexOptions" :label="sex"
|
||||
:value="sex"></el-option>
|
||||
<el-select v-model="pageForm.sex" style="width: 100%" clearable placeholder="请选择">
|
||||
<el-option v-for="sex in sexOptions" :label="sex" :value="sex"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -87,48 +89,63 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userStates"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="userState"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.userStates"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="userState"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personTypes"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.personTypes"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select
|
||||
v-model="pageForm.preparedBy"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="PREPARED_BY"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">变更类型:</div>
|
||||
<div class="search-item-option">
|
||||
<enum-select v-model="pageForm.changeTypes"
|
||||
enum="UserChangeType"
|
||||
label="description"
|
||||
multiple
|
||||
value="code"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="变更类型"
|
||||
<enum-select
|
||||
v-model="pageForm.changeTypes"
|
||||
enum="UserChangeType"
|
||||
label="description"
|
||||
multiple
|
||||
value="code"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="变更类型"
|
||||
></enum-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search"
|
||||
@click="doSearch();getNumData();getUnionTaskStatus()">搜索
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch();getNumData();getUnionTaskStatus()">搜索</el-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
@@ -136,16 +153,19 @@ layout("/layouts/platform.html"){
|
||||
<table-tool label="人员列表" :app="this">
|
||||
<template #func>
|
||||
<!-- <span class="text-danger">人员信息是否异动:</span>-->
|
||||
<el-select v-model="pageForm.isMember" @change="doSearch();getNumData()"
|
||||
:clearable="false" size="small"
|
||||
style="width: 200px;margin-right: 5px">
|
||||
<el-select
|
||||
v-model="pageForm.isMember"
|
||||
@change="doSearch();getNumData()"
|
||||
:clearable="false"
|
||||
size="small"
|
||||
style="width: 200px; margin-right: 5px"
|
||||
>
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option label="是会员" value="1"></el-option>
|
||||
<el-option label="不是会员" value="0"></el-option>
|
||||
</el-select>
|
||||
|
||||
<el-radio-group v-model="pageForm.changed" @change="doSearch" class="mr5"
|
||||
size="small">
|
||||
<el-radio-group v-model="pageForm.changed" @change="doSearch" class="mr5" size="small">
|
||||
<el-radio-button label="">全部({{numData.userSumNum}})</el-radio-button>
|
||||
<el-radio-button :label="1">有变化({{numData.changeNum}})</el-radio-button>
|
||||
<el-radio-button :label="0">无变化({{numData.notChangeNum}})</el-radio-button>
|
||||
@@ -174,20 +194,20 @@ layout("/layouts/platform.html"){
|
||||
<!-- </el-dropdown-menu>-->
|
||||
<!-- </el-dropdown>-->
|
||||
|
||||
<el-button icon="el-icon-success" size="small" type="primary"
|
||||
@click="submitCheck"
|
||||
:disabled="unionTaskStatus || !allowOperationTask">
|
||||
<el-button
|
||||
icon="el-icon-success"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="submitCheck"
|
||||
:disabled="unionTaskStatus || !allowOperationTask"
|
||||
>
|
||||
全部核对完成,提交核对
|
||||
</el-button>
|
||||
|
||||
<el-button v-if="unionTaskStatus" type="primary" size="small"
|
||||
@click="checkAgain">
|
||||
重新核对
|
||||
</el-button>
|
||||
<el-button v-if="unionTaskStatus" type="primary" size="small" @click="checkAgain">重新核对</el-button>
|
||||
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary"
|
||||
style="float: right"
|
||||
size="small" @click="doExportByUnion">导出
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary" style="float: right" size="small" @click="doExportByUnion">
|
||||
导出
|
||||
</el-button>
|
||||
|
||||
<!-- <el-button :disabled="!checkUsers.length" type="primary" size="small"-->
|
||||
@@ -195,72 +215,79 @@ layout("/layouts/platform.html"){
|
||||
<!-- @click="openUnitMove" class="ml5">-->
|
||||
<!-- 单位调整-->
|
||||
<!-- </el-button>-->
|
||||
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table" ref="table"
|
||||
@selection-change="tableHandleSelectionChange">
|
||||
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%"
|
||||
row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading"
|
||||
:size="tableSize"
|
||||
class="vi-table"
|
||||
ref="table"
|
||||
@selection-change="tableHandleSelectionChange"
|
||||
>
|
||||
<!-- <el-table-column type="selection" :reserve-selection="true"></el-table-column>-->
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号" width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
>
|
||||
</el-table-column>
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column label="异动信息" header-align="center">
|
||||
<el-table-column label="更新时间" prop="changeTime" min-width="145px"
|
||||
header-align="center" sortable
|
||||
align="center" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="异动类型" prop="changeTypes" header-align="center"
|
||||
align="center" show-overflow-tooltip sortable>
|
||||
<el-table-column
|
||||
label="更新时间"
|
||||
prop="changeTime"
|
||||
min-width="145px"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column label="异动类型" prop="changeTypes" header-align="center" align="center" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span style="color: #0e78c5;cursor: pointer" @click="openUserChangeInfo(row)">
|
||||
{{getChangeTypes(row.changeTypes)}}
|
||||
</span>
|
||||
<span style="color: #0e78c5; cursor: pointer" @click="openUserChangeInfo(row)">{{getChangeTypes(row.changeTypes)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="会员" header-align="center" align="center" prop="member"
|
||||
show-overflow-tooltip sortable>
|
||||
<el-table-column label="会员" header-align="center" align="center" prop="member" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span v-if="row.member==1" class="text-success ">
|
||||
<i class="fa fa-circle ml5"></i> 是
|
||||
</span>
|
||||
<span v-if="row.member==1" class="text-success">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
是
|
||||
</span>
|
||||
<span v-else class="text-danger">
|
||||
<i class="fa fa-circle ml5"></i> 否
|
||||
</span>
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
否
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="变更状态" header-align="center" align="center"
|
||||
prop="welfareMember"
|
||||
show-overflow-tooltip sortable>
|
||||
<el-table-column label="变更状态" header-align="center" align="center" prop="welfareMember" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<vi-table-state v-if="row.stateId" :state="row"></vi-table-state>
|
||||
<vi-table-state v-else
|
||||
:state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
<vi-table-state v-else :state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column header-align="center" label="操作" width="200px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="openCheck(row)"
|
||||
:disabled="!(row.apply||row.reApply) || unionTaskStatus || !allowOperationTask">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
@click="openCheck(row)"
|
||||
:disabled="!(row.apply||row.reApply) || unionTaskStatus || !allowOperationTask"
|
||||
>
|
||||
核对
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -270,9 +297,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
<mem-change-apply ref="apply" :userid="userId"
|
||||
@submit="doSubmitChangeUser"
|
||||
change_mode="check"></mem-change-apply>
|
||||
<mem-change-apply ref="apply" :userid="userId" @submit="doSubmitChangeUser" change_mode="check"></mem-change-apply>
|
||||
</template>
|
||||
|
||||
<template #public>
|
||||
@@ -280,43 +305,39 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<user-change-history ref="userChangeHistory"></user-change-history>
|
||||
|
||||
</guava>
|
||||
|
||||
<el-drawer
|
||||
title="添加会员"
|
||||
:visible.sync="selectUserVisible"
|
||||
:before-close="handleClose" size="1200px">
|
||||
<el-drawer title="添加会员" :visible.sync="selectUserVisible" :before-close="handleClose" size="1200px">
|
||||
<member-user-select
|
||||
v-model="selectUsers"
|
||||
ref="userSelect"
|
||||
:page_size="10"
|
||||
:is_ghxzzz="is_ghxzzz"
|
||||
:sql_cnd="['(u.member is null or u.member = 0) and (c.taskId is null OR c.stateId=70)']"
|
||||
></member-user-select>
|
||||
|
||||
<member-user-select v-model="selectUsers" ref="userSelect" :page_size="10"
|
||||
:is_ghxzzz="is_ghxzzz"
|
||||
:sql_cnd="['(u.member is null or u.member = 0) and (c.taskId is null OR c.stateId=70)']"></member-user-select>
|
||||
|
||||
<span style="position: absolute;bottom: 20px;right: 20px">
|
||||
<el-button @click="selectUserVisible = false"
|
||||
:disabled="selectUserLoading">取 消</el-button>
|
||||
<el-button type="primary" @click="doBatchJoinMember"
|
||||
:loading="selectUserLoading">确定</el-button>
|
||||
<span style="position: absolute; bottom: 20px; right: 20px">
|
||||
<el-button @click="selectUserVisible = false" :disabled="selectUserLoading">取 消</el-button>
|
||||
<el-button type="primary" @click="doBatchJoinMember" :loading="selectUserLoading">确定</el-button>
|
||||
</span>
|
||||
</el-drawer>
|
||||
|
||||
<user-change-history ref="userChangeHistory"></user-change-history>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=' + new Date().getTime()),
|
||||
'member-user-select': httpVueLoader('/components/plugins/MemberUserTableSelect.vue?v=' + new Date().getTime()),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=' + new Date().getTime()),
|
||||
"mem-change-apply": httpVueLoader("/components/member/MemChangeApply.vue?v=" + new Date().getTime()),
|
||||
"member-user-select": httpVueLoader("/components/plugins/MemberUserTableSelect.vue?v=" + new Date().getTime()),
|
||||
"user-change-history": httpVueLoader("/components/userChangeHistory/userChangeHistory.vue?v=" + new Date().getTime())
|
||||
},
|
||||
computed: {
|
||||
allowOperationTask() {
|
||||
const {taskId} = this.pageForm
|
||||
const { taskId } = this.pageForm
|
||||
if (taskId) {
|
||||
const task = this.memberCheckTaskOptions.find(v => v.id === taskId)
|
||||
const task = this.memberCheckTaskOptions.find((v) => v.id === taskId)
|
||||
const startTime = moment(task.startTime).valueOf()
|
||||
const endTime = moment(task.endTime).valueOf()
|
||||
const nowDate = Date.now()
|
||||
@@ -334,33 +355,31 @@ layout("/layouts/platform.html"){
|
||||
unions: [],
|
||||
units: [],
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号', sortable: true},
|
||||
{prop: 'username', label: '姓名', sortable: true},
|
||||
{prop: 'sex', label: '性别', sortable: true, width: '100px'},
|
||||
{prop: 'birthday', label: '出生年月', sortable: true},
|
||||
{prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
||||
{ prop: "birthday", label: "出生年月", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionname", label: "所属工会", sortable: true },
|
||||
{ prop: "unitname", label: "所属单位", sortable: true }
|
||||
// {prop: 'threeUnitName', label: '所在科室', sortable: true},
|
||||
// {prop: 'unionGroupName', label: '工会小组', sortable: true},
|
||||
|
||||
],
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + '',
|
||||
searchName: 'username',
|
||||
changed: '',
|
||||
isMember: '1',
|
||||
unionId: '',
|
||||
unitId: '',
|
||||
unionGroupId: '',
|
||||
year: new Date().getFullYear() + "",
|
||||
searchName: "username",
|
||||
changed: "",
|
||||
isMember: "1",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
unionGroupId: "",
|
||||
|
||||
changeTypes: [],
|
||||
personTypes: [],
|
||||
changeOrigins: []
|
||||
|
||||
},
|
||||
sexOptions: ['男', '女'],
|
||||
sexOptions: ["男", "女"],
|
||||
|
||||
memberCheckTaskOptions: [],
|
||||
changeType: {},
|
||||
@@ -371,7 +390,7 @@ layout("/layouts/platform.html"){
|
||||
notChangeNum: 0,
|
||||
userSumNum: 0,
|
||||
memberNum: 0,
|
||||
notMemberNum: 0,
|
||||
notMemberNum: 0
|
||||
},
|
||||
selectUserVisible: false,
|
||||
selectUsers: [],
|
||||
@@ -380,45 +399,54 @@ layout("/layouts/platform.html"){
|
||||
unitMoveUnions: [],
|
||||
unitMoveUnits: [],
|
||||
unitMoveFormData: {
|
||||
unitId: '',
|
||||
unionId: '',
|
||||
unitName: '',
|
||||
unionName: ''
|
||||
unitId: "",
|
||||
unionId: "",
|
||||
unitName: "",
|
||||
unionName: ""
|
||||
},
|
||||
checkUsers: [],
|
||||
checkUsers: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async openUserChangeInfo({hisId, changeTypes}) {
|
||||
async openUserChangeInfo({ hisId, changeTypes }) {
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(hisId, changeTypes)
|
||||
},
|
||||
getChangeTypes(changeTypes) {
|
||||
if (changeTypes) {
|
||||
const c = JSON.parse(changeTypes)
|
||||
return c.map(v => {
|
||||
return this.changeType[v]
|
||||
}).join(',')
|
||||
return c
|
||||
.map((v) => {
|
||||
return this.changeType[v]
|
||||
})
|
||||
.join(",")
|
||||
}
|
||||
return null
|
||||
},
|
||||
doExportByUnion() {
|
||||
let props = {}
|
||||
this.tableColumns.forEach(v => {
|
||||
this.tableColumns.forEach((v) => {
|
||||
props[v.prop] = v.label
|
||||
})
|
||||
const {unionId, unitId, unionGroupId, year} = this.pageForm
|
||||
window.open("/platform/member/inquire/integrate/doExportByUnion?=unitId=" + unitId
|
||||
+ "&unionId=" + unionId
|
||||
+ "&year=" + year
|
||||
+ "&unionGroupId=" + unionGroupId
|
||||
+ "&props=" + JSON.stringify(props))
|
||||
const { unionId, unitId, unionGroupId, year } = this.pageForm
|
||||
window.open(
|
||||
"/platform/member/inquire/integrate/doExportByUnion?=unitId=" +
|
||||
unitId +
|
||||
"&unionId=" +
|
||||
unionId +
|
||||
"&year=" +
|
||||
year +
|
||||
"&unionGroupId=" +
|
||||
unionGroupId +
|
||||
"&props=" +
|
||||
JSON.stringify(props)
|
||||
)
|
||||
},
|
||||
|
||||
async afterEdit(memData) {
|
||||
if (!this.userId) {
|
||||
await $.post(" /platform/member/info/make/joinMemberFamily", memData)
|
||||
}
|
||||
this.userId = ''
|
||||
this.userId = ""
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
},
|
||||
@@ -433,15 +461,15 @@ layout("/layouts/platform.html"){
|
||||
if (threeUnitId) {
|
||||
aa = true
|
||||
}
|
||||
this.$confirm('您确定将选择的用户加入会员' + (aa ? "并修改单位和科室?" : "?"))
|
||||
.then(async _ => {
|
||||
this.$confirm("您确定将选择的用户加入会员" + (aa ? "并修改单位和科室?" : "?"))
|
||||
.then(async (_) => {
|
||||
this.selectUserLoading = true
|
||||
const resp = await $.post("/platform/member/change/mange/joinWelfareMember", {
|
||||
userIds: JSON.stringify(this.selectUsers),
|
||||
taskId: this.pageForm.taskId,
|
||||
unitId: unitId,
|
||||
threeUnitId: threeUnitId,
|
||||
});
|
||||
threeUnitId: threeUnitId
|
||||
})
|
||||
this.selectUserLoading = false
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
@@ -451,19 +479,16 @@ layout("/layouts/platform.html"){
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
})
|
||||
.catch(_ => {
|
||||
|
||||
});
|
||||
|
||||
.catch((_) => {})
|
||||
},
|
||||
pushDropdownCommand({type}) {
|
||||
if (type == 'select') {
|
||||
pushDropdownCommand({ type }) {
|
||||
if (type == "select") {
|
||||
this.selectUsers = []
|
||||
this.selectUserVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.userSelect.init()
|
||||
})
|
||||
} else if (type == 'add') {
|
||||
} else if (type == "add") {
|
||||
this.userId = ""
|
||||
this.$refs.guava.public()
|
||||
if (!this.userId) {
|
||||
@@ -475,80 +500,79 @@ layout("/layouts/platform.html"){
|
||||
openUnitMove() {
|
||||
this.unitMoveVisibile = true
|
||||
this.unitMoveFormData = {
|
||||
unitId: '',
|
||||
unionId: '',
|
||||
unitName: '',
|
||||
unionName: ''
|
||||
unitId: "",
|
||||
unionId: "",
|
||||
unitName: "",
|
||||
unionName: ""
|
||||
}
|
||||
},
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
this.$confirm("确认关闭?")
|
||||
.then((_) => {
|
||||
done()
|
||||
})
|
||||
.catch(_ => {
|
||||
});
|
||||
.catch((_) => {})
|
||||
},
|
||||
async moveUnionsChange(val) {
|
||||
if (val) {
|
||||
this.unitMoveUnits = await getUnits(val)
|
||||
this.$set(this.unitMoveFormData, 'unionName', this.unitMoveUnions.find(v => v.id === val).unionname)
|
||||
this.$set(this.unitMoveFormData, 'unitId', '')
|
||||
this.$set(this.unitMoveFormData, 'unitName', '')
|
||||
this.$set(this.unitMoveFormData, "unionName", this.unitMoveUnions.find((v) => v.id === val).unionname)
|
||||
this.$set(this.unitMoveFormData, "unitId", "")
|
||||
this.$set(this.unitMoveFormData, "unitName", "")
|
||||
} else {
|
||||
this.$set(this.unitMoveFormData, 'unitId', '')
|
||||
this.$set(this.unitMoveFormData, 'unitName', '')
|
||||
this.$set(this.unitMoveFormData, 'unionName', '')
|
||||
this.$set(this.unitMoveFormData, "unitId", "")
|
||||
this.$set(this.unitMoveFormData, "unitName", "")
|
||||
this.$set(this.unitMoveFormData, "unionName", "")
|
||||
this.unitMoveUnits = []
|
||||
}
|
||||
},
|
||||
async moveUnitChange(val) {
|
||||
if (val) {
|
||||
this.$set(this.unitMoveFormData, 'unitName', this.unitMoveUnits.find(v => v.id === val).name)
|
||||
this.$set(this.unitMoveFormData, "unitName", this.unitMoveUnits.find((v) => v.id === val).name)
|
||||
} else {
|
||||
this.$set(this.unitMoveFormData, 'unitName', '')
|
||||
this.$set(this.unitMoveFormData, "unitName", "")
|
||||
}
|
||||
if (val) {
|
||||
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(val, null)
|
||||
}
|
||||
},
|
||||
async doUnitMove() {
|
||||
if (this.unitMoveFormData.unitId === '') {
|
||||
this.notifyWarning('请选择新单位!')
|
||||
if (this.unitMoveFormData.unitId === "") {
|
||||
this.notifyWarning("请选择新单位!")
|
||||
return
|
||||
}
|
||||
if (this.unitMoveFormData.threeUnitId === '') {
|
||||
this.notifyWarning('请选择新科室!')
|
||||
if (this.unitMoveFormData.threeUnitId === "") {
|
||||
this.notifyWarning("请选择新科室!")
|
||||
return
|
||||
}
|
||||
|
||||
const params = {
|
||||
unitId: this.unitMoveFormData.unitId,
|
||||
threeUnitId: this.unitMoveFormData.threeUnitId,
|
||||
userId: this.checkUsers.map(v => v.id)
|
||||
userId: this.checkUsers.map((v) => v.id)
|
||||
}
|
||||
|
||||
const resp = await $.post('/platform/member/change/mange/userUnitMove', params)
|
||||
const resp = await $.post("/platform/member/change/mange/userUnitMove", params)
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
await this.getNumData()
|
||||
this.$refs.table.clearSelection();
|
||||
this.$refs.table.clearSelection()
|
||||
this.unitMoveVisibile = false
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
tableHandleSelectionChange(val) {
|
||||
this.checkUsers = val;
|
||||
this.checkUsers = val
|
||||
},
|
||||
async threeUnitChange(val) {
|
||||
if (val) {
|
||||
const threeUnit = this.threeUnits.find(v => v.id === val)
|
||||
const threeUnit = this.threeUnits.find((v) => v.id === val)
|
||||
const groupName = threeUnit.groupname
|
||||
this.$set(this.unitMoveFormData, 'threeUnitName', threeUnit.name)
|
||||
this.$set(this.unitMoveFormData, 'unionGroupName', groupName)
|
||||
this.$set(this.unitMoveFormData, "threeUnitName", threeUnit.name)
|
||||
this.$set(this.unitMoveFormData, "unionGroupName", groupName)
|
||||
} else {
|
||||
this.$set(this.unitMoveFormData, 'unionGroupName', null)
|
||||
this.$set(this.unitMoveFormData, "unionGroupName", null)
|
||||
}
|
||||
},
|
||||
async getThreeUnits() {
|
||||
@@ -565,7 +589,7 @@ layout("/layouts/platform.html"){
|
||||
*/
|
||||
async doSubmitChangeUser(formData) {
|
||||
formData.taskId = this.pageForm.taskId
|
||||
const resp = await $.post(loc() + '/doSubmitChangeUser', formData)
|
||||
const resp = await $.post(loc() + "/doSubmitChangeUser", formData)
|
||||
this.$refs.apply.closeLoading()
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
@@ -586,14 +610,14 @@ layout("/layouts/platform.html"){
|
||||
this.notifyWarning("请选择需要核对的分工会!")
|
||||
return
|
||||
}
|
||||
const confirm = await this.$confirm('此操作会提交至校工会确认,请确认核对完成了吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
const confirm = await this.$confirm("此操作会提交至校工会确认,请确认核对完成了吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
if ('confirm' !== confirm) return
|
||||
const {taskId} = this.pageForm
|
||||
const resp = await $.post(loc() + '/submitCheck', this.pageForm)
|
||||
if ("confirm" !== confirm) return
|
||||
const { taskId } = this.pageForm
|
||||
const resp = await $.post(loc() + "/submitCheck", this.pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.notifySuccess(resp.msg)
|
||||
@@ -604,34 +628,32 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
|
||||
async getMemberCheckTaskOptions() {
|
||||
const resp = await $.get('/platform/member/check/task/getAllTask')
|
||||
const resp = await $.get("/platform/member/check/task/getAllTask")
|
||||
this.memberCheckTaskOptions = resp.data
|
||||
if (this.memberCheckTaskOptions.length) {
|
||||
this.$set(this.pageForm, 'taskId', this.memberCheckTaskOptions[0].id)
|
||||
this.$set(this.pageForm, "taskId", this.memberCheckTaskOptions[0].id)
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === "true") {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
this.unionGroups = await unionGroupsByUnionId(this.pageForm.unionId)
|
||||
|
||||
},
|
||||
async getChangeType() {
|
||||
const changeType = {}
|
||||
const changeTypeOptions = await getEnumOptions("UserChangeType")
|
||||
changeTypeOptions.forEach(v => {
|
||||
changeTypeOptions.forEach((v) => {
|
||||
changeType[v.code] = v.description
|
||||
})
|
||||
return changeType
|
||||
},
|
||||
async getUnionTaskStatus() {
|
||||
|
||||
const {taskId} = this.pageForm
|
||||
const resp = await $.get(loc() + '/getUnionTaskStatus', this.pageForm)
|
||||
const { taskId } = this.pageForm
|
||||
const resp = await $.get(loc() + "/getUnionTaskStatus", this.pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.unionTaskStatus = resp.data
|
||||
}
|
||||
@@ -641,15 +663,15 @@ layout("/layouts/platform.html"){
|
||||
this.notifyWarning("请选择需要重新核对的工会!")
|
||||
return
|
||||
}
|
||||
const confirm = await this.$confirm('您确定要重新核对吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
const confirm = await this.$confirm("您确定要重新核对吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
if ('confirm' !== confirm) return
|
||||
if ("confirm" !== confirm) return
|
||||
|
||||
const {taskId} = this.pageForm
|
||||
const resp = await $.get(loc() + '/checkAgain', this.pageForm)
|
||||
const { taskId } = this.pageForm
|
||||
const resp = await $.get(loc() + "/checkAgain", this.pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.getUnionTaskStatus()
|
||||
}
|
||||
@@ -660,7 +682,7 @@ layout("/layouts/platform.html"){
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
|
||||
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
|
||||
const resp = await $.post(loc() + '/getButtonNum', pageForm)
|
||||
const resp = await $.post(loc() + "/getButtonNum", pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.numData = resp.data
|
||||
} else {
|
||||
@@ -669,35 +691,38 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
sublime.showLoadingbar()
|
||||
this.tableLoading = true
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.userStates = JSON.stringify(pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
|
||||
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
|
||||
$.post(loc() + '/pageData', pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
|
||||
$.post(
|
||||
loc() + "/pageData",
|
||||
pageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar()
|
||||
this.tableLoading = false
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getMemberCheckTaskOptions()
|
||||
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('H03')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'false') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('H03')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === "false") {
|
||||
this.unions = await getUnions(null, true)
|
||||
this.is_ghxzzz = true
|
||||
this.$set(this.pageForm, "unionId", this.unions[0].id)
|
||||
} else {
|
||||
|
||||
this.unions = await getUnions(null, false)
|
||||
}
|
||||
this.flushUnits()
|
||||
|
||||
@@ -18,7 +18,8 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-option label="姓名" value="username"></el-option>
|
||||
<el-option label="工号" value="loginname"></el-option>
|
||||
@@ -30,11 +31,13 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -42,17 +45,18 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
@@ -75,7 +79,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
@@ -92,7 +97,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%" clearable
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
@@ -101,7 +107,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%" clearable
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%"
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"></dict-select>
|
||||
</div>
|
||||
@@ -118,7 +125,8 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
|
||||
<more v-model="searchMore"></more>
|
||||
</div>
|
||||
@@ -129,17 +137,21 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="非会员用户列表" :app="this">
|
||||
<template #func>
|
||||
<el-button icon="el-icon-document-add" type="primary" size="small" :loading="submitLoading"
|
||||
<el-button icon="el-icon-document-add" type="primary" size="small"
|
||||
:loading="submitLoading"
|
||||
@click="exportNotMember">导出
|
||||
</el-button>
|
||||
<el-button icon="el-icon-s-promotion" type="primary" size="small" :loading="submitLoading"
|
||||
<el-button icon="el-icon-s-promotion" type="primary" size="small"
|
||||
:loading="submitLoading"
|
||||
@click="joinMemberFamily">批量设置
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" ref="table" @selection-change="handleSelectionChange"
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading" ref="table"
|
||||
@selection-change="handleSelectionChange"
|
||||
:size="tableSize" class="vi-table">
|
||||
<el-table-column :reserve-selection="true"
|
||||
type="selection"
|
||||
@@ -158,12 +170,14 @@ layout("/layouts/platform.html"){
|
||||
<template v-if="column.prop=='type'" scope="{row:{type}}">
|
||||
{{changeType[type]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='applyOrigin'" scope="{row:{applyOrigin}}">
|
||||
<template v-else-if="column.prop=='applyOrigin'"
|
||||
scope="{row:{applyOrigin}}">
|
||||
{{changeOrigin[applyOrigin]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='stateId'" scope="{row}">
|
||||
<vi-table-state v-if="row.stateId" :state="row"></vi-table-state>
|
||||
<vi-table-state v-else :state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
<vi-table-state v-else
|
||||
:state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
</template>
|
||||
<template v-else-if="column.prop==='unitname'" scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unitcode+')':null}}{{row.unitname}}
|
||||
@@ -173,7 +187,8 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作"
|
||||
width="100px">
|
||||
<template scope="scope">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
@@ -226,8 +241,6 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
active: 'info',
|
||||
submitLoading: false,
|
||||
pageForm: {
|
||||
searchName: "username",
|
||||
},
|
||||
@@ -235,7 +248,10 @@ layout("/layouts/platform.html"){
|
||||
userId: "",
|
||||
unions: [],
|
||||
units: [],
|
||||
active: 'info',
|
||||
|
||||
selection: [],
|
||||
submitLoading: false,
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'username', label: '姓名'},
|
||||
@@ -247,15 +263,13 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
{prop: 'campusName', label: '所属校区', sortable: true},
|
||||
// {prop: 'campusName', label: '所属校区', sortable: true},
|
||||
],
|
||||
isThreeUnit:null,
|
||||
isThreeUnit: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime())
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -352,8 +366,9 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
this.pageData();
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
|
||||
@@ -44,7 +44,8 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-option label="姓名" value="username"></el-option>
|
||||
<el-option label="工号" value="loginname"></el-option>
|
||||
@@ -56,11 +57,13 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable>
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -68,115 +71,20 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable
|
||||
filterable>
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unionGroups"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in threeUnits"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!--<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%" clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%" clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"></dict-select>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">性  别:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.sex" style="width: 100%" clearable
|
||||
placeholder="请选择">
|
||||
<el-option v-for="sex in sexOptions" :label="sex" :value="sex"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">职  务:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.position"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">职  称:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.jobTitle"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="search-item">
|
||||
<div class="search-item-label">会员状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.memberStatus" style="width: 100%" clearable
|
||||
placeholder="会员状态" code="memberStatusText"></dict-select>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
|
||||
<more v-model="searchMore"></more>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -196,7 +104,8 @@ layout("/layouts/platform.html"){
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
|
||||
<el-link type="danger" v-if="personTypeOptions.length&&pageForm.personTypes.length"
|
||||
<el-link type="danger"
|
||||
v-if="personTypeOptions.length&&pageForm.personTypes.length"
|
||||
:underline="false"
|
||||
@click="pageForm.personTypes=[];doSearch()">清空
|
||||
</el-link>
|
||||
@@ -217,7 +126,8 @@ layout("/layouts/platform.html"){
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
|
||||
<el-link type="danger" v-if="userStateOptions.length&&pageForm.userStates.length"
|
||||
<el-link type="danger"
|
||||
v-if="userStateOptions.length&&pageForm.userStates.length"
|
||||
:underline="false"
|
||||
@click="pageForm.userStates=[];doSearch()">清空
|
||||
</el-link>
|
||||
@@ -237,19 +147,23 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="会员列表" :app="this">
|
||||
<template #func>
|
||||
<el-button type="primary" v-if="${@shiro.hasRole('sysadmin')}" size="small" icon="el-icon-time"
|
||||
<el-button type="primary" v-if="${@shiro.hasRole('sysadmin')}" size="small"
|
||||
icon="el-icon-time"
|
||||
@click="openArchive"
|
||||
>备份历史会员
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" icon="el-icon-download" @click="exportMember">固定格式导出
|
||||
<el-button type="primary" size="small" icon="el-icon-download"
|
||||
@click="exportMember">固定格式导出
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
@@ -271,7 +185,9 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" fixed="right">
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('SchoolUnionMemberAdmin')}"
|
||||
label="操作" fixed="right">
|
||||
<template scope="scope">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button plain size="mini">
|
||||
@@ -283,18 +199,13 @@ layout("/layouts/platform.html"){
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
|
||||
|
||||
<el-dropdown-item
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
|
||||
:command="{type:'edit',data:scope.row}">
|
||||
<el-dropdown-item :command="{type:'edit',data:scope.row}">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
|
||||
<!-- <el-dropdown-item v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" :command="{type:'delete',data:scope.row}">-->
|
||||
<!-- <el-dropdown-item v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" :command="{type:'delete',data:scope.row}">-->
|
||||
<!-- 删除-->
|
||||
<!-- </el-dropdown-item>-->
|
||||
|
||||
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -386,6 +297,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'jobTitle', label: '职称', sortable: true, checked: 0},
|
||||
{prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: 'political', label: '政治面貌', sortable: true},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
@@ -409,15 +321,13 @@ layout("/layouts/platform.html"){
|
||||
);
|
||||
}
|
||||
},
|
||||
isThreeUnit: null,
|
||||
isThreeUnit: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
'member-cnd': httpVueLoader('/components/member/MemberCnd.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=' + new Date().getTime()),
|
||||
'member-cnd': httpVueLoader('/components/member/MemberCnd.vue?v=' + new Date().getTime())
|
||||
},
|
||||
methods: {
|
||||
checkUserStateType(state) {
|
||||
@@ -570,8 +480,10 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
this.pageData();
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
|
||||
@@ -19,7 +19,8 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-option label="姓名" value="username"></el-option>
|
||||
<el-option label="工号" value="loginname"></el-option>
|
||||
@@ -32,11 +33,13 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -44,54 +47,61 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unionGroups"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<template v-if="isThreeUnit">
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in threeUnits"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unionGroups"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in threeUnits"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%" clearable
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
@@ -100,7 +110,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%" clearable
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%"
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"></dict-select>
|
||||
</div>
|
||||
@@ -109,15 +120,18 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">会员状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.memberStatus" style="width: 100%" clearable
|
||||
placeholder="会员状态" code="memberStatusText"></dict-select>
|
||||
<dict-select v-model="pageForm.memberStatus" style="width: 100%"
|
||||
clearable
|
||||
placeholder="会员状态"
|
||||
code="memberStatusText"></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
|
||||
<more v-model="searchMore"></more>
|
||||
</div>
|
||||
@@ -128,13 +142,17 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="会员列表" :app="this">
|
||||
<template #func>
|
||||
<el-button icon="el-icon-plus" size="mini" @click="openAdd" type="primary">新增会员</el-button>
|
||||
<el-button icon="el-icon-plus" size="mini" @click="openAdd" type="primary">
|
||||
新增会员
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
@@ -149,12 +167,14 @@ layout("/layouts/platform.html"){
|
||||
<template v-if="column.prop=='type'" scope="{row:{type}}">
|
||||
{{changeType[type]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='applyOrigin'" scope="{row:{applyOrigin}}">
|
||||
<template v-else-if="column.prop=='applyOrigin'"
|
||||
scope="{row:{applyOrigin}}">
|
||||
{{changeOrigin[applyOrigin]}}
|
||||
</template>
|
||||
<template v-else-if="column.prop=='stateId'" scope="{row}">
|
||||
<vi-table-state v-if="row.stateId" :state="row"></vi-table-state>
|
||||
<vi-table-state v-else :state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
<vi-table-state v-else
|
||||
:state="{stateColor:'#1890ff',stateName:'暂无'}"></vi-table-state>
|
||||
</template>
|
||||
<template v-else-if="column.prop==='unitname'" scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unitcode+')':null}}{{row.unitname}}
|
||||
@@ -164,7 +184,8 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作"
|
||||
width="100px">
|
||||
<template scope="scope">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
@@ -226,7 +247,6 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
active: 'info',
|
||||
submitLoading: false,
|
||||
pageForm: {
|
||||
searchName: "username",
|
||||
@@ -245,17 +265,15 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true},
|
||||
{prop: 'campusName', label: '所属校区', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
],
|
||||
isThreeUnit: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
openAdd() {
|
||||
@@ -274,9 +292,9 @@ layout("/layouts/platform.html"){
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
const resp = await $.post(loc() + "/delete", {userId});
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
@@ -332,8 +350,18 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
||||
if (this.isThreeUnit) {
|
||||
this.tableColumns.forEach(v => {
|
||||
if (["threeUnitName", "unionGroupName"].includes(v.prop)) {
|
||||
v.checked = 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
this.pageData();
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
@@ -345,4 +373,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -48,7 +48,7 @@ layout("/layouts/platform.html"){
|
||||
return {}
|
||||
},
|
||||
components: {
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {},
|
||||
async created() {
|
||||
|
||||
@@ -7,7 +7,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
|
||||
.el-icon-close:before {
|
||||
content: '取消';
|
||||
content: "取消";
|
||||
color: #f78989;
|
||||
}
|
||||
|
||||
@@ -27,26 +27,33 @@ layout("/layouts/platform.html"){
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">姓名工号:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="请输入内容"
|
||||
clearable
|
||||
v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch"
|
||||
></el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable="true">
|
||||
<el-select
|
||||
placeholder="所属工会"
|
||||
v-model="pageForm.unionId"
|
||||
style="width: 100%"
|
||||
clearable="true"
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
filterable="true"
|
||||
>
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@@ -55,32 +62,33 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-select
|
||||
placeholder="所属单位"
|
||||
v-model="pageForm.unitId"
|
||||
style="width: 100%"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true"
|
||||
>
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unionGroups"
|
||||
:key="item.id"
|
||||
:label="item.groupName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
<el-select
|
||||
v-model="pageForm.unionGroupId"
|
||||
style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="getThreeUnits"
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option v-for="item in unionGroups" :key="item.id" :label="item.groupName" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -88,15 +96,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in threeUnits"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable clearable placeholder="请选择">
|
||||
<el-option v-for="item in threeUnits" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -105,26 +106,52 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%" clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.personType"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%" clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.userState"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select
|
||||
v-model="pageForm.userState"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">会员状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.memberStatus" style="width: 100%" clearable
|
||||
placeholder="会员状态" code="memberStatusText"></dict-select>
|
||||
<dict-select
|
||||
v-model="pageForm.memberStatus"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="会员状态"
|
||||
code="memberStatusText"
|
||||
></dict-select>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -137,19 +164,17 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<div class="search" style="position:relative;">
|
||||
<div class="search" style="position: relative">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工号开头:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input v-model="pageForm.startLoginNames" maxLength="100"
|
||||
placeholder="多个请用英文逗号分隔"></el-input>
|
||||
<el-input v-model="pageForm.startLoginNames" maxLength="100" placeholder="多个请用英文逗号分隔"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工号结尾:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input v-model="pageForm.endLoginNames" maxLength="100"
|
||||
placeholder="多个请用英文逗号分隔"></el-input>
|
||||
<el-input v-model="pageForm.endLoginNames" maxLength="100" placeholder="多个请用英文逗号分隔"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -157,21 +182,25 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<el-tag
|
||||
style="margin-right: 10px;margin-bottom: 10px;cursor: pointer"
|
||||
v-for="item in personTypeOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.personTypes.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('personTypes',item.name)">
|
||||
style="margin-right: 10px; margin-bottom: 10px; cursor: pointer"
|
||||
v-for="item in personTypeOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.personTypes.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('personTypes',item.name)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
<el-link type="danger" v-if="personTypeOptions.length&&pageForm.personTypes.length"
|
||||
:underline="false"
|
||||
@click="pageForm.personTypes=[];doSearch()">清空
|
||||
<el-link
|
||||
type="danger"
|
||||
v-if="personTypeOptions.length&&pageForm.personTypes.length"
|
||||
:underline="false"
|
||||
@click="pageForm.personTypes=[];doSearch()"
|
||||
>
|
||||
清空
|
||||
</el-link>
|
||||
<el-link :underline="false"
|
||||
@click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()"
|
||||
type="success">全部
|
||||
<el-link :underline="false" @click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()" type="success">
|
||||
全部
|
||||
</el-link>
|
||||
</div>
|
||||
</div>
|
||||
@@ -180,70 +209,105 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<el-tag
|
||||
style="margin-right: 10px;margin-bottom: 10px;cursor: pointer"
|
||||
v-for="item in userStateOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('userStates',item.name)">
|
||||
style="margin-right: 10px; margin-bottom: 10px; cursor: pointer"
|
||||
v-for="item in userStateOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('userStates',item.name)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
<el-link type="danger" v-if="userStateOptions.length&&pageForm.userStates.length"
|
||||
:underline="false"
|
||||
@click="pageForm.userStates=[];doSearch()">清空
|
||||
<el-link
|
||||
type="danger"
|
||||
v-if="userStateOptions.length&&pageForm.userStates.length"
|
||||
:underline="false"
|
||||
@click="pageForm.userStates=[];doSearch()"
|
||||
>
|
||||
清空
|
||||
</el-link>
|
||||
<el-link :underline="false"
|
||||
@click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()"
|
||||
type="success">全部
|
||||
<el-link :underline="false" @click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()" type="success">
|
||||
全部
|
||||
</el-link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query" style="position:absolute;right: 0;bottom: 0">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<div class="search-item" style="width: calc(100% - 160px)">
|
||||
<div class="search-item-label">人员性质:</div>
|
||||
<div class="search-item-option">
|
||||
<el-tag
|
||||
style="margin-right: 10px; margin-bottom: 10px; cursor: pointer"
|
||||
v-for="item in preparedByOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('preparedBys',item.name)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
<el-link
|
||||
type="danger"
|
||||
v-if="preparedByOptions.length&&pageForm.preparedBys.length"
|
||||
:underline="false"
|
||||
@click="pageForm.preparedBys=[];doSearch()"
|
||||
>
|
||||
清空
|
||||
</el-link>
|
||||
<el-link :underline="false" @click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()" type="success">
|
||||
全部
|
||||
</el-link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query" style="position: absolute; right: 0; bottom: 0">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="会员列表" :app="this">
|
||||
<table-tool label="人员列表" :app="this">
|
||||
<template #func>
|
||||
<el-button size="mini" @click="setBirthdayByIdCard" type="primary">
|
||||
根据身份证设置生日
|
||||
</el-button>
|
||||
<el-button size="mini" @click="setBirthdayByIdCard" type="primary">根据身份证设置生日</el-button>
|
||||
|
||||
<el-tooltip content="温馨提醒:设置会员前,请事先更新基础数据" placement="top">
|
||||
<el-button size="mini" @click="setMember" type="primary">
|
||||
设置会员
|
||||
</el-button>
|
||||
<el-button size="mini" @click="setMember" type="primary">设置会员</el-button>
|
||||
</el-tooltip>
|
||||
|
||||
<el-tooltip content="温馨提醒:设置福利会员前,请事先更新基础数据" placement="top">
|
||||
<el-button size="mini" @click="setWelfareMember" type="primary">
|
||||
设置福利会员
|
||||
</el-button>
|
||||
<el-button size="mini" @click="setWelfareMember" type="primary">设置福利会员</el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%"
|
||||
row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading"
|
||||
:size="tableSize"
|
||||
class="vi-table"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
type="index"
|
||||
:index="indexMethod"
|
||||
label="序号"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
>
|
||||
<template v-if="column.prop=='type'" scope="{row:{type}}">
|
||||
{{changeType[type]}}
|
||||
</template>
|
||||
<template v-if="column.prop=='type'" scope="{row:{type}}">{{changeType[type]}}</template>
|
||||
<template v-else-if="column.prop==='unitname'" scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unitcode+')':null}}{{row.unitname}}
|
||||
</template>
|
||||
@@ -251,25 +315,28 @@ layout("/layouts/platform.html"){
|
||||
{{isDisPlayCode?'('+row.unioncode+')':null}}{{row.unionname}}
|
||||
</template>
|
||||
<template v-else-if="column.prop==='member'" scope="{row}">
|
||||
<span v-if="row.member==1" class="text-success ">
|
||||
<i class="fa fa-circle ml5"></i> 是
|
||||
<span v-if="row.member==1" class="text-success">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
是
|
||||
</span>
|
||||
<span v-else class="text-danger">
|
||||
<i class="fa fa-circle ml5"></i> 否
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
否
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.prop==='welfareMember'" scope="{row}">
|
||||
<span v-if="row.welfareMember==1" class="text-success ">
|
||||
<i class="fa fa-circle ml5"></i> 是
|
||||
<span v-if="row.welfareMember==1" class="text-success">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
是
|
||||
</span>
|
||||
<span v-else class="text-danger">
|
||||
<i class="fa fa-circle ml5"></i> 否
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
否
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
width="100px">
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="100px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="openView(row.id)">查看</el-button>
|
||||
</template>
|
||||
@@ -278,7 +345,6 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
@@ -290,16 +356,13 @@ layout("/layouts/platform.html"){
|
||||
<mem-change-records :userid="userId"></mem-change-records>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -307,39 +370,39 @@ layout("/layouts/platform.html"){
|
||||
pageForm: {
|
||||
userStates: [],
|
||||
personTypes: [],
|
||||
preparedBys: []
|
||||
},
|
||||
|
||||
userId: "",
|
||||
unions: [],
|
||||
units: [],
|
||||
active: 'info',
|
||||
active: "info",
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'sex', label: '性别'},
|
||||
{prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
{prop: 'member', label: '是否会员', sortable: true},
|
||||
{prop: 'welfareMember', label: '是否福利会员', sortable: true},
|
||||
{prop: 'mobile', label: '联系电话'},
|
||||
{prop: 'birthday', label: '生日'},
|
||||
{prop: 'campusName', label: '所属校区', sortable: true, checked: 0},
|
||||
{ prop: "loginname", label: "工号" },
|
||||
{ prop: "username", label: "姓名" },
|
||||
{ prop: "sex", label: "性别" },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionname", label: "所属工会", sortable: true },
|
||||
{ prop: "unitname", label: "所属单位", sortable: true },
|
||||
{ prop: "threeUnitName", label: "所在科室", sortable: true, checked: 0 },
|
||||
{ prop: "unionGroupName", label: "工会小组", sortable: true, checked: 0 },
|
||||
{ prop: "member", label: "是否会员", sortable: true },
|
||||
{ prop: "welfareMember", label: "是否福利会员", sortable: true },
|
||||
{ prop: "mobile", label: "联系电话" },
|
||||
{ prop: "birthday", label: "生日" }
|
||||
// {prop: 'campusName', label: '所属校区', sortable: true},
|
||||
],
|
||||
setMemberDialogVisible: false,
|
||||
personTypeOptions: [],
|
||||
userStateOptions: [],
|
||||
isThreeUnit:null,
|
||||
preparedByOptions: [],
|
||||
isThreeUnit: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
member: httpVueLoader("/components/member/MemberInfo.vue?v=" + new Date().getTime()),
|
||||
"mem-change-records": httpVueLoader("/components/member/MemChangeRecords.vue?v=" + new Date().getTime())
|
||||
},
|
||||
methods: {
|
||||
async pageData() {
|
||||
@@ -348,7 +411,8 @@ layout("/layouts/platform.html"){
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.userStates = JSON.stringify(pageForm.userStates)
|
||||
const {data, code, msg} = await $.post(loc() + '/pageData', pageForm)
|
||||
pageForm.preparedBys = JSON.stringify(pageForm.preparedBys)
|
||||
const { data, code, msg } = await $.post(loc() + "/pageData", pageForm)
|
||||
this.tableLoading = false
|
||||
sublime.closeLoadingbar()
|
||||
if (code === 0) {
|
||||
@@ -360,10 +424,10 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
|
||||
setBirthdayByIdCard() {
|
||||
this.$confirm('确定根据身份证设置生日吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
this.$confirm("确定根据身份证设置生日吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
const resp = await $.post(loc() + "/setBirthdayByIdCard")
|
||||
if (resp.code === 0) {
|
||||
@@ -376,7 +440,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
|
||||
tagClick(key, val) {
|
||||
const index = this.pageForm[key].findIndex(v => v === val)
|
||||
const index = this.pageForm[key].findIndex((v) => v === val)
|
||||
if (index > -1) {
|
||||
this.pageForm[key].splice(index, 1)
|
||||
} else {
|
||||
@@ -386,30 +450,37 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
|
||||
async setMember() {
|
||||
this.$confirm("<i class='el-icon-s-help' style='margin-right: 6px;'></i>" +
|
||||
"如果先清空已有数据,后更新,请选择<span style='color: red'>更新</span>" +
|
||||
"<span style='font-weight: bolder'>(这将清空目前所有的会员,请谨慎操作!)</span>" +
|
||||
"<br/>" +
|
||||
this.$confirm(
|
||||
"<i class='el-icon-s-help' style='margin-right: 6px;'></i>" +
|
||||
"如果追加或更新数据,请选择<span style='color: red'>追加</span>", '提示', {
|
||||
confirmButtonText: '更新',
|
||||
cancelButtonText: '追加',
|
||||
dangerouslyUseHTMLString: true,
|
||||
distinguishCancelAndClose: true,
|
||||
cancelButtonClass: 'btnCancel',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
await this.setMemberDo(true)
|
||||
}).catch(async action => {
|
||||
if (action === 'cancel') {
|
||||
await this.setMemberDo(false)
|
||||
"如果先清空已有数据,后更新,请选择<span style='color: red'>更新</span>" +
|
||||
"<span style='font-weight: bolder'>(这将清空目前所有的会员,请谨慎操作!)</span>" +
|
||||
"<br/>" +
|
||||
"<i class='el-icon-s-help' style='margin-right: 6px;'></i>" +
|
||||
"如果追加或更新数据,请选择<span style='color: red'>追加</span>",
|
||||
"提示",
|
||||
{
|
||||
confirmButtonText: "更新",
|
||||
cancelButtonText: "追加",
|
||||
dangerouslyUseHTMLString: true,
|
||||
distinguishCancelAndClose: true,
|
||||
cancelButtonClass: "btnCancel",
|
||||
type: "warning"
|
||||
}
|
||||
})
|
||||
)
|
||||
.then(async () => {
|
||||
await this.setMemberDo(true)
|
||||
})
|
||||
.catch(async (action) => {
|
||||
if (action === "cancel") {
|
||||
await this.setMemberDo(false)
|
||||
}
|
||||
})
|
||||
},
|
||||
async setMemberDo(confirm) {
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.userStates = JSON.stringify(pageForm.userStates)
|
||||
pageForm.preparedBys = JSON.stringify(pageForm.preparedBys)
|
||||
pageForm.confirm = confirm
|
||||
const resp = await $.post(loc() + "/setMemberByCnd", pageForm)
|
||||
if (resp.code === 0) {
|
||||
@@ -420,25 +491,31 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
setWelfareMember() {
|
||||
this.$confirm("<i class='el-icon-s-help' style='margin-right: 6px;'></i>" +
|
||||
"如果先清空已有数据,后更新,请选择<span style='color: red'>更新</span>" +
|
||||
"<span style='font-weight: bolder'>(这将清空目前所有的福利会员,请谨慎操作!)</span>" +
|
||||
"<br/>" +
|
||||
this.$confirm(
|
||||
"<i class='el-icon-s-help' style='margin-right: 6px;'></i>" +
|
||||
"如果追加或更新数据,请选择<span style='color: red'>追加</span>", '提示', {
|
||||
confirmButtonText: '更新',
|
||||
cancelButtonText: '追加',
|
||||
dangerouslyUseHTMLString: true,
|
||||
distinguishCancelAndClose: true,
|
||||
cancelButtonClass: 'btnCancel',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
await this.setWelfareMemberDo(true)
|
||||
}).catch(async action => {
|
||||
if (action === 'cancel') {
|
||||
await this.setWelfareMemberDo(false)
|
||||
"如果先清空已有数据,后更新,请选择<span style='color: red'>更新</span>" +
|
||||
"<span style='font-weight: bolder'>(这将清空目前所有的福利会员,请谨慎操作!)</span>" +
|
||||
"<br/>" +
|
||||
"<i class='el-icon-s-help' style='margin-right: 6px;'></i>" +
|
||||
"如果追加或更新数据,请选择<span style='color: red'>追加</span>",
|
||||
"提示",
|
||||
{
|
||||
confirmButtonText: "更新",
|
||||
cancelButtonText: "追加",
|
||||
dangerouslyUseHTMLString: true,
|
||||
distinguishCancelAndClose: true,
|
||||
cancelButtonClass: "btnCancel",
|
||||
type: "warning"
|
||||
}
|
||||
})
|
||||
)
|
||||
.then(async () => {
|
||||
await this.setWelfareMemberDo(true)
|
||||
})
|
||||
.catch(async (action) => {
|
||||
if (action === "cancel") {
|
||||
await this.setWelfareMemberDo(false)
|
||||
}
|
||||
})
|
||||
},
|
||||
async setWelfareMemberDo(confirm) {
|
||||
const pageForm = clone(this.pageForm)
|
||||
@@ -454,7 +531,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
openView(userId) {
|
||||
this.active = 'info'
|
||||
this.active = "info"
|
||||
this.userId = userId
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
@@ -469,26 +546,27 @@ layout("/layouts/platform.html"){
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
this.unionGroups = await unionGroupsByUnionId(this.pageForm.unionId)
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
||||
this.isThreeUnit = (await getConfigKey("isThreeUnit")) === "true"
|
||||
if (this.isThreeUnit) {
|
||||
this.tableColumns.forEach(v => {
|
||||
this.tableColumns.forEach((v) => {
|
||||
if (["threeUnitName", "unionGroupName"].includes(v.prop)) {
|
||||
v.checked = 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
this.pageData();
|
||||
this.pageData()
|
||||
this.personTypeOptions = await getDictOptions("UserType")
|
||||
this.userStateOptions = await getDictOptions("UserState")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.preparedByOptions = await getDictOptions("PREPARED_BY")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === "true") {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
this.$set(this.pageForm, 'unionId', this.unions ? this.unions[0].id : null)
|
||||
this.$set(this.pageForm, "unionId", this.unions ? this.unions[0].id : null)
|
||||
this.flushUnits()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue')
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -126,7 +126,7 @@ layout("/layouts/platform.html"){
|
||||
<div class="idx" v-else>{{$index+1}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="院级工会" prop="unioncode"
|
||||
<el-table-column align="center" header-align="center" label="分工会" prop="unioncode"
|
||||
show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
{{row.unionname}} {{isDisPlayCode?'('+row.unioncode+')':null}}
|
||||
@@ -341,16 +341,32 @@ layout("/layouts/platform.html"){
|
||||
return
|
||||
}
|
||||
|
||||
chart.unionMemberChart = new G2Plot.TinyArea('unionMemberChart', {
|
||||
chart.unionMemberChart = new G2Plot.Column('unionMemberChart', {
|
||||
data:chartData,
|
||||
autoFit: true,
|
||||
data: values,
|
||||
smooth: true,
|
||||
tooltip: {
|
||||
customContent: function (i, data) {
|
||||
if (labels[i]) {
|
||||
return labels[i] + '- ' + data[0]?.data?.y + '人';
|
||||
}
|
||||
return ''
|
||||
xField: 'unionname',
|
||||
yField: 'value',
|
||||
label: {
|
||||
// 可手动配置 label 数据标签位置
|
||||
position: 'middle', // 'top', 'bottom', 'middle',
|
||||
// 配置样式
|
||||
style: {
|
||||
fill: '#FFFFFF',
|
||||
opacity: 0.6,
|
||||
},
|
||||
},
|
||||
xAxis: {
|
||||
label: {
|
||||
autoHide: true,
|
||||
autoRotate: false,
|
||||
},
|
||||
},
|
||||
meta: {
|
||||
label: {
|
||||
alias: '类型',
|
||||
},
|
||||
value: {
|
||||
alias: '会员数',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -478,4 +494,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -33,11 +33,13 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -45,17 +47,18 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">所属单位:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||
style="width: 100%;"
|
||||
@change="getThreeUnits"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template v-if="searchMore">
|
||||
|
||||
<template v-if="isThreeUnit">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">工会小组:</div>
|
||||
@@ -78,7 +81,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">组成科室:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%" filterable
|
||||
<el-select v-model="pageForm.threeUnitId" style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
@@ -95,10 +99,12 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">职工信息:</div>
|
||||
<div class="search-item-option">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
<el-input placeholder="请输入内容" clearable
|
||||
v-model="pageForm.searchKeyword"
|
||||
style="width: 100%"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
<el-select v-model="pageForm.searchName" slot="prepend"
|
||||
placeholder="查询类型"
|
||||
style="width: 80px;">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
@@ -110,7 +116,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">人员类型:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%" clearable
|
||||
<dict-select v-model="pageForm.personType" style="width: 100%"
|
||||
clearable
|
||||
placeholder="人员类型"
|
||||
code="UserType"></dict-select>
|
||||
</div>
|
||||
@@ -119,7 +126,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">在职状态:</div>
|
||||
<div class="search-item-option">
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%" clearable
|
||||
<dict-select v-model="pageForm.userState" style="width: 100%"
|
||||
clearable
|
||||
placeholder="在职状态"
|
||||
code="UserState"></dict-select>
|
||||
</div>
|
||||
@@ -128,7 +136,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">会员状态:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="会员状态" v-model="pageForm.memberStatus" style="width: 100%"
|
||||
<el-select placeholder="会员状态" v-model="pageForm.memberStatus"
|
||||
style="width: 100%"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in memberStatusList" :label="item.name"
|
||||
@@ -142,7 +151,8 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
|
||||
<more v-model="searchMore"></more>
|
||||
</div>
|
||||
@@ -152,10 +162,21 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="用户列表" :app="this">
|
||||
<template #func>
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary"
|
||||
style="float: right"
|
||||
size="medium" @click="doExportByUnion">按分工会导出
|
||||
</el-button>
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary"
|
||||
style="float: right"
|
||||
size="medium" @click="doExport">导出
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData">
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
@@ -202,6 +223,16 @@ layout("/layouts/platform.html"){
|
||||
pageForm: {
|
||||
searchName: "u.username",
|
||||
year: new Date().getFullYear() - 1 + "",
|
||||
searchKeyword: '',
|
||||
unionId: '',
|
||||
unitId: '',
|
||||
threeUnitId: '',
|
||||
unionGroupId: '',
|
||||
personType: '',
|
||||
userState: '',
|
||||
memberStatus: '',
|
||||
memberSearchName: '',
|
||||
memberSearchKeyWord: ''
|
||||
},
|
||||
unions: [],
|
||||
units: [],
|
||||
@@ -217,20 +248,43 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
],
|
||||
userId:null,
|
||||
active:'info',
|
||||
isThreeUnit:null,
|
||||
userId: null,
|
||||
active: 'info',
|
||||
isThreeUnit: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'member-cnd': httpVueLoader('/components/member/MemberCnd.vue'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
|
||||
'member-cnd': httpVueLoader('/components/member/MemberCnd.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
openView(row){
|
||||
this.userId = row.userId
|
||||
doExportByUnion() {
|
||||
window.open(loc() + '/doExportByUnion?year=' + this.pageForm.year)
|
||||
},
|
||||
doExport() {
|
||||
const {
|
||||
year,
|
||||
unionId,
|
||||
unitId,
|
||||
threeUnitId,
|
||||
unionGroupId,
|
||||
personType,
|
||||
userState,
|
||||
memberStatus,
|
||||
memberSearchName,
|
||||
memberSearchKeyWord,
|
||||
searchName,
|
||||
searchKeyword
|
||||
} = this.pageForm
|
||||
window.open(loc() + '/doExport?year=' + year + '&unionId=' + unionId + '&unitId=' + unitId + '&threeUnitId=' + threeUnitId +
|
||||
'&unionGroupId=' + unionGroupId + '&personType=' + personType + '&userState=' + userState + '&memberStatus=' + memberStatus +
|
||||
'&memberSearchName=' + memberSearchName + '&memberSearchKeyWord=' + memberSearchKeyWord + '&searchName=' + searchName +
|
||||
'&searchKeyword=' + searchKeyword)
|
||||
},
|
||||
openView(row) {
|
||||
console.log(row)
|
||||
console.log(row.selfUserId)
|
||||
this.userId = row.selfUserId
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
async flushUnits() {
|
||||
@@ -249,6 +303,7 @@ layout("/layouts/platform.html"){
|
||||
async created() {
|
||||
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
||||
if (this.isThreeUnit) {
|
||||
|
||||
this.tableColumns.forEach(v => {
|
||||
if (["threeUnitName", "unionGroupName"].includes(v.prop)) {
|
||||
v.checked = 1
|
||||
@@ -256,8 +311,9 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
this.pageData();
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.unions = await getUnions(null, false)
|
||||
} else {
|
||||
this.unions = await getUnions(null, true)
|
||||
@@ -272,4 +328,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -201,7 +201,7 @@ layout("/layouts/platform.html"){
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue')
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -9,7 +9,7 @@ layout("/layouts/platform.html"){
|
||||
<div class="search">
|
||||
|
||||
<div class="search-item"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">分工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="分工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
@@ -54,7 +54,7 @@ layout("/layouts/platform.html"){
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')} && searchType==='按分工会统计'"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')} && searchType==='按分工会统计'"
|
||||
prop="unionName" label="工会">
|
||||
<template slot-scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unionCode+')':null}}{{row.unionName}}
|
||||
@@ -67,7 +67,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')} && searchType==='按单位统计'"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')} && searchType==='按单位统计'"
|
||||
prop="unionName" label="所属分工会">
|
||||
<template slot-scope="{row}">
|
||||
{{isDisPlayCode?'('+row.unionCode+')':null}}{{row.unionName}}
|
||||
@@ -109,9 +109,6 @@ layout("/layouts/platform.html"){
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue')
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userTypeNames: [],
|
||||
@@ -173,7 +170,7 @@ layout("/layouts/platform.html"){
|
||||
await this.getUserTypes()
|
||||
this.getData()
|
||||
this.unions = await getUnions(null)
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.units = await getUnits(null)
|
||||
} else {
|
||||
this.units = await getUnionUnits()
|
||||
|
||||
@@ -19,13 +19,14 @@ const appModule = {
|
||||
`,
|
||||
data() {
|
||||
return {
|
||||
id: ""
|
||||
id: "",
|
||||
entranceModules: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
entranceModules() {
|
||||
return JSON.parse(window.sessionStorage.getItem("moduleMenus"))
|
||||
}
|
||||
// entranceModules() {
|
||||
// return JSON.parse(window.sessionStorage.getItem("moduleMenus"))
|
||||
// }
|
||||
},
|
||||
methods: {
|
||||
enterEntranceModules(item) {
|
||||
@@ -37,7 +38,8 @@ const appModule = {
|
||||
created() {
|
||||
setTimeout(() => {
|
||||
// this.id = headerApp.appModuleId
|
||||
this.enterEntranceModules({ id: headerApp.appModuleId })
|
||||
// this.enterEntranceModules({ id: headerApp.appModuleId })
|
||||
this.entranceModules = JSON.parse(window.sessionStorage.getItem("moduleMenus"))
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
const todo = {
|
||||
template: `
|
||||
template: /*language=HTML*/ `
|
||||
<div class="home-todo">
|
||||
<el-tabs v-model="todoActive " @tab-click="handleClick">
|
||||
<el-tab-pane label="待处理" name="1">
|
||||
<el-table :data="todoList" v-loading="todoLoading">
|
||||
<el-table-column label="序号" type="index" width="70"></el-table-column>
|
||||
<el-table-column label="标题" prop="processName" show-overflow-tooltip
|
||||
width="200"></el-table-column>
|
||||
<el-table size="mini" :data="todoList" v-loading="todoLoading">
|
||||
<el-table-column label="标题" prop="processName" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="发起人" prop="createdByUserName"
|
||||
width="140"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="发起时间" prop="createdOn" v-if="todoActive==='3'"
|
||||
width="150"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="我的处理环节" prop="taskNodeName"
|
||||
v-if="todoActive!=='3'"></el-table-column>
|
||||
<el-table-column label="流程流转环节" prop="nodeName"></el-table-column>
|
||||
<el-table-column label="操作" width="100">
|
||||
<el-table-column label="操作">
|
||||
<template scope="{row}">
|
||||
<el-button @click="sublime.jumpPagePjax(row.formUrl)" size="mini" type="primary">查看</el-button>
|
||||
</template>
|
||||
@@ -22,18 +20,17 @@ const todo = {
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="已处理" name="2">
|
||||
<el-table :data="todoList" v-loading="todoLoading">
|
||||
<el-table-column label="序号" type="index" width="70"></el-table-column>
|
||||
<el-table size="mini" :data="todoList" v-loading="todoLoading">
|
||||
<el-table-column label="标题" prop="processName" show-overflow-tooltip
|
||||
width="200"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="发起人" prop="createdByUserName"
|
||||
width="140"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="发起时间" prop="createdOn" v-if="todoActive==='3'"
|
||||
width="150"></el-table-column>
|
||||
show-overflow-tooltip ></el-table-column>
|
||||
<el-table-column label="我的处理环节" prop="taskNodeName"
|
||||
v-if="todoActive!=='3'"></el-table-column>
|
||||
<el-table-column label="流程流转环节" prop="nodeName"></el-table-column>
|
||||
<el-table-column label="操作" width="100">
|
||||
<el-table-column label="操作">
|
||||
<template scope="{row}">
|
||||
<el-button @click="sublime.jumpPagePjax(row.formUrl)" size="mini" type="primary">查看</el-button>
|
||||
</template>
|
||||
@@ -41,18 +38,17 @@ const todo = {
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="我的发起" name="3">
|
||||
<el-table :data="todoList" v-loading="todoLoading">
|
||||
<el-table-column label="序号" type="index" width="70"></el-table-column>
|
||||
<el-table size="mini" :data="todoList" v-loading="todoLoading">
|
||||
<el-table-column label="标题" prop="processName" show-overflow-tooltip
|
||||
width="200"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="发起人" prop="createdByUserName"
|
||||
width="140"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="发起时间" prop="createdOn" v-if="todoActive==='3'"
|
||||
width="150"></el-table-column>
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="我的处理环节" prop="taskNodeName"
|
||||
v-if="todoActive!=='3'"></el-table-column>
|
||||
<el-table-column label="流程流转环节" prop="nodeName"></el-table-column>
|
||||
<el-table-column label="操作" width="100">
|
||||
<el-table-column label="操作">
|
||||
<template scope="{row}">
|
||||
<el-button @click="sublime.jumpPagePjax(row.formUrl)" size="mini" type="primary">查看</el-button>
|
||||
</template>
|
||||
@@ -83,13 +79,13 @@ const todo = {
|
||||
data() {
|
||||
return {
|
||||
todoActive: "1",
|
||||
todoList:[]
|
||||
todoList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async handleClick() {
|
||||
this.todoLoading = true
|
||||
const {data, code} = await $.get("/platform/sys/localProcess/todoList", { mode: this.todoActive })
|
||||
const { data, code } = await $.get("/platform/sys/localProcess/todoList", { mode: this.todoActive })
|
||||
this.todoList = data
|
||||
this.todoLoading = false
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,24 +9,24 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-item-label">任务:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.taskId" style="width: 100%">
|
||||
<el-option v-for="item in memberCheckTaskOptions"
|
||||
:label="item.taskName"
|
||||
:value="item.id"></el-option>
|
||||
<el-option v-for="item in memberCheckTaskOptions" :label="item.taskName" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-item"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
placeholder="所属工会"
|
||||
v-model="pageForm.unionId"
|
||||
style="width: 100%"
|
||||
clearable="true"
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
filterable="true"
|
||||
>
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -45,7 +45,6 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
@@ -56,52 +55,46 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
show-summary
|
||||
:summary-method="getSummaries"
|
||||
@expand-change="tableColumnExpandChange"
|
||||
v-loading="tableLoading" :size="tableSize" class="vi-table">
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%"
|
||||
row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
show-summary
|
||||
:summary-method="getSummaries"
|
||||
@expand-change="tableColumnExpandChange"
|
||||
v-loading="tableLoading"
|
||||
:size="tableSize"
|
||||
class="vi-table"
|
||||
>
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号" width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
>
|
||||
<template v-if="column.prop=='isFinish'" scope="{row}">
|
||||
<span :class="row.isFinish?'text-success':'text-danger'">
|
||||
{{row.isFinishText}}
|
||||
</span>
|
||||
<span :class="row.isFinish?'text-success':'text-danger'">{{row.isFinishText}}</span>
|
||||
</template>
|
||||
<template v-else-if="column.prop=='unionGroup'" scope="{row}">
|
||||
<el-link type="primary" @click="openGroupUnionDrawer(row)">
|
||||
{{row.unionGroupNum}}(
|
||||
{{row.shiUnionGroupNum}})
|
||||
</el-link>
|
||||
<el-link type="primary" @click="openGroupUnionDrawer(row)">{{row.unionGroupNum}}( {{row.shiUnionGroupNum}})</el-link>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column header-align="center" label="操作" width="200px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="openCheck(row)"
|
||||
:disabled="!row.isFinish">
|
||||
核对
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" @click="openCheck(row)" :disabled="!row.isFinish">核对</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
|
||||
<el-tabs v-model="active">
|
||||
<el-tab-pane label="个人信息" name="info">
|
||||
<member ref="memberInfo" :id="info.userId" view></member>
|
||||
@@ -112,9 +105,7 @@ layout("/layouts/platform.html"){
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="工会审核" name="union">
|
||||
<el-form :model="formData" ref="form" :rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" label-suffix=":">
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
|
||||
<template v-if="!info.unionAudit&&source==1">
|
||||
@@ -122,27 +113,23 @@ layout("/layouts/platform.html"){
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原单位">
|
||||
<el-input :value="info.originUnit.name"
|
||||
disabled></el-input>
|
||||
<el-input :value="info.originUnit.name" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原工会">
|
||||
<el-input :value="info.originUnion.unionname"
|
||||
disabled></el-input>
|
||||
<el-input :value="info.originUnion.unionname" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新单位">
|
||||
<el-input :value="info.currentUnit.name"
|
||||
disabled></el-input>
|
||||
<el-input :value="info.currentUnit.name" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新工会">
|
||||
<el-input :value="info.currentUnion.unionname"
|
||||
disabled></el-input>
|
||||
<el-input :value="info.currentUnion.unionname" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -151,8 +138,7 @@ layout("/layouts/platform.html"){
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
<el-input v-model="formData.username" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -163,19 +149,18 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="formData.auditOpinion"
|
||||
rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
<div style="float: right; margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒 绝</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)" :loading="submitLoading">通 过</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -199,59 +184,48 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
<el-form-item label="暂无审核信息"></el-form-item>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="校工会审核" name="school"
|
||||
v-if="info.unionAudit">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form"
|
||||
:rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
|
||||
<el-tab-pane label="校工会审核" name="school" v-if="info.unionAudit">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form" :rules="formRules" label-width="120px" label-suffix=":">
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
|
||||
<template v-if="!info.schoolAudit&&source==2">
|
||||
|
||||
<template v-if="info.type==1||info.currentUnitId">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原单位">
|
||||
<el-input :value="info.originUnit.name"
|
||||
disabled></el-input>
|
||||
<el-input :value="info.originUnit.name" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原工会">
|
||||
<el-input :value="info.originUnion.unionname"
|
||||
disabled></el-input>
|
||||
<el-input :value="info.originUnion.unionname" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新单位">
|
||||
<!-- <el-input :value="info.currentUnit.name"></el-input>-->
|
||||
<el-select v-model="info.currentUnitId"
|
||||
style="width: 100%" filterable
|
||||
clearable
|
||||
@change="unitChange"
|
||||
placeholder="请选择单位">
|
||||
<el-option
|
||||
v-for="item in unitOptions"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
<el-select
|
||||
v-model="info.currentUnitId"
|
||||
style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
@change="unitChange"
|
||||
placeholder="请选择单位"
|
||||
>
|
||||
<el-option v-for="item in unitOptions" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="新工会">
|
||||
<el-input v-model="info.currentUnionName"
|
||||
disabled></el-input>
|
||||
<el-input v-model="info.currentUnionName" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -260,8 +234,7 @@ layout("/layouts/platform.html"){
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
<el-input v-model="formData.username" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -272,19 +245,18 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="formData.auditOpinion"
|
||||
rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
<div style="float: right; margin: 20px 0">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒 绝</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)" :loading="submitLoading">通 过</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -308,30 +280,22 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-row v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
</el-form-item>
|
||||
<el-form-item label="暂无审核信息"></el-form-item>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
|
||||
<el-drawer
|
||||
title="分工会核对情况"
|
||||
:visible.sync="groupUnionDrawer"
|
||||
direction="rtl" :size="'50%'">
|
||||
<el-drawer title="分工会核对情况" :visible.sync="groupUnionDrawer" direction="rtl" :size="'50%'">
|
||||
<el-table :data="unionGroupData">
|
||||
<el-table-column prop="groupCode" label="小组编号"></el-table-column>
|
||||
<el-table-column prop="groupName" label="小组名称"></el-table-column>
|
||||
<el-table-column prop="username" label="联系人">
|
||||
<template scope="{row}">
|
||||
<sapn v-if="row.username">
|
||||
{{row.username}}({{row.loginname}})
|
||||
</sapn>
|
||||
<sapn v-if="row.username">{{row.username}}({{row.loginname}})</sapn>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mobile" label="联系方式"></el-table-column>
|
||||
@@ -347,9 +311,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-dialog title="异动详情" width="40%" :visible.sync="changeInfoDialog">
|
||||
<div class="mb10">
|
||||
<el-tag v-for="item in changeInfoTypes">
|
||||
{{item}}
|
||||
</el-tag>
|
||||
<el-tag v-for="item in changeInfoTypes">{{item}}</el-tag>
|
||||
</div>
|
||||
<el-table :data="changeInfoData" border>
|
||||
<el-table-column prop="columnName" label="字段"></el-table-column>
|
||||
@@ -359,10 +321,7 @@ layout("/layouts/platform.html"){
|
||||
</el-dialog>
|
||||
|
||||
<user-change-history ref="userChangeHistory">
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form"
|
||||
:rules="formRules"
|
||||
label-width="120px" label-suffix=":">
|
||||
|
||||
<el-form class="demo-table-expand" :model="formData" ref="form" :rules="formRules" label-width="120px" label-suffix=":">
|
||||
<div class="el-descriptions__header mt10">
|
||||
<div class="el-descriptions__title">校工会审核</div>
|
||||
<div class="el-descriptions__extra"></div>
|
||||
@@ -371,8 +330,7 @@ layout("/layouts/platform.html"){
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
<el-input v-model="formData.username" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -383,90 +341,72 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
|
||||
maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500" placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)"
|
||||
:loading="submitLoading">通
|
||||
过
|
||||
</el-button>
|
||||
<el-button @click="doAudit(false)" :loading="submitLoading">拒 绝</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)" :loading="submitLoading">通 过</el-button>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</user-change-history>
|
||||
|
||||
<el-dialog title="异动人员确认" width="60%" :visible.sync="confirmDialog">
|
||||
<el-table :data="changeUsers">
|
||||
<el-table-column label="序号" type="index"
|
||||
header-align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName"
|
||||
header-align="center"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName"
|
||||
header-align="center"></el-table-column>
|
||||
<el-table-column label="在职状态" prop="userState"
|
||||
header-align="center"></el-table-column>
|
||||
<el-table-column label="所属单位" prop="unitname"
|
||||
header-align="center">
|
||||
<template scope="{row}">
|
||||
{{row.unitname}}
|
||||
</template>
|
||||
<el-table-column label="序号" type="index" header-align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName" header-align="center"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName" header-align="center"></el-table-column>
|
||||
<el-table-column label="在职状态" prop="userState" header-align="center"></el-table-column>
|
||||
<el-table-column label="所属单位" prop="unitname" header-align="center">
|
||||
<template scope="{row}">{{row.unitname}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="异动信息" header-align="center">
|
||||
<el-table-column label="更新时间" prop="changeTime" min-width="145px"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="异动类型" prop="changeTypes" header-align="center"
|
||||
align="center" show-overflow-tooltip sortable>
|
||||
<el-table-column
|
||||
label="更新时间"
|
||||
prop="changeTime"
|
||||
min-width="145px"
|
||||
header-align="center"
|
||||
sortable
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column label="异动类型" prop="changeTypes" header-align="center" align="center" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span style="color: #0e78c5;cursor: pointer"
|
||||
@click="openUserChangeInfo(row)">
|
||||
{{getChangeTypes(row.changeTypes)}}
|
||||
</span>
|
||||
<span style="color: #0e78c5; cursor: pointer" @click="openUserChangeInfo(row)">{{getChangeTypes(row.changeTypes)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="会员" header-align="center" align="center"
|
||||
prop="member"
|
||||
show-overflow-tooltip sortable>
|
||||
<el-table-column label="会员" header-align="center" align="center" prop="member" show-overflow-tooltip sortable>
|
||||
<template scope="{row}">
|
||||
<span v-if="row.member==1" class="text-success ">
|
||||
<i class="fa fa-circle ml5"></i> 是
|
||||
</span>
|
||||
<span v-if="row.member==1" class="text-success">
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
是
|
||||
</span>
|
||||
<span v-else class="text-danger">
|
||||
<i class="fa fa-circle ml5"></i> 否
|
||||
</span>
|
||||
<i class="fa fa-circle ml5"></i>
|
||||
否
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="100px" header-align="center">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary"
|
||||
@click="openAudit(row)">
|
||||
审核
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" @click="openAudit(row)">审核</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=1.0.1'),
|
||||
member: httpVueLoader("/components/member/MemberInfo.vue?v=1.0.3"),
|
||||
"dict-select": httpVueLoader("/components/plugins/DictSelect.vue?v=1.0.0"),
|
||||
"mem-change-records": httpVueLoader("/components/member/MemChangeRecords.vue?v=1.0.2"),
|
||||
"user-change-history": httpVueLoader("/components/userChangeHistory/userChangeHistory.vue?v=1.0.1")
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -475,18 +415,18 @@ layout("/layouts/platform.html"){
|
||||
unions: [],
|
||||
units: [],
|
||||
tableColumns: [
|
||||
{prop: 'unionname', label: '分工会名称', sortable: true},
|
||||
{prop: 'memberNum', label: '会员人数', sortable: true},
|
||||
{prop: 'isFinish', label: '分工会是否核对完成', sortable: true},
|
||||
{prop: 'notCheckNum', label: '异动人数', sortable: true},
|
||||
{ prop: "unionname", label: "分工会名称", sortable: true },
|
||||
{ prop: "memberNum", label: "会员人数", sortable: true },
|
||||
{ prop: "isFinish", label: "分工会是否核对完成", sortable: true },
|
||||
{ prop: "notCheckNum", label: "异动人数", sortable: true }
|
||||
],
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + ''
|
||||
year: new Date().getFullYear() + ""
|
||||
},
|
||||
memberCheckTaskOptions: [],
|
||||
changeType: {},
|
||||
userId: null,
|
||||
active: 'school',
|
||||
active: "school",
|
||||
info: {},
|
||||
source: 2,
|
||||
formData: {},
|
||||
@@ -502,31 +442,31 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async openUserChangeInfo({hisId}) {
|
||||
async openUserChangeInfo({ hisId }) {
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
|
||||
},
|
||||
async openCheck(row) {
|
||||
const taskId = this.pageForm.taskId
|
||||
const unionId = row.id
|
||||
this.currentUnionId = row.id
|
||||
const resp = await $.post(loc() + '/getNotCheckUsers', {taskId, unionId})
|
||||
const resp = await $.post(loc() + "/getNotCheckUsers", { taskId, unionId })
|
||||
if (resp.code === 0) {
|
||||
this.confirmDialog = true
|
||||
this.changeUsers = resp.data
|
||||
}
|
||||
},
|
||||
openAudit({hisId, id}) {
|
||||
openAudit({ hisId, id }) {
|
||||
debugger
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
|
||||
this.$refs.userChangeHistory.slot = true
|
||||
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
if (this.$refs["form"]) {
|
||||
this.$refs["form"].resetFields()
|
||||
}
|
||||
this.formData = {
|
||||
recordId: id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
auditTime: moment().format("YYYY-MM-DD")
|
||||
}
|
||||
},
|
||||
async doAudit(pass) {
|
||||
@@ -537,7 +477,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.$refs.userChangeHistory.changeInfoDialog = false
|
||||
this.openCheck({id: this.currentUnionId})
|
||||
this.openCheck({ id: this.currentUnionId })
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
@@ -547,24 +487,26 @@ layout("/layouts/platform.html"){
|
||||
getChangeTypes(changeTypes) {
|
||||
if (changeTypes) {
|
||||
const c = JSON.parse(changeTypes)
|
||||
return c.map(v => {
|
||||
return this.changeType[v]
|
||||
}).join(',')
|
||||
return c
|
||||
.map((v) => {
|
||||
return this.changeType[v]
|
||||
})
|
||||
.join(",")
|
||||
}
|
||||
return null
|
||||
},
|
||||
|
||||
exportChangeUser() {
|
||||
const {taskId} = this.pageForm
|
||||
const { taskId } = this.pageForm
|
||||
if (!taskId) {
|
||||
this.notifyWarning('请先选择核对任务')
|
||||
this.notifyWarning("请先选择核对任务")
|
||||
return
|
||||
}
|
||||
window.open(loc() + '/exportChangeUser?taskId=' + taskId)
|
||||
window.open(loc() + "/exportChangeUser?taskId=" + taskId)
|
||||
},
|
||||
|
||||
async openGroupUnionDrawer(row) {
|
||||
const {data} = await $.post(loc() + "/unionGroupData", {
|
||||
const { data } = await $.post(loc() + "/unionGroupData", {
|
||||
unionId: row.id,
|
||||
taskId: this.pageForm.taskId
|
||||
})
|
||||
@@ -573,47 +515,47 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
|
||||
getSummaries(param) {
|
||||
const {columns, data} = param;
|
||||
const sums = [];
|
||||
const { columns, data } = param
|
||||
const sums = []
|
||||
columns.forEach((column, index) => {
|
||||
if (index === 0) {
|
||||
sums[index] = '总计';
|
||||
return;
|
||||
sums[index] = "总计"
|
||||
return
|
||||
} else if (index === 5) {
|
||||
sums[index] = '';
|
||||
return;
|
||||
sums[index] = ""
|
||||
return
|
||||
} else if (index === 3) {
|
||||
sums[index] = '';
|
||||
return;
|
||||
sums[index] = ""
|
||||
return
|
||||
}
|
||||
const values = data.map(item => Number(item[column.property]));
|
||||
if (!values.every(value => isNaN(value))) {
|
||||
const values = data.map((item) => Number(item[column.property]))
|
||||
if (!values.every((value) => isNaN(value))) {
|
||||
sums[index] = values.reduce((prev, curr) => {
|
||||
const value = Number(curr);
|
||||
const value = Number(curr)
|
||||
if (!isNaN(value)) {
|
||||
return prev + curr;
|
||||
return prev + curr
|
||||
} else {
|
||||
return prev;
|
||||
return prev
|
||||
}
|
||||
}, 0);
|
||||
sums[index] += ' ';
|
||||
}, 0)
|
||||
sums[index] += " "
|
||||
} else {
|
||||
sums[index] = '';
|
||||
sums[index] = ""
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
return sums;
|
||||
return sums
|
||||
},
|
||||
async getMemberCheckTaskOptions() {
|
||||
const resp = await $.get('/platform/welfareMember/check/task/getAllTask', {year: this.pageForm.year})
|
||||
const resp = await $.get("/platform/welfareMember/check/task/getAllTask", { year: this.pageForm.year })
|
||||
this.memberCheckTaskOptions = resp.data
|
||||
if (this.memberCheckTaskOptions.length) {
|
||||
this.$set(this.pageForm, 'taskId', this.memberCheckTaskOptions[0].id)
|
||||
this.$set(this.pageForm, "taskId", this.memberCheckTaskOptions[0].id)
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === "true") {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
@@ -622,14 +564,14 @@ layout("/layouts/platform.html"){
|
||||
async getChangeType() {
|
||||
const changeType = {}
|
||||
const changeTypeOptions = await getEnumOptions("UserChangeType")
|
||||
changeTypeOptions.forEach(v => {
|
||||
changeTypeOptions.forEach((v) => {
|
||||
changeType[v.code] = v.description
|
||||
})
|
||||
return changeType
|
||||
},
|
||||
async pageData() {
|
||||
sublime.showLoadingbar()
|
||||
const resp = await $.post(loc() + '/pageData', this.pageForm)
|
||||
const resp = await $.post(loc() + "/pageData", this.pageForm)
|
||||
sublime.closeLoadingbar()
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data
|
||||
@@ -639,11 +581,11 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
async tableColumnExpandChange(row, expandedRows) {
|
||||
if (expandedRows.length) {
|
||||
const {taskId} = this.pageForm
|
||||
const {id: unionId} = row
|
||||
const resp = await $.post(loc() + '/getNotCheckUsers', {taskId, unionId})
|
||||
const { taskId } = this.pageForm
|
||||
const { id: unionId } = row
|
||||
const resp = await $.post(loc() + "/getNotCheckUsers", { taskId, unionId })
|
||||
if (resp.code === 0) {
|
||||
this.$set(row, 'checkUsers', resp.data)
|
||||
this.$set(row, "checkUsers", resp.data)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -674,39 +616,37 @@ layout("/layouts/platform.html"){
|
||||
// this.notifyWarning(resp.msg)
|
||||
// }
|
||||
// },
|
||||
// async doAudit(pass) {
|
||||
// this.formData.currentUnitId = this.info.currentUnitId
|
||||
// this.formData.currentUnionId = this.info.currentUnionId
|
||||
// this.formData.currentThreeUnitId = this.info.currentThreeUnitId
|
||||
// this.formData.auditPass = pass
|
||||
// this.submitLoading = true
|
||||
// const resp = await $.post("/platform/member/change/audit/doAudit", this.formData)
|
||||
// this.submitLoading = false
|
||||
// if (resp.code === 0) {
|
||||
// //更新用户信息
|
||||
// this.info.userId = null
|
||||
// this.pageData()
|
||||
// this.$refs.guava.index()
|
||||
// } else {
|
||||
// this.notifyWarning(resp.msg)
|
||||
// }
|
||||
// },
|
||||
// async doAudit(pass) {
|
||||
// this.formData.currentUnitId = this.info.currentUnitId
|
||||
// this.formData.currentUnionId = this.info.currentUnionId
|
||||
// this.formData.currentThreeUnitId = this.info.currentThreeUnitId
|
||||
// this.formData.auditPass = pass
|
||||
// this.submitLoading = true
|
||||
// const resp = await $.post("/platform/member/change/audit/doAudit", this.formData)
|
||||
// this.submitLoading = false
|
||||
// if (resp.code === 0) {
|
||||
// //更新用户信息
|
||||
// this.info.userId = null
|
||||
// this.pageData()
|
||||
// this.$refs.guava.index()
|
||||
// } else {
|
||||
// this.notifyWarning(resp.msg)
|
||||
// }
|
||||
// },
|
||||
async unitChange(v) {
|
||||
const unit = this.unitOptions.find(x => x.id === v)
|
||||
const unit = this.unitOptions.find((x) => x.id === v)
|
||||
if (unit) {
|
||||
this.info.currentUnionId = unit.unionid
|
||||
this.info.currentUnionName = unit.unionname
|
||||
} else {
|
||||
this.info.currentUnionId = ''
|
||||
this.info.currentUnionName = ''
|
||||
this.info.currentUnionId = ""
|
||||
this.info.currentUnionName = ""
|
||||
}
|
||||
if (!v) {
|
||||
this.info.currentThreeUnitId = ''
|
||||
this.info.currentThreeUnitId = ""
|
||||
}
|
||||
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(this.info.currentUnitId, null)
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getMemberCheckTaskOptions()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -130,7 +130,6 @@ layout("/layouts/platform.html"){
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
precision="2"
|
||||
readonly
|
||||
placeholder="选择慰问类型自动匹配金额"
|
||||
:min="0"
|
||||
:max="1000000000"></el-input>
|
||||
|
||||
@@ -3,151 +3,371 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.el-divider--horizontal {
|
||||
margin-top: 50px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<apply :form="formData" @radio="radioButton" ref="addFrom">
|
||||
<template #footer>
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="operation(false)" type="primary">保 存</el-button>
|
||||
<el-button @click="operation(true)" type="primary">确 定</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</apply>
|
||||
<el-card shadow="never">
|
||||
<div class="clearfix" slot="header">
|
||||
<h3 style="color: #1867b0">填写申请信息</h3>
|
||||
</div>
|
||||
<el-form :model="formData" :rules="formRules" label-width="140px" ref="formRef">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="申请人姓名" prop="proxyUserName">
|
||||
<el-input disabled v-model="formData.proxyUserName">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="申请人工号" prop="proxyLoginName">
|
||||
<el-input disabled v-model="formData.proxyLoginName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="申请模式" prop="mode">
|
||||
<el-radio-group :disabled="formData.id" @change="modeChange"
|
||||
style="width: 100%"
|
||||
v-model="formData.mode"
|
||||
>
|
||||
<el-radio-button border label="1">本人申请</el-radio-button>
|
||||
<el-radio-button border label="2">替他人申请</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="受补助人" prop="userId">
|
||||
<el-select :remote-method="querySqr" @change="userChange" clearable
|
||||
filterable
|
||||
placeholder="输入工号或者姓名查找" remote
|
||||
style="width: 100%"
|
||||
v-if="!formData.id"
|
||||
v-model="formData.userId">
|
||||
<el-option :key="o.id"
|
||||
:label="o.username+'('+o.loginname+')'"
|
||||
:value="o.id"
|
||||
v-for="o in subsidizedList"></el-option>
|
||||
</el-select>
|
||||
<el-input disabled maxlength="100" type="text" v-else
|
||||
v-model="formData.userName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别" prop="sex">
|
||||
<el-select clearable placeholder="请选择性别" style="width: 100%"
|
||||
v-model="formData.sex">
|
||||
<el-option :key="item" :label="item" :value="item"
|
||||
v-for="item in ['男','女']">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所在单位" prop="unitName">
|
||||
<el-input clearable maxlength="50" placeholder="所在单位"
|
||||
v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所在分工会" prop="unionName">
|
||||
<el-input clearable maxlength="50" placeholder="所在分工会"
|
||||
v-model="formData.unionName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="本人月收入" prop="monthlyIncome">
|
||||
<el-input-number :max="9999999"
|
||||
:min="0"
|
||||
clearable
|
||||
controls-position="right"
|
||||
placeholder="请填写本人月收入"
|
||||
style="width: 100%" v-model="formData.monthlyIncome">
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出生年月" prop="birthday">
|
||||
<el-date-picker
|
||||
clearable
|
||||
placeholder="选择出生年月"
|
||||
style="width: 100%"
|
||||
type="date"
|
||||
v-model="formData.birthday"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="手机号码" prop="mobile">
|
||||
<el-input clearable maxlength="20" placeholder="请填写手机号码"
|
||||
v-model="formData.mobile"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="家庭地址" prop="homeAddress">
|
||||
<el-input clearable maxlength="200" placeholder="请填写家庭地址"
|
||||
v-model="formData.homeAddress"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="款项" prop="subsidyStandards">
|
||||
<el-select style="width: 100%" v-model="formData.subsidyStandards">
|
||||
<el-option :key="index" :label="item"
|
||||
:value="item"
|
||||
v-for="(item,index) in subsidyStandards">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="申请原因" prop="reason">
|
||||
<el-input :autosize="{ minRows: 5, maxRows: 10}" clearable
|
||||
maxlength="500"
|
||||
placeholder="请简述申请原因"
|
||||
type="textarea"
|
||||
v-model="formData.reason"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remarks">
|
||||
<el-input :autosize="{ minRows: 5, maxRows: 10}" clearable
|
||||
maxlength="500"
|
||||
placeholder="请简述备注"
|
||||
type="textarea"
|
||||
v-model="formData.remarks"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="家庭成员经济收入" prop="familyList">
|
||||
<el-table :data="formData.familyList" border max-height="500" size="mini"
|
||||
style="width: 100%">
|
||||
<el-table-column align="center" label="序号" type="index"
|
||||
width="50"></el-table-column>
|
||||
<el-table-column label="姓名" prop="name">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item :prop="'familyList.'+$index+'.name'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
|
||||
label-width="0">
|
||||
<el-input clearable placeholder="请输入姓名"
|
||||
v-model="row.name"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年龄(岁)" prop="relation">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item :prop="'familyList.'+$index+'.age'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
|
||||
label-width="0">
|
||||
<el-input-number :max="100" :min="1" :step="1"
|
||||
clearable placeholder="请输入年龄"
|
||||
v-model="row.age"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关系" prop="relation">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item :prop="'familyList.'+$index+'.relation'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
|
||||
label-width="0">
|
||||
<el-input clearable placeholder="请输入关系"
|
||||
v-model="row.relation"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="月收入(元)" prop="monthlyIncome">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item :prop="'familyList.'+$index+'.monthlyIncome'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
|
||||
label-width="0">
|
||||
<el-input-number :min="0"
|
||||
:step="1"
|
||||
clearable placeholder="请输入月收入"
|
||||
v-model="row.monthlyIncome"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作"
|
||||
width="150px">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="formData.familyList.push({})" icon="el-icon-plus"
|
||||
size="mini"
|
||||
type="primary">添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button :disabled="formData.familyList.length==1"
|
||||
@click="formData.familyList.splice(scope.$index,1)"
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
type="danger"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="files">
|
||||
<file-upload :files.sync="formData.files" card></file-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="签字" prop="signature">
|
||||
<sign :is_value_base64="false" :qz.sync="formData.signature"
|
||||
prefix="difficult"></sign>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="end" type="flex">
|
||||
<el-button @click="formData.id?doEdit():doAdd()" type="primary">提交</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</guava>
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisible"
|
||||
title=""
|
||||
width="40%">
|
||||
|
||||
<el-form>
|
||||
<el-form-item class="view-header" label="  申请须知">
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<span style="line-height: 24px">
|
||||
  一、住院慰问金申请:每位在职工会会员每年限申请一次,需在当年提出申请。系统全部审核完成后,可打印出报销凭证和纸质审批表,由本部门审核人员及本人签字并盖章后,以分工会为单位送交工会。为减少分工会工作量,分工会可于每月10号、20号(遇周末节假日可顺延)集中审核盖章后送交工会纸质材料。<br/>
|
||||
  二、因生活困难申报“元旦、春节”困难补助(慰问)金的会员,还须同时向分工会提交下列相关证明:<br/>
|
||||
    (1)申请人配偶、子女及家庭其他成员的收入情况证明原件(不涉及则无需提供);<br/>
|
||||
    (2)个人收入证明(年度工资银行对账单且有银行或单位盖章);<br/>
|
||||
    (3)涉及会员本人、配偶或子女患重病、大病者须提供病史证明复印件和自费医药费正式发票;
|
||||
</span>
|
||||
|
||||
<span class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialogVisible = false">关闭</el-button>
|
||||
<el-button @click="dialogVisible = false" type="primary">同意</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function getQueryVariable(variable) {
|
||||
let query = window.location.search.substring(1);
|
||||
let vars = query.split("&");
|
||||
for (let i = 0; i < vars.length; i++) {
|
||||
let pair = vars[i].split("=");
|
||||
if (pair[0] == variable) {
|
||||
return pair[1];
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'apply': httpVueLoader('/components/difficulty/apply.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
id: GetQueryString("id"),
|
||||
formData: {
|
||||
sq_bzlx: "1",
|
||||
sqsj: moment().format('YYYY-MM-DD'),
|
||||
apply_mode: '1',
|
||||
jtcys: [],
|
||||
mode: "1",
|
||||
},
|
||||
userData: {},
|
||||
subsidyStandards: [
|
||||
'本人患重症处于康复期、新患重症以外的疾病且自理医疗费在5万元以上、直系亲属患重症:1000-1500元。',
|
||||
'突发事件造成家庭损失较重致生活困难:2000-2500元。',
|
||||
'本人新患重症、长病假人员生活困难、家庭人均收入接近无锡市最低生活保障线:3000元。'
|
||||
],
|
||||
formRules: {
|
||||
userName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
loginName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
unitName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
unionName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
monthlyIncome: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
birthday: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
homeAddress: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
subsidyStandards: [{
|
||||
required: true,
|
||||
message: '必填',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
reason: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
remarks: [{required: false, message: '必填', trigger: ['blur', 'change']}],
|
||||
familyList: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
signature: [{required: true, message: '必填', trigger: ['blur', 'change']}]
|
||||
},
|
||||
subsidizedList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
radioButton() {
|
||||
this.$set(this.formData, 'idcard', '${@shiro.getPrincipalProperty("idcard")}')
|
||||
this.$set(this.formData, 'sqr', '${@shiro.getPrincipalProperty("username")}')
|
||||
this.$set(this.formData, 'bbzrusername', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('username')}" : null)
|
||||
this.$set(this.formData, 'sqrloginname', "${@shiro.getPrincipalProperty('loginname')}")
|
||||
this.$set(this.formData, 'sex', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('sex')}" : null)
|
||||
this.$set(this.formData, 'idcard', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('idcard')}" : null)
|
||||
this.$set(this.formData, 'birthday', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('birthday')}" : null)
|
||||
this.$set(this.formData, 'lxfs', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('mobile')}" : null)
|
||||
this.$set(this.formData, 'yhkh', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('bank_number')}" : null)
|
||||
this.$set(this.formData, 'yhmc', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('yhmc')}" : null)
|
||||
this.$set(this.formData, 'unitname', this.formData.apply_mode == 1 ? this.userData.unitname : null)
|
||||
this.$set(this.formData, 'zw', this.formData.apply_mode == 1 ? this.userData.position : null)
|
||||
this.$set(this.formData, 'zc', this.formData.apply_mode == 1 ? this.userData.jobtitle : null)
|
||||
this.$set(this.formData, 'zzmm', this.formData.apply_mode == 1 ? this.userData.political : null)
|
||||
this.$set(this.formData, 'mz', this.formData.apply_mode == 1 ? this.userData.nation : null)
|
||||
querySqr(key) {
|
||||
$.post('/platform/difficulty/apply/querySqr', {key: key}).then(res => {
|
||||
this.subsidizedList = res.data;
|
||||
});
|
||||
},
|
||||
async getUserData() {
|
||||
const resp = await $.post(loc() + "/getUserData")
|
||||
if (resp.code === 0) {
|
||||
this.userData = resp.data;
|
||||
async userChange() {
|
||||
const user = this.subsidizedList.find(item => item.id === this.formData.userId)
|
||||
if (user) {
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
this.$set(this.formData, 'userName', user.username)
|
||||
this.$set(this.formData, 'loginName', user.loginname)
|
||||
this.$set(this.formData, 'sex', user.sex)
|
||||
this.$set(this.formData, 'unitId', user.unitid)
|
||||
this.$set(this.formData, 'unitName', user.unitname)
|
||||
this.$set(this.formData, 'unionId', user.unionid)
|
||||
this.$set(this.formData, 'unionName', user.unionname)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
this.$set(this.formData, 'userId', null)
|
||||
this.$set(this.formData, 'userName', null)
|
||||
this.$set(this.formData, 'loginName', null)
|
||||
this.$set(this.formData, 'sex', null)
|
||||
this.$set(this.formData, 'unitId', null)
|
||||
this.$set(this.formData, 'unitName', null)
|
||||
this.$set(this.formData, 'unionId', null)
|
||||
this.$set(this.formData, 'unionName', null)
|
||||
this.$set(this.formData, 'birthday', null)
|
||||
this.$set(this.formData, 'mobile', null)
|
||||
}
|
||||
},
|
||||
async operation(flag) {
|
||||
this.$refs.addFrom.operation(flag)
|
||||
/*let method = this.formData.id ? "/doEdit" : "/doAdd"
|
||||
this.$refs["addFrom"].validate(async (valid) => {
|
||||
modeChange(val) {
|
||||
const user = JSON.parse(window.sessionStorage.getItem('user'))
|
||||
if (val === "1") {
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
this.$set(this.formData, 'userName', user.username)
|
||||
this.$set(this.formData, 'loginName', user.loginname)
|
||||
this.$set(this.formData, 'proxyUserId', user.id)
|
||||
this.$set(this.formData, 'proxyUserName', user.username)
|
||||
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
||||
this.$set(this.formData, 'mode', "1")
|
||||
this.$set(this.formData, 'sex', user.sex)
|
||||
this.$set(this.formData, 'unitId', user.unit.id)
|
||||
this.$set(this.formData, 'unitName', user.unit.name)
|
||||
this.$set(this.formData, 'unionId', user.union.id)
|
||||
this.$set(this.formData, 'unionName', user.union.unionname)
|
||||
this.$set(this.formData, 'monthlyIncome', null)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||
this.$set(this.formData, 'subsidyStandards', null)
|
||||
this.$set(this.formData, 'reason', null)
|
||||
this.$set(this.formData, 'remarks', null)
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
this.querySqr(user.loginname)
|
||||
} else {
|
||||
this.formData = {}
|
||||
this.$set(this.formData, 'proxyUserId', user.id)
|
||||
this.$set(this.formData, 'proxyUserName', user.username)
|
||||
this.$set(this.formData, 'proxyLoginName', user.loginname)
|
||||
this.$set(this.formData, 'mode', "2")
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
}
|
||||
|
||||
},
|
||||
doAdd() {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
const formData = Object.assign({}, this.formData);
|
||||
formData.jtcys = JSON.stringify(formData.jtcys)
|
||||
formData.files = JSON.stringify(formData.files)
|
||||
formData.applicantsign = formData.sqsign
|
||||
if (formData.apply_mode == 1) {
|
||||
formData.bbzrusername = "${@shiro.getPrincipalProperty('id')}"
|
||||
}
|
||||
const resp = await $.post(loc() + method, formData)
|
||||
if (resp.code === 0) {
|
||||
sublime.jumpPagePjax('/platform/fw/difficulty/applylist')
|
||||
loading.close()
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
loading.close()
|
||||
}
|
||||
$.post('/platform/difficulty/apply/doAdd', {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
sublime.jumpPagePjax('/platform/difficulty/applylist')
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
})*/
|
||||
})
|
||||
},
|
||||
async openEdit(id) {
|
||||
const resp = await $.get("/platform/fw/difficulty/applylist/findOne", {id})
|
||||
if (resp.code === 0) {
|
||||
if (resp.data.files) {
|
||||
resp.data.files = JSON.parse(resp.data.files)
|
||||
doEdit() {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (valid) {
|
||||
$.post('/platform/difficulty/apply/doEdit', {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
sublime.jumpPagePjax('/platform/difficulty/applylist')
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.formData = resp.data
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.getUserData()
|
||||
let id = getQueryVariable("id")
|
||||
id ? this.openEdit(id) : this.radioButton()
|
||||
if (this.id) {
|
||||
$.get('/platform/difficulty/apply/findOne', {id: this.id}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
this.querySqr(res.data.loginName)
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
this.modeChange("1")
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<apply :form="formData" @radio="radioButton" ref="addFrom">
|
||||
<template #footer>
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="operation(false)" type="primary">保 存</el-button>
|
||||
<el-button @click="operation(true)" type="primary">确 定</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</apply>
|
||||
</guava>
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisible"
|
||||
title=""
|
||||
width="40%">
|
||||
|
||||
<el-form>
|
||||
<el-form-item class="view-header" label="  申请须知">
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<span style="line-height: 24px">
|
||||
  一、住院慰问金申请:每位在职工会会员每年限申请一次,需在当年提出申请。系统全部审核完成后,可打印出报销凭证和纸质审批表,由本部门审核人员及本人签字并盖章后,以分工会为单位送交工会。为减少分工会工作量,分工会可于每月10号、20号(遇周末节假日可顺延)集中审核盖章后送交工会纸质材料。<br/>
|
||||
  二、因生活困难申报“元旦、春节”困难补助(慰问)金的会员,还须同时向分工会提交下列相关证明:<br/>
|
||||
    (1)申请人配偶、子女及家庭其他成员的收入情况证明原件(不涉及则无需提供);<br/>
|
||||
    (2)个人收入证明(年度工资银行对账单且有银行或单位盖章);<br/>
|
||||
    (3)涉及会员本人、配偶或子女患重病、大病者须提供病史证明复印件和自费医药费正式发票;
|
||||
</span>
|
||||
|
||||
<span class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialogVisible = false">关闭</el-button>
|
||||
<el-button @click="dialogVisible = false" type="primary">同意</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function getQueryVariable(variable) {
|
||||
let query = window.location.search.substring(1);
|
||||
let vars = query.split("&");
|
||||
for (let i = 0; i < vars.length; i++) {
|
||||
let pair = vars[i].split("=");
|
||||
if (pair[0] == variable) {
|
||||
return pair[1];
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'apply': httpVueLoader('/components/difficulty/apply.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
formData: {
|
||||
sq_bzlx: "1",
|
||||
sqsj: moment().format('YYYY-MM-DD'),
|
||||
apply_mode: '1',
|
||||
jtcys: [],
|
||||
},
|
||||
userData: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
radioButton() {
|
||||
this.$set(this.formData, 'idcard', '${@shiro.getPrincipalProperty("idcard")}')
|
||||
this.$set(this.formData, 'sqr', '${@shiro.getPrincipalProperty("username")}')
|
||||
this.$set(this.formData, 'bbzrusername', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('username')}" : null)
|
||||
this.$set(this.formData, 'sqrloginname', "${@shiro.getPrincipalProperty('loginname')}")
|
||||
this.$set(this.formData, 'sex', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('sex')}" : null)
|
||||
this.$set(this.formData, 'idcard', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('idcard')}" : null)
|
||||
this.$set(this.formData, 'birthday', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('birthday')}" : null)
|
||||
this.$set(this.formData, 'lxfs', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('mobile')}" : null)
|
||||
this.$set(this.formData, 'yhkh', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('bank_number')}" : null)
|
||||
this.$set(this.formData, 'yhmc', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('yhmc')}" : null)
|
||||
this.$set(this.formData, 'unitname', this.formData.apply_mode == 1 ? this.userData.unitname : null)
|
||||
this.$set(this.formData, 'zw', this.formData.apply_mode == 1 ? this.userData.position : null)
|
||||
this.$set(this.formData, 'zc', this.formData.apply_mode == 1 ? this.userData.jobtitle : null)
|
||||
this.$set(this.formData, 'zzmm', this.formData.apply_mode == 1 ? this.userData.political : null)
|
||||
this.$set(this.formData, 'mz', this.formData.apply_mode == 1 ? this.userData.nation : null)
|
||||
},
|
||||
async getUserData() {
|
||||
const resp = await $.post(loc() + "/getUserData")
|
||||
if (resp.code === 0) {
|
||||
this.userData = resp.data;
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}
|
||||
},
|
||||
async operation(flag) {
|
||||
this.$refs.addFrom.operation(flag)
|
||||
/*let method = this.formData.id ? "/doEdit" : "/doAdd"
|
||||
this.$refs["addFrom"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
const formData = Object.assign({}, this.formData);
|
||||
formData.jtcys = JSON.stringify(formData.jtcys)
|
||||
formData.files = JSON.stringify(formData.files)
|
||||
formData.applicantsign = formData.sqsign
|
||||
if (formData.apply_mode == 1) {
|
||||
formData.bbzrusername = "${@shiro.getPrincipalProperty('id')}"
|
||||
}
|
||||
const resp = await $.post(loc() + method, formData)
|
||||
if (resp.code === 0) {
|
||||
sublime.jumpPagePjax('/platform/fw/difficulty/applylist')
|
||||
loading.close()
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
loading.close()
|
||||
}
|
||||
}
|
||||
})*/
|
||||
},
|
||||
async openEdit(id) {
|
||||
const resp = await $.get("/platform/fw/difficulty/applylist/findOne", {id})
|
||||
if (resp.code === 0) {
|
||||
if (resp.data.files) {
|
||||
resp.data.files = JSON.parse(resp.data.files)
|
||||
}
|
||||
this.formData = resp.data
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getUserData()
|
||||
let id = getQueryVariable("id")
|
||||
id ? this.openEdit(id) : this.radioButton()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,4 +1,4 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
@@ -6,7 +6,6 @@ layout("/layouts/platform.html"){
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
@@ -29,7 +28,6 @@ layout("/layouts/platform.html"){
|
||||
v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select clearable="true" filterable="true" placeholder="所属单位"
|
||||
style="width: 100%;"
|
||||
@@ -38,19 +36,18 @@ layout("/layouts/platform.html"){
|
||||
v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend"
|
||||
style="width: 140px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="工号" value="sbzr.loginname"></el-option>
|
||||
<el-option label="姓名" value="sbzr.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="btn-group tool-button">-->
|
||||
<!-- <div>-->
|
||||
<!-- <el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">-->
|
||||
<!-- <el-select placeholder="查询类型" slot="prepend"-->
|
||||
<!-- style="width: 140px;"-->
|
||||
<!-- v-model="pageForm.searchName">-->
|
||||
<!-- <el-option label="工号" value="sbzr.loginname"></el-option>-->
|
||||
<!-- <el-option label="姓名" value="sbzr.username"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-input>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="btn-group tool-button">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
|
||||
</div>
|
||||
@@ -67,47 +64,12 @@ layout("/layouts/platform.html"){
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" label="受补助人姓名"
|
||||
prop="sbzrname">
|
||||
<template slot-scope="{row}">
|
||||
{{row.sbzrname?row.sbzrname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="受补助人工号"
|
||||
prop="sbzrloginname"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="申请人"
|
||||
prop="sqrname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="sqrunionname" show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位"
|
||||
prop="unitname" show-overflow-tooltip
|
||||
sortable>
|
||||
<template slot-scope="{row}">
|
||||
{{row.unitname?row.unitname:row.sqrunitname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系方式"
|
||||
min-width="100"
|
||||
prop="lxfs"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" label="困难类型"
|
||||
min-width="100"
|
||||
prop="sq_knlx" show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="sqsj"
|
||||
sortable></el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" label="审核人"
|
||||
min-width="100"
|
||||
prop="shrname" show-overflow-tooltip>
|
||||
<template slot-scope="{row:{shrname}}">
|
||||
{{shrname?shrname:'暂无'}}
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="姓名" prop="userName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号" prop="loginName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位" prop="unitName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会" prop="unionName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="applyTime"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系方式" prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请状态"
|
||||
prop="state_id" sortable>
|
||||
<template scope="scope">
|
||||
@@ -128,28 +90,23 @@ layout("/layouts/platform.html"){
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:command="{type:'edit',data:row}"
|
||||
:disabled="![98,152,252].includes(row.zt)">
|
||||
:disabled="![3000,3020,3050,3080].includes(row.stateId)">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="[250,156,150].includes(row.zt)"
|
||||
:command="{type:'edit',data:row}"
|
||||
:disabled="![250,156,150].includes(row.zt)">
|
||||
重新提交
|
||||
</el-dropdown-item>
|
||||
<!-- :disabled="![3000].includes(row.stateId)"-->
|
||||
<el-dropdown-item :command="{type:'delete',data:row}"
|
||||
:disabled="![98].includes(row.zt)&&${@shiro.hasRole('sysadmin')}=== 'false'"
|
||||
v-if="[3010,3020,3040,3050,3070,3080].includes(row.stateId) || ${@shiro.hasRole('sysadmin')}"
|
||||
:loading="row.delLoading">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'export',data:row}"
|
||||
:disabled="row.zt!=500">
|
||||
导出申请表
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'doExport',data:row}"
|
||||
:disabled="row.zt!=500">
|
||||
导出领取通知单
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item :command="{type:'export',data:row}"-->
|
||||
<!-- :disabled="row.stateId!=3090">-->
|
||||
<!-- 导出申请表-->
|
||||
<!-- </el-dropdown-item>-->
|
||||
<!-- <el-dropdown-item :command="{type:'doExport',data:row}"-->
|
||||
<!-- :disabled="row.stateId!=3090">-->
|
||||
<!-- 导出领取通知单-->
|
||||
<!-- </el-dropdown-item>-->
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -161,19 +118,20 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
<info ref="viewInfoRef"></info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('./common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'info': httpVueLoader('/components/difficulty/info.vue?v=' + new Date().getTime()),
|
||||
info
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -194,24 +152,16 @@ layout("/layouts/platform.html"){
|
||||
} else if (type == 'delete') {
|
||||
this.doDelete(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
sublime.jumpPagePjax('/platform/difficulty/apply?id=' + data.id)
|
||||
} else if (type == 'export') {
|
||||
window.location.href = "/platform/fw/difficulty/reading/export?id=" + data.id
|
||||
window.location.href = "/platform/difficulty/reading/export?id=" + data.id
|
||||
} else if (type == 'doExport') {
|
||||
window.location.href = "/platform/fw/difficulty/reading/doExport?id=" + data.id
|
||||
window.location.href = "/platform/difficulty/reading/doExport?id=" + data.id
|
||||
}
|
||||
},
|
||||
dodownloadAnnex(id) {
|
||||
window.location.href = "/platform/fw/difficulty/applylist/downloadAnnex?id=" + id
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openEdit(row) {
|
||||
const {id} = row
|
||||
sublime.jumpPagePjax('/platform/fw/difficulty/apply?id=' + id)
|
||||
this.$refs.viewInfoRef.onOpen(row.id)
|
||||
},
|
||||
doDelete(row) {
|
||||
const {id} = row
|
||||
@@ -225,6 +175,7 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.get(loc() + '/doDelete', {id: id})
|
||||
this.$set(row, "delLoading", false)
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
|
||||
+59
-129
@@ -43,14 +43,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend"
|
||||
style="width: 100px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="工号" value="sbzr.loginname"></el-option>
|
||||
<el-option label="姓名" value="sbzr.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
<el-input placeholder="请输入工号或姓名" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
@@ -74,51 +67,20 @@ layout("/layouts/platform.html"){
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" prop="sbzrname"
|
||||
label="受补助人姓名">
|
||||
<template slot-scope="{row}">
|
||||
{{row.sbzrname?row.sbzrname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="sbzrloginname"
|
||||
label="受补助人工号"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="申请人"
|
||||
prop="sqrname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="性别"
|
||||
prop="sex"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="sqrunionname"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名"
|
||||
prop="userName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号"
|
||||
prop="loginName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位"
|
||||
prop="unitname" show-overflow-tooltip
|
||||
sortable>
|
||||
<!-- <template slot-scope="{row}">
|
||||
{{row.unitname?row.unitname:row.sqrname}}
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
prop="unitName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="unionName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间"
|
||||
prop="applyTime"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系方式"
|
||||
min-width="100"
|
||||
prop="lxfs"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
|
||||
<!-- <el-table-column prop="sq_knlx" label="困难类型" header-align="center" align="center"
|
||||
show-overflow-tooltip min-width="100">
|
||||
<template slot-scope="{row}">
|
||||
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="sqsj"
|
||||
sortable></el-table-column>
|
||||
|
||||
prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请状态"
|
||||
prop="state_id" sortable>
|
||||
<template scope="scope">
|
||||
<span :style="'color:'+scope.row.statecolor">{{scope.row.state_name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
prop="state_name"></el-table-column>
|
||||
<el-table-column align="center" fixed="right" header-align="center" label="操作"
|
||||
width="120px">
|
||||
<template slot-scope="{row}">
|
||||
@@ -133,14 +95,13 @@ layout("/layouts/platform.html"){
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:command="{type:'openReview',data:row}"
|
||||
:disabled="pageForm.isAudit == true || (row.zt==200||row.zt==155||row.zt==500)">
|
||||
v-if="row.stateId===3000">
|
||||
审核
|
||||
</el-dropdown-item>
|
||||
|
||||
<!-- <el-dropdown-item :command="{type:'edit',data:row}"
|
||||
v-if="row.zt==200||row.zt==150||row.zt==152">
|
||||
撤回
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'edit',data:row}"
|
||||
v-if="[3010,3020,3030].includes(row.stateId)">
|
||||
撤回
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -152,16 +113,10 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<info :handle="true" :panes="[2]" label="分工会主席审核" ref="info2">
|
||||
<template #handle>
|
||||
<el-form :model="formData" :rules="formRules" label-position="right"
|
||||
label-width="120px"
|
||||
ref="form"
|
||||
style="padding: 20px 0">
|
||||
<el-form-item class="view-header" label="审核信息 " label-width="135px">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<info ref="auditInfoRef">
|
||||
<el-tab-pane label="分工会审核" name="分工会审核">
|
||||
<el-form :model="formData" :rules="formRules" label-width="80px" ref="form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员" prop="username">
|
||||
<el-input disabled
|
||||
@@ -175,37 +130,36 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="审核意见" prop="opinion">
|
||||
<el-form-item label="审核金额" prop="money">
|
||||
<el-input-number
|
||||
placeholder="请填写"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
:step="0.01"
|
||||
v-model="formData.money"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审核意见" prop="auditOpinion">
|
||||
<el-input maxlength="500" placeholder="请填写您的审核意见" rows="4"
|
||||
type="textarea"
|
||||
v-model="formData.auditOpinion"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="签  字" prop="sign">
|
||||
<sign :qz.sync="formData.auditSign"></sign>
|
||||
<el-form-item label="签  字" prop="auditSign">
|
||||
<sign :qz.sync="formData.auditSign" :is_value_base64="false"></sign>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button :disabled="subDis" :loading="subLoading1" @click="doReview(1)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" :loading="subLoading3" @click="doReview(2)"
|
||||
type="danger">返回修改
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" :loading="subLoading2" @click="doReview(3)"
|
||||
type="primary">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="doReview(1)">拒绝</el-button>
|
||||
<el-button @click="doReview(2)" type="danger">返回修改</el-button>
|
||||
<el-button @click="doReview(3)" type="primary">通过</el-button>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
</info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
<info ref="viewInfoRef"></info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
@@ -213,31 +167,29 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
<script>
|
||||
<!--#include('./common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'info': httpVueLoader('/components/difficulty/info.vue'),
|
||||
info
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
unions: [],
|
||||
units: [],
|
||||
subDis: false,
|
||||
subLoading1: false,
|
||||
subLoading2: false,
|
||||
subLoading3: false,
|
||||
pageForm: {
|
||||
unit: "",
|
||||
year: "",
|
||||
isAudit: false,
|
||||
searchName: "sbzr.loginname"
|
||||
searchName: "info.loginName"
|
||||
},
|
||||
unitOptions: [],
|
||||
formRules: {
|
||||
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
auditSign: [{required: true, message: '必填', trigger: ['blur', 'change']}]
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -257,42 +209,31 @@ layout("/layouts/platform.html"){
|
||||
this.$confirm('确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
|
||||
this.$set(row, "delLoading", true)
|
||||
const resp = await $.post(loc() + "/doEdit", {id: id});
|
||||
this.$set(row, "delLoading", false)
|
||||
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
$.post(loc() + "/doEdit", {id: id}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
this.$refs.viewInfoRef.onOpen(row.id)
|
||||
},
|
||||
openReview(row) {
|
||||
const {id} = row
|
||||
|
||||
this.$refs.guava.edit()
|
||||
this.$refs.auditInfoRef.onOpen(id, '分工会审核')
|
||||
this.formData = {
|
||||
id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
this.subLoading1 = false
|
||||
this.subLoading2 = false
|
||||
this.subLoading3 = false
|
||||
this.$refs.info2.getInfo(id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
@@ -301,20 +242,9 @@ layout("/layouts/platform.html"){
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
this.subDis = true
|
||||
if (flag == 1) {
|
||||
this.subLoading1 = true
|
||||
} else if (flag == 2) {
|
||||
this.subLoading2 = true
|
||||
} else {
|
||||
this.subLoading3 = true
|
||||
}
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
this.subDis = false
|
||||
this.subLoading1 = false
|
||||
this.subLoading2 = false
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -0,0 +1,136 @@
|
||||
const info = {
|
||||
template:/*language=HTML*/
|
||||
`
|
||||
<div class="applyInfo">
|
||||
<el-tabs tab-position="top" v-model="activeName">
|
||||
<el-tab-pane label="申请信息" name="1">
|
||||
<el-descriptions :column="3" border>
|
||||
<template v-if="viewData.mode==='2'">
|
||||
<el-descriptions-item label="申请人姓名">{{ viewData.proxyUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工号">{{ viewData.proxyLoginName }}</el-descriptions-item>
|
||||
</template>
|
||||
<el-descriptions-item label="姓名">{{ viewData.userName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="工号">{{ viewData.loginName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="单位">{{ viewData.unitName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="分工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="月收入">{{ viewData.monthlyIncome }}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">{{ viewData.birthday }}</el-descriptions-item>
|
||||
<el-descriptions-item label="手机号码" :span="2">{{ viewData.mobile }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭地址" :span="3">{{ viewData.homeAddress }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="款项" :span="3">{{ viewData.subsidyStandards }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请原因" :span="3">{{ viewData.reason }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="3">{{ viewData.remarks }}</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭成员经济收入" :span="3">
|
||||
<el-table :data="viewData.familyList" border>
|
||||
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
<el-table-column prop="age" label="年龄(岁)"></el-table-column>
|
||||
<el-table-column prop="relation" label="关系"></el-table-column>
|
||||
<el-table-column prop="monthlyIncome" label="月收入(元)"></el-table-column>
|
||||
</el-table>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="附件" :span="3">
|
||||
<file-upload v-if="viewData.files&&viewData.files.length"
|
||||
:files="viewData.files"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="3">
|
||||
<el-image v-if="viewData.signature"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.signature)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="分工会审核信息" name="分工会审核信息" v-if="viewData.branchUnionAudit">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="审核人">{{ viewData.branchUnionAudit.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ viewData.branchUnionAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核金额" :span="2" v-if="!viewData.isSelf">{{ viewData.branchUnionAudit.ext?.money }}元</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" :span="2">{{ viewData.branchUnionAudit.auditOpinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-image v-if="viewData.branchUnionAudit.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.branchUnionAudit.auditSign)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="校工会初审信息" name="校工会初审信息" v-if="viewData.schoolUnionInitialAudit">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="审核人">{{ viewData.schoolUnionInitialAudit.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ viewData.schoolUnionInitialAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核金额" :span="2" v-if="!viewData.isSelf">{{ viewData.schoolUnionInitialAudit.ext?.money }}元</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" :span="2">{{ viewData.schoolUnionInitialAudit.auditOpinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-image v-if="viewData.schoolUnionInitialAudit.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.schoolUnionInitialAudit.auditSign)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="批准部门意见" name="批准部门意见" v-if="viewData.schoolUnionFinalAudit">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="审核人">{{ viewData.schoolUnionFinalAudit.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">{{ viewData.schoolUnionFinalAudit.auditTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核金额" :span="2">{{ viewData.schoolUnionFinalAudit.ext?.money }}元</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见" :span="2">{{ viewData.schoolUnionFinalAudit.auditOpinion }}</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="2">
|
||||
<el-image v-if="viewData.schoolUnionFinalAudit.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.schoolUnionFinalAudit.auditSign)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<slot></slot>
|
||||
</el-tabs>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
activeName: '1'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(id, activeName = '1') {
|
||||
this.activeName = activeName
|
||||
$.get('/platform/difficulty/common/findOne', {id}).then(res => {
|
||||
if (res.code === 0) {
|
||||
try {
|
||||
res.data.familyList = JSON.parse(res.data.familyList)
|
||||
res.data.files = JSON.parse(res.data.files)
|
||||
} catch (e) {
|
||||
}
|
||||
this.viewData = res.data
|
||||
console.log(this.viewData)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
style:
|
||||
/*language=CSS*/
|
||||
`
|
||||
.applyInfo .el-descriptions__table{
|
||||
table-layout: fixed;
|
||||
}
|
||||
`
|
||||
|
||||
|
||||
}
|
||||
@@ -46,8 +46,8 @@ layout("/layouts/platform.html"){
|
||||
<el-select placeholder="查询类型" slot="prepend"
|
||||
style="width: 100px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="工号" value="sbzr.loginname"></el-option>
|
||||
<el-option label="姓名" value="sbzr.username"></el-option>
|
||||
<el-option label="工号" value="info.loginName"></el-option>
|
||||
<el-option label="姓名" value="info.userName"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
@@ -56,10 +56,8 @@ layout("/layouts/platform.html"){
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right">
|
||||
<!--#if(@shiro.hasRole('A06')||@shiro.hasRole('wyh02')||@shiro.hasRole('wyh03')||@shiro.hasRole('H04')||@shiro.hasRole('sysadmin')){#-->
|
||||
<el-button @click="doExcel"><i class="el-icon-download"></i> 导出
|
||||
<el-button @click="doExcel" type="primary"><i class="el-icon-download"></i> 导出
|
||||
</el-button>
|
||||
<!--#}#-->
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
@@ -74,43 +72,20 @@ layout("/layouts/platform.html"){
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" prop="sbzrname"
|
||||
label="受补助人姓名">
|
||||
<template slot-scope="{row}">
|
||||
{{row.sbzrname?row.sbzrname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="sbzrloginname"
|
||||
label="受补助人工号"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="申请人"
|
||||
prop="sqrname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="sqrunionname"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名"
|
||||
prop="userName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号"
|
||||
prop="loginName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位"
|
||||
prop="unitname" show-overflow-tooltip
|
||||
sortable>
|
||||
<template slot-scope="{row}">
|
||||
{{row.unitname?row.unitname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column prop="sq_knlx" label="困难类型" header-align="center" align="center"
|
||||
show-overflow-tooltip min-width="100">
|
||||
<template slot-scope="{row}">
|
||||
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="sqsj"
|
||||
sortable></el-table-column>
|
||||
|
||||
prop="unitName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="unionName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间"
|
||||
prop="applyTime"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系方式"
|
||||
prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请状态"
|
||||
prop="state_id" sortable>
|
||||
<template scope="scope">
|
||||
<span :style="'color:'+scope.row.statecolor">{{scope.row.state_name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
prop="state_name"></el-table-column>
|
||||
<el-table-column align="center" fixed="right" header-align="center" label="操作"
|
||||
width="120px">
|
||||
<template slot-scope="{row}">
|
||||
@@ -128,11 +103,11 @@ layout("/layouts/platform.html"){
|
||||
下载
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'export',data:row}"
|
||||
:disabled="row.zt!=500">
|
||||
:disabled="row.stateId!==3090">
|
||||
导出申请表
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'doExport',data:row}"
|
||||
:disabled="row.zt!=500">
|
||||
:disabled="row.stateId!==3090">
|
||||
导出领取通知单
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
@@ -147,19 +122,20 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
<info ref="viewInfoRef"></info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include('./common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'info': httpVueLoader('/components/difficulty/info.vue'),
|
||||
info
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -170,7 +146,7 @@ layout("/layouts/platform.html"){
|
||||
unionId: '',
|
||||
unit: "",
|
||||
year: "",
|
||||
searchName: "sbzr.loginname"
|
||||
searchName: "info.loginName"
|
||||
},
|
||||
unitOptions: [],
|
||||
}
|
||||
@@ -193,25 +169,24 @@ layout("/layouts/platform.html"){
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'downloadAnnex') {
|
||||
window.location.href = "/platform/fw/difficulty/reading/downloadAnnex?id=" + data.id
|
||||
window.location.href = "/platform/difficulty/reading/downloadAnnex?id=" + data.id
|
||||
} else if (type == 'doExport') {
|
||||
window.location.href = "/platform/fw/difficulty/reading/doExport?id=" + data.id
|
||||
window.location.href = "/platform/difficulty/reading/doExport?id=" + data.id
|
||||
} else if (type == 'export') {
|
||||
window.location.href = "/platform/fw/difficulty/reading/export?id=" + data.id
|
||||
window.location.href = "/platform/difficulty/reading/export?id=" + data.id
|
||||
}
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
this.$refs.viewInfoRef.onOpen(row.id)
|
||||
},
|
||||
doExcel() {
|
||||
const {unionId, unitId, _dateRange} = this.pageForm
|
||||
window.open("/platform/fw/difficulty/reading/doExcel?dateRange=" + JSON.stringify(_dateRange)
|
||||
window.open("/platform/difficulty/reading/doExcel?dateRange=" + JSON.stringify(_dateRange)
|
||||
+ "&unionId=" + unionId + "&unitId=" + unitId)
|
||||
},
|
||||
doWholeExcel() {
|
||||
window.open("/platform/fw/difficulty/reading/doWholeExcel?dateRange=" + JSON.stringify(_dateRange)
|
||||
window.open("/platform/difficulty/reading/doWholeExcel?dateRange=" + JSON.stringify(_dateRange)
|
||||
+ "&unionId=" + unionId
|
||||
+ "&unitId=" + unitId)
|
||||
},
|
||||
|
||||
+64
-144
@@ -2,9 +2,8 @@
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<!--二级党组织-->
|
||||
|
||||
|
||||
<!--工会主席-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
@@ -20,7 +19,6 @@ layout("/layouts/platform.html"){
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable="true"
|
||||
filterable="true"
|
||||
@@ -45,14 +43,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend"
|
||||
style="width: 100px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="工号" value="sbzr.loginname"></el-option>
|
||||
<el-option label="姓名" value="sbzr.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
<el-input placeholder="请输入工号或姓名" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
@@ -65,8 +56,6 @@ layout("/layouts/platform.html"){
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card class="mt20" shadow="never">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
@@ -78,49 +67,20 @@ layout("/layouts/platform.html"){
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" prop="sbzrname"
|
||||
label="受补助人姓名">
|
||||
<template slot-scope="{row}">
|
||||
{{row.sbzrname?row.sbzrname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="sbzrloginname"
|
||||
label="受补助人工号"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="申请人"
|
||||
prop="sqrname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="性别"
|
||||
prop="sex"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="sqrunionname"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名"
|
||||
prop="userName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号"
|
||||
prop="loginName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位"
|
||||
prop="unitname" show-overflow-tooltip
|
||||
sortable>
|
||||
<template slot-scope="{row}">
|
||||
{{row.unitname?row.unitname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
prop="unitName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="unionName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间"
|
||||
prop="applyTime"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系方式"
|
||||
min-width="100"
|
||||
prop="lxfs"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<!-- <el-table-column prop="sq_knlx" label="困难类型" header-align="center" align="center"
|
||||
show-overflow-tooltip min-width="100">
|
||||
<template slot-scope="{row}">
|
||||
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="sqsj"
|
||||
sortable></el-table-column>
|
||||
prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请状态"
|
||||
prop="state_id" sortable>
|
||||
<template scope="scope">
|
||||
<span :style="'color:'+scope.row.statecolor">{{scope.row.state_name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
prop="state_name"></el-table-column>
|
||||
<el-table-column align="center" fixed="right" header-align="center" label="操作"
|
||||
width="120px">
|
||||
<template slot-scope="{row}">
|
||||
@@ -133,14 +93,15 @@ layout("/layouts/platform.html"){
|
||||
<el-dropdown-item :command="{type:'view',data:row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'openReview',data:row}"
|
||||
:disabled="row.zt > 155">
|
||||
<el-dropdown-item
|
||||
:command="{type:'openReview',data:row}"
|
||||
v-if="row.stateId===3060">
|
||||
审核
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item v-if="row.zt==200"
|
||||
:command="{type:'edit',data:row}">
|
||||
撤回
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'edit',data:row}"
|
||||
v-if="[3070,3080,3090].includes(row.stateId)">
|
||||
撤回
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -148,18 +109,14 @@ layout("/layouts/platform.html"){
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<info :handle="true" label="校工会初审" ref="info2">
|
||||
<template #handle>
|
||||
<el-form :model="formData" :rules="formRules" label-position="right"
|
||||
label-width="120px"
|
||||
ref="form"
|
||||
style="padding: 20px 0">
|
||||
<el-form-item class="view-header" label="审核信息 " label-width="135px">
|
||||
</el-form-item>
|
||||
<el-row gutter="20">
|
||||
<info ref="auditInfoRef">
|
||||
<el-tab-pane label="工会常委会审核" name="工会常委会审核">
|
||||
<el-form :model="formData" :rules="formRules" label-width="80px" ref="form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员" prop="username">
|
||||
<el-input disabled
|
||||
@@ -173,52 +130,36 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="初审金额" prop="xghbzje">
|
||||
<el-input
|
||||
onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||
placeholder="请输入初审金额"
|
||||
type="number" v-model="formData.xghbzje">
|
||||
<template slot="append"
|
||||
style="border: none;background-color: white;">元
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核金额" prop="money">
|
||||
<el-input-number
|
||||
placeholder="请填写"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
:step="0.01"
|
||||
v-model="formData.money"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审核意见" prop="opinion">
|
||||
<el-form-item label="审核意见" prop="auditOpinion">
|
||||
<el-input maxlength="500" placeholder="请填写您的审核意见" rows="4"
|
||||
type="textarea"
|
||||
v-model="formData.auditOpinion"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="签  字" prop="sign">
|
||||
<sign :qz.sync="formData.auditSign"></sign>
|
||||
<el-form-item label="签  字" prop="auditSign">
|
||||
<sign :qz.sync="formData.auditSign" :is_value_base64="false"></sign>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button :disabled="subDis" :loading="subLoading1" @click="doReview(1)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" :loading="subLoading3" @click="doReview(3)"
|
||||
type="danger">返回修改
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" :loading="subLoading2" @click="doReview(2)"
|
||||
type="primary">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="doReview(1)">拒绝</el-button>
|
||||
<el-button @click="doReview(2)" type="danger">返回修改</el-button>
|
||||
<el-button @click="doReview(3)" type="primary">通过</el-button>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
</info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
<info ref="viewInfoRef"></info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
@@ -226,32 +167,29 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
<script>
|
||||
<!--#include('./common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
|
||||
'info': httpVueLoader('/components/difficulty/info.vue'),
|
||||
info
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
unions: [],
|
||||
units: [],
|
||||
subDis: false,
|
||||
subLoading1: false,
|
||||
subLoading2: false,
|
||||
subLoading3: false,
|
||||
pageForm: {
|
||||
unit: "",
|
||||
year: "",
|
||||
isAudit: false,
|
||||
searchName: "sbzr.loginname"
|
||||
searchName: "info.loginName"
|
||||
},
|
||||
unitOptions: [],
|
||||
formRules: {
|
||||
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
xghbzje: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
auditSign: [{required: false, message: '必填', trigger: ['blur', 'change']}]
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -271,38 +209,31 @@ layout("/layouts/platform.html"){
|
||||
this.$confirm('确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
|
||||
this.$set(row, "delLoading", true)
|
||||
const resp = await $.post("/platform/fw/difficulty/unionchairman/doEdit", {id: id});
|
||||
this.$set(row, "delLoading", false)
|
||||
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
$.post(loc() + "/doEdit", {id: id}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
this.$refs.viewInfoRef.onOpen(row.id)
|
||||
},
|
||||
async openReview(row) {
|
||||
openReview(row) {
|
||||
const {id} = row
|
||||
this.$refs.guava.edit()
|
||||
this.$refs.auditInfoRef.onOpen(id, '工会常委会审核')
|
||||
this.formData = {
|
||||
id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
@@ -311,21 +242,9 @@ layout("/layouts/platform.html"){
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
this.subDis = true
|
||||
if (flag == 1) {
|
||||
this.subLoading1 = true
|
||||
} else if (flag == 2) {
|
||||
this.subLoading2 = true
|
||||
} else {
|
||||
this.subLoading3 = true
|
||||
}
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
this.subDis = false
|
||||
this.subLoading1 = false
|
||||
this.subLoading2 = false
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -347,6 +266,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.unions = await getUnions()
|
||||
this.flushUnits()
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
+74
-146
@@ -2,9 +2,8 @@
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<!--校工会经办人-->
|
||||
|
||||
|
||||
<!--工会主席-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
@@ -20,7 +19,6 @@ layout("/layouts/platform.html"){
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable="true"
|
||||
filterable="true"
|
||||
@@ -45,14 +43,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend"
|
||||
style="width: 140px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="工号" value="sbzr.loginname"></el-option>
|
||||
<el-option label="姓名" value="sbzr.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
<el-input placeholder="请输入工号或姓名" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
@@ -63,10 +54,10 @@ layout("/layouts/platform.html"){
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-button @click="exportExcel" type="primary"><i class="el-icon-download"></i> 导出
|
||||
</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card class="mt20" shadow="never">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
@@ -78,49 +69,20 @@ layout("/layouts/platform.html"){
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" prop="sbzrname"
|
||||
label="受补助人姓名">
|
||||
<template slot-scope="{row}">
|
||||
{{row.sbzrname?row.sbzrname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" prop="sbzrloginname"
|
||||
label="受补助人工号"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="申请人"
|
||||
prop="sqrname"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="性别"
|
||||
prop="sex"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="sqrunionname"
|
||||
show-overflow-tooltip
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名"
|
||||
prop="userName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号"
|
||||
prop="loginName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位"
|
||||
prop="unitname" show-overflow-tooltip
|
||||
sortable>
|
||||
<template slot-scope="{row}">
|
||||
{{row.unitname?row.unitname:row.sqrname}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
prop="unitName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工会"
|
||||
prop="unionName"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请时间"
|
||||
prop="applyTime"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系方式"
|
||||
min-width="100"
|
||||
prop="lxfs"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<!-- <el-table-column prop="sq_knlx" label="困难类型" header-align="center" align="center"
|
||||
show-overflow-tooltip min-width="100">
|
||||
<template slot-scope="{row}">
|
||||
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
-->
|
||||
<el-table-column align="center" header-align="center" label="申请时间" prop="sqsj"
|
||||
sortable></el-table-column>
|
||||
prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="申请状态"
|
||||
prop="state_id" sortable>
|
||||
<template scope="scope">
|
||||
<span :style="'color:'+scope.row.statecolor">{{scope.row.state_name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
prop="state_name"></el-table-column>
|
||||
<el-table-column align="center" fixed="right" header-align="center" label="操作"
|
||||
width="120px">
|
||||
<template slot-scope="{row}">
|
||||
@@ -133,14 +95,15 @@ layout("/layouts/platform.html"){
|
||||
<el-dropdown-item :command="{type:'view',data:row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'openReview',data:row}"
|
||||
:disabled="row.zt == 500">
|
||||
<el-dropdown-item
|
||||
:command="{type:'openReview',data:row}"
|
||||
v-if="row.stateId===3030">
|
||||
审核
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item v-if="row.zt==500"
|
||||
:command="{type:'edit',data:row}">
|
||||
撤回
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'edit',data:row}"
|
||||
v-if="[3040,3050,3060].includes(row.stateId)">
|
||||
撤回
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -148,18 +111,14 @@ layout("/layouts/platform.html"){
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<info :handle="true" label="校工会主席审核" ref="info2">
|
||||
<template #handle>
|
||||
<el-form :model="formData" :rules="formRules" label-position="right"
|
||||
label-width="120px"
|
||||
ref="form"
|
||||
style="padding: 20px 0">
|
||||
<el-form-item class="view-header" label="审核信息 " label-width="135px">
|
||||
</el-form-item>
|
||||
<el-row gutter="20">
|
||||
<info ref="auditInfoRef">
|
||||
<el-tab-pane label="校工会初审" name="校工会初审">
|
||||
<el-form :model="formData" :rules="formRules" label-width="80px" ref="form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员" prop="username">
|
||||
<el-input disabled
|
||||
@@ -173,52 +132,36 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="补助金额" prop="xghbzje">
|
||||
<el-input disabled
|
||||
onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||
placeholder="请输入补助金额"
|
||||
type="number" v-model="formData.xghbzje">
|
||||
<template slot="append"
|
||||
style="border: none;background-color: white;">元
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核金额" prop="money">
|
||||
<el-input-number
|
||||
placeholder="请填写"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
:step="0.01"
|
||||
v-model="formData.money"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审核意见" prop="opinion">
|
||||
<el-form-item label="审核意见" prop="auditOpinion">
|
||||
<el-input maxlength="500" placeholder="请填写您的审核意见" rows="4"
|
||||
type="textarea"
|
||||
v-model="formData.auditOpinion"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="签  字" prop="sign">
|
||||
<sign :qz.sync="formData.auditSign"></sign>
|
||||
<el-form-item label="签  字" prop="auditSign">
|
||||
<sign :qz.sync="formData.auditSign" :is_value_base64="false"></sign>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button :disabled="subDis" :loading="subLoading1" @click="doReview(1)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" :loading="subLoading3" @click="doReview(3)"
|
||||
type="danger">返回修改
|
||||
</el-button>
|
||||
<el-button :disabled="subDis" :loading="subLoading2" @click="doReview(2)"
|
||||
type="primary">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="doReview(1)">拒绝</el-button>
|
||||
<el-button @click="doReview(2)" type="danger">返回修改</el-button>
|
||||
<el-button @click="doReview(3)" type="primary">通过</el-button>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
</info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
<info ref="viewInfoRef"></info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
@@ -226,36 +169,40 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
<script>
|
||||
<!--#include('./common/info.js'){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
|
||||
'info': httpVueLoader('/components/difficulty/info.vue'),
|
||||
info
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
unions: [],
|
||||
units: [],
|
||||
subDis: false,
|
||||
subLoading1: false,
|
||||
subLoading2: false,
|
||||
subLoading3: false,
|
||||
pageForm: {
|
||||
unit: "",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
year: "",
|
||||
isAudit: false,
|
||||
searchName: "sbzr.loginname"
|
||||
searchName: "info.loginName"
|
||||
},
|
||||
unitOptions: [],
|
||||
formRules: {
|
||||
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
xghbzje: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
auditSign: [{required: false, message: '必填', trigger: ['blur', 'change']}]
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
exportExcel(){
|
||||
const {unionId, unitId, year} = this.pageForm
|
||||
window.open("/platform/difficulty/schoolUnionInitialAudit/exportExcel?year=" + year
|
||||
+ "&unionId=" + unionId + "&unitId=" + unitId)
|
||||
},
|
||||
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
@@ -271,39 +218,31 @@ layout("/layouts/platform.html"){
|
||||
this.$confirm('确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
|
||||
this.$set(row, "delLoading", true)
|
||||
const resp = await $.post("/platform/fw/difficulty/unionchairman/doEdit", {id: id});
|
||||
this.$set(row, "delLoading", false)
|
||||
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
$.post(loc() + "/doEdit", {id: id}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
this.$refs.viewInfoRef.onOpen(row.id)
|
||||
},
|
||||
async openReview(row) {
|
||||
openReview(row) {
|
||||
const {id} = row
|
||||
this.$refs.guava.edit()
|
||||
this.$refs.auditInfoRef.onOpen(id, '校工会初审')
|
||||
this.formData = {
|
||||
id,
|
||||
xghbzje: row.xghbzje,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
@@ -312,21 +251,9 @@ layout("/layouts/platform.html"){
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
this.subDis = true
|
||||
if (flag == 1) {
|
||||
this.subLoading1 = true
|
||||
} else if (flag == 2) {
|
||||
this.subLoading2 = true
|
||||
} else {
|
||||
this.subLoading3 = true
|
||||
}
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
this.subDis = false
|
||||
this.subLoading1 = false
|
||||
this.subLoading2 = false
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -348,6 +275,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.unions = await getUnions()
|
||||
this.flushUnits()
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -1,288 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<!--校工会常务副主席审核-->
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-row class="header navbar bg-white shadow">
|
||||
|
||||
<div class="btn-group tool-button mt5">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select v-model="pageForm.unit" filterable placeholder="请选择单位" clearable>
|
||||
<el-option
|
||||
v-for="item in unitOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 140px;">
|
||||
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
|
||||
<el-option label="受助人姓名" value="sbzr.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row class="el-table-container">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
size="mini"
|
||||
style="width: 100%"
|
||||
@sort-change="pageOrder"
|
||||
>
|
||||
<el-table-column label="序号" type="index" header-align="center" align="center">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center"
|
||||
prop="sqrloginname"
|
||||
label="工号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center"
|
||||
prop="sqrname"
|
||||
label="姓名"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center"
|
||||
prop="unitname"
|
||||
label="单位"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column sortable
|
||||
align="center" header-align="center"
|
||||
prop="sqsj"
|
||||
label="申请时间"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="state_id" header-align="center" label="申请状态" sortable>
|
||||
<template scope="scope">
|
||||
<span :style="'color:'+scope.row.statecolor">{{scope.row.state_name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right"
|
||||
width="120px">
|
||||
<template slot-scope="{row}">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button plain size="mini">
|
||||
<i class="ti-settings"></i>
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="{type:'view',data:row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'openReview',data:row}">
|
||||
审核
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-row>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<info ref="info2" :handle="true" label="校工会常务副主席审核" :panes="[2]">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
<el-form-item label="审核信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="time" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="jb" label="级  别">
|
||||
<el-select v-model="formData.jb" placeholder="请选择级别"
|
||||
clearable style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in jbOptions"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="xghbzje" label="补助金额">
|
||||
<el-input v-model="formData.xghbzje"
|
||||
onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
|
||||
placeholder="请输入补助金额" type="number">
|
||||
<template style="border: none;background-color: white;" slot="append">元
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="sign" label="签  字">
|
||||
<sign :qz.sync="formData.auditSign"></sign>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">通
|
||||
过
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<info ref="info"></info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
|
||||
'info': httpVueLoader('/components/difficulty/info.vue'),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
jbOptions: ['甲级', '乙级', '丙级'],
|
||||
subDis: false,
|
||||
subLoading1: false,
|
||||
subLoading2: false,
|
||||
pageForm: {
|
||||
unit: "",
|
||||
year: "",
|
||||
isAudit: false,
|
||||
searchName: "sbzr.loginname"
|
||||
},
|
||||
unitOptions: [],
|
||||
formRules: {
|
||||
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'openReview') {
|
||||
this.openReview(data)
|
||||
}
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.info.getInfo(id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openReview(row) {
|
||||
const {id} = row
|
||||
|
||||
this.formData = {
|
||||
id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
this.subDis = true
|
||||
flag ? this.subLoading2 = true : this.subLoading1 = true
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
this.subDis = false
|
||||
this.subLoading1 = false
|
||||
this.subLoading2 = false
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
this.unitOptions = await getUnits(null)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,743 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
#app {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
input[type=file] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
margin-bottom: 20px;
|
||||
letter-spacing: 2px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.card-title .title-left {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.card-title .title-right {
|
||||
text-align: right;
|
||||
font-size: 15px;
|
||||
color: #0e78c5;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.card-title .title-right:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.el-date-editor.el-input, .el-select, .el-input-number {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.addFormCard {
|
||||
|
||||
}
|
||||
|
||||
.excelCard {
|
||||
min-height: 650px;
|
||||
}
|
||||
|
||||
.excelBack {
|
||||
font-size: 15px;
|
||||
color: #0e78c5;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.excelBack:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.el-icon-loading {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.el-input-number__decrease, .el-input-number__increase {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.el-input-number .el-input__inner {
|
||||
padding: 0 15px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.el-icon-eleme:before {
|
||||
content: '元';
|
||||
}
|
||||
|
||||
.submitClass {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.ivu-upload {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.el-table th.gutter {
|
||||
display: table-cell !important
|
||||
|
||||
}
|
||||
|
||||
.el-table {
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
input::-webkit-outer-spin-button,
|
||||
input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
}
|
||||
|
||||
|
||||
input::-webkit-outer-spin-button,
|
||||
input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
.int_input .el-input-number__decrease {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.int_input .el-input-number__increase {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.int_input .el-input-number.is-controls-right .el-input__inner {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.border_table .el-table--border td, .el-table--border th, .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
|
||||
border-right: 1px solid #EBEEF5;
|
||||
border-right-width: 1px;
|
||||
border-right-style: solid;
|
||||
border-right-color: rgb(235, 238, 245);
|
||||
}
|
||||
|
||||
.border_table .el-table {
|
||||
border: 1px solid #EBEEF5;
|
||||
border-top-color: rgb(235, 238, 245);
|
||||
border-top-style: solid;
|
||||
border-top-width: 1px;
|
||||
border-right-color: rgb(235, 238, 245);
|
||||
border-right-style: solid;
|
||||
border-right-width: 1px;
|
||||
border-bottom-color: rgb(235, 238, 245);
|
||||
border-bottom-style: solid;
|
||||
border-bottom-width: 1px;
|
||||
border-left-color: rgb(235, 238, 245);
|
||||
border-left-style: solid;
|
||||
border-left-width: 1px;
|
||||
border-image-source: initial;
|
||||
border-image-slice: initial;
|
||||
border-image-width: initial;
|
||||
border-image-outset: initial;
|
||||
border-image-repeat: initial;
|
||||
}
|
||||
|
||||
.border_table .el-table--border::after, .el-table--group::after {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.textareaDiv {
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<transition name="el-zoom-in-top">
|
||||
<el-card class="addFormCard" v-show="AddFormCardShow">
|
||||
<div class="card-title">
|
||||
<span class="title-left" style="font-size: 18px;font-weight: bold">新增历史数据</span>
|
||||
<span class="title-right"
|
||||
@click="AddFormCardShow=!AddFormCardShow;ExcelCardShow=!AddFormCardShow;">
|
||||
从excel导入
|
||||
<span slot="suffix">
|
||||
<i class="el-icon-upload"></i>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<el-form :model="formData" style="width: 90%;margin: 0 auto" ref="addForm" :rules="formRules" size="medium"
|
||||
label-position="right"
|
||||
label-width="120px">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="year" label="年  份">
|
||||
<el-date-picker
|
||||
v-model="formData.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="选择年">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="sqr" label="困难职工">
|
||||
<el-select
|
||||
v-model="formData.sqr"
|
||||
@change="userChange"
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查找"
|
||||
:remote-method="remoteMethod"
|
||||
:loading="loading">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.username+'('+item.unitname+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="sex" label="性  别">
|
||||
<el-select v-model="formData.sex" placeholder="请选择性别" clearable>
|
||||
<el-option
|
||||
v-for="item in ['男','女']"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-form-item prop="jtzz" label="家庭地址">
|
||||
<el-input maxlength="50" placeholder="请输入家庭地址" clearable v-model="formData.jtzz"
|
||||
type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="lxfs" label="手机号码">
|
||||
<el-input maxlength="100" clearable placeholder="请填写手机号码" v-model="formData.lxfs"
|
||||
type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="brnzsr" label="本人年收入" class="int_input">
|
||||
<el-input-number clearable style="width: 100%" v-model="formData.brnzsr" :min="0"
|
||||
:max="9999999"
|
||||
controls-position="right" placeholder="请填写年收入(元)">
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="jtnzsr" label="家庭年收入" class="int_input">
|
||||
<el-input-number clearable style="width: 100%" v-model="formData.jtnzsr" :min="0"
|
||||
:max="9999999"
|
||||
controls-position="right" placeholder="请填写年收入(元)">
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="jtrs" label="家庭人数" class="int_input">
|
||||
<el-input-number clearable style="width: 100%" v-model="formData.jtrs" :min="0" :max="99"
|
||||
controls-position="right" placeholder="请填写家庭人数">
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="zyzkyybz" label="致困特殊原因">
|
||||
<el-input maxlength="500" placeholder="请简述原因" clearable v-model="formData.zyzkyybz"
|
||||
type="textarea"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<div class="submitClass">
|
||||
<el-button type="primary" @click="doAdd">确定</el-button>
|
||||
</div>
|
||||
|
||||
|
||||
</el-card>
|
||||
</transition>
|
||||
|
||||
<transition name="el-zoom-in-bottom">
|
||||
<el-card class="excelCard" v-show="ExcelCardShow">
|
||||
<div class="mb10">
|
||||
<span class="excelBack" @click="ExcelCardShow=!ExcelCardShow;AddFormCardShow=!ExcelCardShow;">< 返回</span>
|
||||
</div>
|
||||
<div class="mb20">
|
||||
<el-row class="header navbar">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button size="small" icon="el-icon-download" style="width: 100px"
|
||||
@click="location.href='/platform/knbf/sjdr/downLoadTemp'">下载模板
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<!-- <i-button icon="ios-cloud-download-outline" style="width: 100px" @click="download">下载模板</i-button>-->
|
||||
<el-upload :before-upload="handleUpload">
|
||||
<!--<i-button icon="ios-cloud-upload-outline" style="width: 100px">选择文件</i-button>-->
|
||||
<el-button icon="el-icon-upload" size="small" style="width: 100px">上传文件</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker size="small"
|
||||
v-model="year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="选择年">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div v-if="file!==null" style="height: 30px;">
|
||||
<el-row style="padding: 0 15px">
|
||||
<el-col :span="18">
|
||||
<span style="float: left;overflow: hidden;line-height: 30px;">
|
||||
<i class="el-icon-tickets"></i>
|
||||
{{file.name}} 
|
||||
<span style="font-size: 12px;color: #b49672;" v-if="tableData.length>0">共读取了{{tableData.length}}条数据</span>
|
||||
</span>
|
||||
</el-col>
|
||||
<span style="line-height: 30px;">
|
||||
<el-button size="mini" type="danger" @click="file=null">删除</el-button>
|
||||
<el-button size="mini" type="primary" @click="read">读取</el-button>
|
||||
</span>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
|
||||
<!--<i-button @click="ls">未提交数据</i-button>-->
|
||||
|
||||
|
||||
</div>
|
||||
<el-table :data="rows" empty-text="暂无数据,请上传文件">
|
||||
<el-table-column label="序号" type="index" header-align="center" align="center">
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center"
|
||||
prop="unitname" show-overflow-tooltip width="250px"
|
||||
label="单位"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="150px"
|
||||
prop="loginname"
|
||||
label="工号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="200px"
|
||||
prop="username"
|
||||
label="职工姓名"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="100px"
|
||||
prop="sex"
|
||||
label="性别"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="200px"
|
||||
prop="jtzz"
|
||||
label="家庭住址"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="150px"
|
||||
prop="lxfs"
|
||||
label="联系电话"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="200px"
|
||||
prop="zyzkyybz"
|
||||
label="致困特殊原因"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="100px"
|
||||
prop="jtrs"
|
||||
label="家庭人数"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="200px"
|
||||
prop="brnzsr"
|
||||
label="本人总收入(元)"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="200px"
|
||||
prop="jtnzsr"
|
||||
label="家庭总收入(元)"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center" header-align="center" show-overflow-tooltip width="150px"
|
||||
prop="jb"
|
||||
label="级别"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" header-align="center" align="center" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="danger" size="mini" icon="el-icon-delete" circle
|
||||
@click="rows.splice(scope.$index,1)"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div class="submitClass mt20 mr10">
|
||||
<el-button type="primary" @click="write">导 入</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</transition>
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
year: '',
|
||||
loading: false,
|
||||
userOptions: [],
|
||||
rows: [],
|
||||
file: null,
|
||||
AddFormCardShow: true,
|
||||
ExcelCardShow: false,
|
||||
ybOptions: ['统筹', '社保'],
|
||||
activeName: ['1'],
|
||||
zzyyOptions: ['本人大病', '供养直系亲属大病', '本人残疾', '家属残疾', '本人下岗失业', '家属下岗失业', '收入低', '自然灾害', '重大事故', '子女上学', '其他'],
|
||||
fclxOptions: ['商品房', '福利房', '经济适用房', '限价房', '自建房'],
|
||||
fclyOptions: ['购买', '接收赠与', '继承', '其他来源'],
|
||||
hyzkOptions: ['未婚', '已婚', '离异', '丧偶', '再婚'],
|
||||
zcOptions: ['教授', '副教授', '讲师', '助教'],
|
||||
mzOptions: [
|
||||
'汉族',
|
||||
'蒙古族',
|
||||
'回族',
|
||||
'藏族',
|
||||
'维吾尔族',
|
||||
'苗族',
|
||||
'彝族',
|
||||
'壮族',
|
||||
'布依族',
|
||||
'朝鲜族',
|
||||
'满族',
|
||||
'侗族',
|
||||
'瑶族',
|
||||
'白族',
|
||||
'土家族',
|
||||
'哈尼族',
|
||||
'哈萨克族',
|
||||
'傣族',
|
||||
'黎族',
|
||||
'傈僳族',
|
||||
'佤族',
|
||||
'畲族',
|
||||
'高山族',
|
||||
'拉祜族',
|
||||
'水族',
|
||||
'东乡族',
|
||||
'纳西族',
|
||||
'景颇族',
|
||||
'柯尔克孜族',
|
||||
'土族',
|
||||
'达翰尔族',
|
||||
'么佬族',
|
||||
'羌族',
|
||||
'布朗族',
|
||||
'撒拉族',
|
||||
'毛南族',
|
||||
'仡佬族',
|
||||
'锡伯族',
|
||||
'阿昌族',
|
||||
'普米族',
|
||||
'塔吉克族',
|
||||
'怒族',
|
||||
'乌孜别克族',
|
||||
'俄罗斯族',
|
||||
'鄂温克族',
|
||||
'德昂族',
|
||||
'保安族',
|
||||
'裕固族',
|
||||
'京族',
|
||||
'塔塔尔族',
|
||||
'独龙族',
|
||||
'鄂伦春族',
|
||||
'赫哲族',
|
||||
'门巴族',
|
||||
'珞巴族',
|
||||
'基诺族',
|
||||
],
|
||||
bzOptions: ['事业编制职工(正式职工)', '合同制职工', '人事代理职工', '集体职工', '流动编制职工', '非事业编制职工', '博士后进站人员', '劳务派遣人员', '聘用工(各二级单位聘用)'],
|
||||
ztObj: {
|
||||
1: {color: '#E6A23C', label: '待分工会审核'},
|
||||
2: {color: '#E6A23C', label: '待二级党组织审核'},
|
||||
3: {color: '#E6A23C', label: '待校工会审核'},
|
||||
4: {color: '#67C23A', label: '审核通过'},
|
||||
5: {color: '#F56C6C', label: '审核不通过'},
|
||||
},
|
||||
subDis: false,
|
||||
formData: {
|
||||
zyzkyy: [],
|
||||
jtcys: [],
|
||||
jtfc: [],
|
||||
jtcc: [],
|
||||
},
|
||||
userData: {},
|
||||
viewData: {},
|
||||
viewDialogVisible: false,
|
||||
addDialogVisible: false,
|
||||
editDialogVisible: false,
|
||||
tableData: [],
|
||||
pageForm: {
|
||||
searchName: "",
|
||||
searchKeyword: "",
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
pageOrderName: "",
|
||||
pageOrderBy: ""
|
||||
},
|
||||
formRules: {
|
||||
// parentUnit: [{validator: validateUnit, trigger: ['blur', 'change']}],
|
||||
idcard: [{
|
||||
required: false,
|
||||
message: '必填',
|
||||
trigger: ['blur', 'change']
|
||||
}, {
|
||||
pattern: /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
||||
message: '请输入正确的身份证号'
|
||||
}],
|
||||
year: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sqr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sqrname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sqrloginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
unitname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sqrunitname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
zyzkyy: [{required: true, message: '必选', trigger: ['blur', 'change']}],
|
||||
brnzsr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
jtnzsr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
jtrs: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
yhmc: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
yhkh: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
rsbz: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
jtzz: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
isNull(val) {
|
||||
return val === null || val === undefined || val === ''
|
||||
}
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
arr2str(val) {
|
||||
if (val && val.length > 0) {
|
||||
let str = ""
|
||||
for (let i = 0; i < val.length; i++) {
|
||||
str += val[i]
|
||||
if (i < val.length - 1) {
|
||||
str += '、'
|
||||
}
|
||||
}
|
||||
return str
|
||||
}
|
||||
return ''
|
||||
},
|
||||
none2str(val) {
|
||||
if (val === null || val === undefined || val === '') {
|
||||
return '暂无'
|
||||
}
|
||||
return val
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
write() {
|
||||
if (this.year == "" || this.year == undefined) {
|
||||
this.$message.warning("请选择数据所属年份!");
|
||||
return;
|
||||
}
|
||||
|
||||
let obj = {
|
||||
zgfw_knbfs: JSON.stringify(this.rows),
|
||||
sqsj: this.year + "-01-01"
|
||||
}
|
||||
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据提交中...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
$.post(base + "/platform/knbf/sjdr/write", obj, (data) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'success'
|
||||
});
|
||||
this.rows = []
|
||||
this.file = null
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
this.subDis = false
|
||||
loading.close()
|
||||
}, "json");
|
||||
},
|
||||
read: function () {
|
||||
var self = this;
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append("file", self.file);
|
||||
sublime.showLoadingbar()
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据读取中',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
$.ajax({
|
||||
url: base + "/platform/knbf/sjdr/getRow",
|
||||
type: "post",
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function (data) {
|
||||
if (data.code == 0) {
|
||||
console.log(data)
|
||||
loading.close();
|
||||
if (data.data.length > 0) {
|
||||
self.rows = data.data
|
||||
self.$message.success("读取成功!一共读取了" + self.rows.length + "条数据");
|
||||
} else {
|
||||
self.$message.warning("表格内没有数据,请重新导入文件");
|
||||
}
|
||||
|
||||
} else {
|
||||
loading.close();
|
||||
self.$message.error(data.msg);
|
||||
}
|
||||
sublime.closeLoadingbar()
|
||||
},
|
||||
error: function (data) {
|
||||
loading.close();
|
||||
sublime.closeLoadingbar()
|
||||
}
|
||||
});
|
||||
/* $.post((base + "/platform/knbf/sjdr/getRow", this.formData, (data => {
|
||||
if (data.code == 0) {
|
||||
console.log(1)
|
||||
loading.close();
|
||||
if (data.data.length > 0) {
|
||||
self.rows = data.data
|
||||
self.$message.success("读取成功!一共读取了" + self.rows.length + "条数据");
|
||||
} else {
|
||||
self.$message.warning("表格内没有数据,请重新导入文件");
|
||||
}
|
||||
} else {
|
||||
loading.close();
|
||||
self.$message.error(data.msg);
|
||||
}
|
||||
sublime.closeLoadingbar()
|
||||
})
|
||||
));*/
|
||||
},
|
||||
doAdd() {
|
||||
this.$refs["addForm"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.subDis = true
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据提交中...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.formData.sqsj = this.formData.year + '-01-01'
|
||||
$.post(base + "/platform/knbf/sjdr/doAdd", this.formData, (data) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'success'
|
||||
});
|
||||
this.formData = {}
|
||||
this.userOptions = []
|
||||
if (this.$refs["addForm"])
|
||||
this.$refs["addForm"].resetFields();
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
this.subDis = false
|
||||
loading.close()
|
||||
}, "json");
|
||||
}
|
||||
});
|
||||
},
|
||||
userChange(id) {
|
||||
this.userOptions.forEach(val => {
|
||||
if (val.id == id) {
|
||||
vue.$set(this.formData, 'username', val.username)
|
||||
vue.$set(this.formData, 'birthday', val.birthday)
|
||||
vue.$set(this.formData, 'sex', val.sex)
|
||||
vue.$set(this.formData, 'unitname', val.unitname)
|
||||
}
|
||||
})
|
||||
},
|
||||
remoteMethod(query) {
|
||||
this.loading = true
|
||||
this.userOptions = []
|
||||
$.post(base + "/platform/knbf/sjdr/queryUser", {query: query}, (data) => {
|
||||
if (data.code == 0) {
|
||||
this.userOptions = data.data.list;
|
||||
}
|
||||
this.loading = false
|
||||
}, "json");
|
||||
},
|
||||
zcBlur(e) {
|
||||
this.$set(this.formData, 'zc', e.target.value)
|
||||
},
|
||||
handleUpload(file) {
|
||||
var self = this;
|
||||
var typename = file.name.substring(file.name.lastIndexOf('.'), file.name.length);
|
||||
if (typename.indexOf('xls', 'xlsx') < 0) {
|
||||
self.$message.error('只能上传xls,xlsx格式的文件');
|
||||
return false;
|
||||
}
|
||||
self.file = file;
|
||||
return false;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user