This commit is contained in:
zhengziru
2024-07-26 16:53:41 +08:00
parent ddf52e5e86
commit 1f4284acbf
22 changed files with 518 additions and 442 deletions
@@ -52,8 +52,27 @@ public class SignatureController {
@At @At
@Ok("json") @Ok("json")
@RequiresAuthentication @RequiresAuthentication
public Object doSub(String prefix, String id, String base64) { public Object doSub(String prefix, String id, String base64, Boolean is_value_base64) {
if (is_value_base64) {
redisService.setex(prefix + ":" + id, 60 * 10, base64); redisService.setex(prefix + ":" + id, 60 * 10, base64);
} else {
String today = DateUtil.today();
String[] split = today.split("-");
String todayPath = "/signature/" + split[0] + "/" + split[1] + "/" + split[2];
String fileName = R.UU32() + ".png";
String fullPath = todayPath + "/" + fileName;
String replaceData = base64.replaceAll("data:image/png;base64,", "");
try (InputStream is = new ByteArrayInputStream(Base64.decode(replaceData))) {
ftpService.upload(todayPath, fileName, is);
redisService.setex(prefix + ":" + id, 60 * 10, fullPath);
} catch (Exception e) {
return Result.error("签字数据上传失败");
}
}
return Result.success(); return Result.success();
} }
@@ -94,6 +113,7 @@ public class SignatureController {
try (InputStream is = new ByteArrayInputStream(Base64.decode(replaceData))) { try (InputStream is = new ByteArrayInputStream(Base64.decode(replaceData))) {
ftpService.upload(todayPath, fileName, is); ftpService.upload(todayPath, fileName, is);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return Result.error("签字数据上传失败"); return Result.error("签字数据上传失败");
} }
@@ -175,7 +175,7 @@ public class ActivityUnionManageController {
}); });
tissue.getCover(); tissue.getCover();
if (tissue.getIsPushHome()!=0) { if (tissue.getIsPushHome()!= null && tissue.getIsPushHome()!=0) {
mobileHomeService.handle(tissue, "ActivityTissue", "/mobile/activity/unionActivity", tissue.getIsPushHome()); mobileHomeService.handle(tissue, "ActivityTissue", "/mobile/activity/unionActivity", tissue.getIsPushHome());
} }
@@ -188,7 +188,7 @@ public class ActivityUnionManageController {
@ViReturn @ViReturn
@RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR) @RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR)
public Object doEdit(@Param("tissue") ActivityTissue tissue) { public Object doEdit(@Param("tissue") ActivityTissue tissue) {
if (tissue.getIsPushHome()!=0) { if (tissue.getIsPushHome()!= null && tissue.getIsPushHome()!=0) {
mobileHomeService.handle(tissue, "ActivityTissue", "/mobile/activity/unionActivity", tissue.getIsPushHome()); mobileHomeService.handle(tissue, "ActivityTissue", "/mobile/activity/unionActivity", tissue.getIsPushHome());
} else { } else {
mobileHomeService.delete(tissue.getId()); mobileHomeService.delete(tissue.getId());
@@ -108,13 +108,13 @@ public class ActivityReimbursementMineController {
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
if (!ShiroUtil.hasAnyRoles("sysadmin,wyh02,H10,xghng")) { if (!ShiroUtil.hasAnyRoles("sysadmin,wyh02,H10,xghng")) {
SqlExpressionGroup group2 = new SqlExpressionGroup(); SqlExpressionGroup group2 = new SqlExpressionGroup();
if (ShiroUtil.hasAnyRoles("gh01,H04")) { // if (ShiroUtil.hasAnyRoles("gh01,H04")) {
group2.or("u.unionid", "=", vi.getUnionId()); // group2.or("u.unionid", "=", vi.getUnionId());
} else if (ShiroUtil.hasRole("H02")) { // } else if (ShiroUtil.hasRole("H02")) {
group2.or("scu.clubid", "=", vi.getClubId()); // group2.or("scu.clubid", "=", vi.getClubId());
} else { // } else {
// }
group2.or("act.user_id", "=", ShiroUtil.getUserId()); group2.or("act.user_id", "=", ShiroUtil.getUserId());
}
cnd.and(group2); cnd.and(group2);
} }
@@ -33,7 +33,7 @@ public class updateSign {
if (StrUtil.isBlank(user_id)) { if (StrUtil.isBlank(user_id)) {
user_id = (String) ShiroUtil.getPrincipalProperty("id"); user_id = (String) ShiroUtil.getPrincipalProperty("id");
} }
if (Strings.isNotBlank(getMySign())) { if (Strings.isNotBlank(getMySign(null))) {
userSignService.update(Chain.make("data", sign), Cnd.where("user_id", "=", user_id)); userSignService.update(Chain.make("data", sign), Cnd.where("user_id", "=", user_id));
} else { } else {
userSignService.insert(new UserSign(user_id, sign)); userSignService.insert(new UserSign(user_id, sign));
@@ -41,8 +41,21 @@ public class updateSign {
} }
@At @At
public String getMySign() { public void update(String sign, String user_id, String prefix) {
List<UserSign> userSigns = userSignService.query(Cnd.NEW().and("user_id", "=", ShiroUtil.getPrincipalProperty("id"))); if (StrUtil.isBlank(user_id)) {
user_id = (String) ShiroUtil.getPrincipalProperty("id");
}
if (Strings.isNotBlank(getMySign(prefix))) {
userSignService.update(Chain.make("data", sign), Cnd.where("user_id", "=", user_id));
} else {
userSignService.insert(new UserSign(user_id, sign, prefix));
}
}
@At
public String getMySign(String prefix) {
List<UserSign> userSigns = userSignService.query(Cnd.NEW().and("user_id", "=", ShiroUtil.getPrincipalProperty("id"))
.andEX("prefix", "=", prefix));
return userSigns.isEmpty() ? null : userSigns.get(0).getData(); return userSigns.isEmpty() ? null : userSigns.get(0).getData();
} }
} }
@@ -1,7 +1,7 @@
<template> <template>
<el-card class="box-card"> <el-card shadow="never">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="color: #409EFF;font-size: 18px">填写申请信息</span> <h3 style="color: #1867b0">填写申请信息</h3>
</div> </div>
<el-form :model="form" ref="addform" :rules="formRules" label-width="120px"> <el-form :model="form" ref="addform" :rules="formRules" label-width="120px">
<el-row gutter="20"> <el-row gutter="20">
@@ -11,15 +11,16 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <!-- <el-col :span="8">
<el-form-item prop="apply_mode" label="申请模式"> <el-form-item prop="apply_mode" label="申请模式">
<el-radio-group :disabled="form.id" v-model="form.apply_mode" @change="$emit('radio')" style="width: 100%" <el-radio-group :disabled="form.id" v-model="form.apply_mode" @change="$emit('radio')"
style="width: 100%"
> >
<el-radio-button label="1" border>本人申请</el-radio-button> <el-radio-button label="1" border>本人申请</el-radio-button>
<el-radio-button label="2" border>替他人申请</el-radio-button> <el-radio-button label="2" border>替他人申请</el-radio-button>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="user_name" label="申请人工号"> <el-form-item prop="user_name" label="申请人工号">
<el-input disabled v-model="form.sqrloginname" <el-input disabled v-model="form.sqrloginname"
@@ -27,13 +28,13 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row gutter="20"> <!-- <el-col :span="8">
<el-col :span="8">
<el-form-item prop="bbzrusername" label="受补助人"> <el-form-item prop="bbzrusername" label="受补助人">
<el-select v-if="form.id==null" clearable <el-select v-if="form.id==null" clearable
v-model="form.bbzrusername" filterable remote v-model="form.bbzrusername" filterable remote
placeholder="输入工号或者姓名查找" :remote-method="querySqr" @change="userChange" style="width: 100%"> placeholder="输入工号或者姓名查找" :remote-method="querySqr" @change="userChange"
style="width: 100%">
<el-option v-for="o in subsidizedList" <el-option v-for="o in subsidizedList"
:label="o.username+'('+o.loginname+')-'+o.unit_name" :value="o.id" :label="o.username+'('+o.loginname+')-'+o.unit_name" :value="o.id"
:key="o.id"></el-option> :key="o.id"></el-option>
@@ -41,28 +42,26 @@
<el-input maxlength="100" disabled v-else v-model="form.bbname" <el-input maxlength="100" disabled v-else v-model="form.bbname"
type="text"></el-input> type="text"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :span="8"> <!-- <el-col :span="8">
<el-form-item prop="idcard" label="身份证号"> <el-form-item prop="idcard" label="身份证号">
<el-input maxlength="50" placeholder="请输入身份证号" clearable <el-input maxlength="50" placeholder="请输入身份证号" clearable
v-model="form.idcard" v-model="form.idcard"
type="text"></el-input> type="text"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="sex" label="性&emsp;&emsp;别"> <el-form-item prop="sex" label="性&emsp;&emsp;别">
<el-select v-model="form.sex" placeholder="请选择性别" clearable <el-select v-model="form.sex" placeholder="请选择性别" clearable
:disabled="form.apply_mode==1" style="width: 100%"> style="width: 100%">
<el-option v-for="item in ['男','女']" :key="item" :label="item" :value="item"> <el-option v-for="item in ['男','女']" :key="item" :label="item" :value="item">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row gutter="20"> <!-- <el-col :span="8">
<el-col :span="8">
<el-form-item prop="mz" label="民&emsp;&emsp;族"> <el-form-item prop="mz" label="民&emsp;&emsp;族">
<el-select v-model="form.mz" placeholder="请选择民族" filterable clearable style="width: 100%"> <el-select v-model="form.mz" placeholder="请选择民族" filterable clearable style="width: 100%">
<el-option <el-option
@@ -73,9 +72,9 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :span="8"> <!-- 职称本字段是通过人工选择输入,下面的是直接读取数据库 -->
<el-form-item prop="zc" label="职&emsp;&emsp;称"> <!-- <el-form-item prop="zc" label="职&emsp;&emsp;称">
<el-select v-model="form.zc" placeholder="请选择或输入职称" filterable clearable <el-select v-model="form.zc" placeholder="请选择或输入职称" filterable clearable
style="width: 100%"> style="width: 100%">
<el-option <el-option
@@ -85,6 +84,10 @@
:value="item"> :value="item">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item>-->
<!-- <el-form-item prop="zc" label="职&emsp;&emsp;称">
<el-input placeholder="请填写职称" v-model="form.zc" maxlength="30"
type="text"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -92,26 +95,32 @@
<el-input maxlength="50" clearable placeholder="请填写职务" v-model="form.zw" <el-input maxlength="50" clearable placeholder="请填写职务" v-model="form.zw"
type="text"></el-input> type="text"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
</el-row>
<el-row gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="brnzsr" label="本人年收入" class="int_input"> <el-form-item prop="unitname" label="所在单位">
<el-input maxlength="50" clearable placeholder="所在单位" v-model="form.unitname"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="brnzsr" label="本人月收入" class="int_input">
<el-input-number clearable style="width: 100%" v-model="form.brnzsr" :min="0" <el-input-number clearable style="width: 100%" v-model="form.brnzsr" :min="0"
:max="9999999" :max="9999999"
controls-position="right" placeholder="请填写年收入(元)"> controls-position="right" placeholder="请填写本人月收入(元)">
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="birthday" label="生&emsp;&emsp;日"> <el-form-item prop="birthday" label="出生年月">
<el-date-picker <el-date-picker
clearable clearable
style="width: 100%" style="width: 100%"
v-model="form.birthday" v-model="form.birthday"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择生日"> placeholder="选择出生年月">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -121,6 +130,12 @@
type="text"></el-input> type="text"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16">
<el-form-item prop="jtzz" label="家庭地址">
<el-input maxlength="100" clearable placeholder="请填写家庭地址" v-model="form.jtzz"
type="text"></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
<el-form-item prop="rsbz" label="人事编制"> <el-form-item prop="rsbz" label="人事编制">
<el-select v-model="form.rsbz" placeholder="请选择人事编制" clearable <el-select v-model="form.rsbz" placeholder="请选择人事编制" clearable
@@ -134,21 +149,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>--> </el-col>-->
</el-row>
<el-row gutter="20"> <!-- <el-col :span="12">
<el-col :span="12">
<el-form-item prop="unitname" label="所在单位">
<el-input maxlength="50" clearable placeholder="所在单位" v-model="form.unitname"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sq_ksbz" label="科室班组"> <el-form-item prop="sq_ksbz" label="科室班组">
<el-input maxlength="50" clearable placeholder="科室班组" v-model="form.sq_ksbz" <el-input maxlength="50" clearable placeholder="科室班组" v-model="form.sq_ksbz"
type="text"></el-input> type="text"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
</el-row>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
<el-form-item prop="ybzk" label="医保状况"> <el-form-item prop="ybzk" label="医保状况">
<el-select v-model="form.ybzk" placeholder="请选择医保状况" clearable style="width: 100%"> <el-select v-model="form.ybzk" placeholder="请选择医保状况" clearable style="width: 100%">
@@ -162,8 +169,9 @@
</el-form-item> </el-form-item>
</el-col>--> </el-col>-->
</el-row>
<el-row gutter="20"> <!-- <el-row gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="补助类型" prop="sq_bzlx"> <el-form-item label="补助类型" prop="sq_bzlx">
<el-select v-model="form.sq_bzlx" @change="$set(form,'sq_knlx','')" <el-select v-model="form.sq_bzlx" @change="$set(form,'sq_knlx','')"
@@ -181,15 +189,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>-->
<el-row v-if="form.sq_knlx==1" gutter="20"> <!-- <el-row v-if="form.sq_knlx==1">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所在医院" prop="hospital"> <el-form-item label="所在医院" prop="hospital">
<el-input placeholder="请填写所在所在医院" v-model="form.hospital"></el-input> <el-input placeholder="请填写所在所在医院" v-model="form.hospital"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="住院时间" prop="hospitalized_time"> <el-form-item label="住院时间" prop="hospitalized_time">
<el-date-picker <el-date-picker
@@ -202,14 +209,13 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>-->
</el-row>
<el-row gutter="20"> <!-- <el-row gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="yhmc" label="发放补助银行支行名称"> <el-form-item prop="yhmc" label="发放补助银行">
<el-input maxlength="100" placeholder="请输入发放补助银行支行名称" clearable v-model="form.yhmc" <el-input maxlength="100" placeholder="请输入发放补助银行" clearable v-model="form.yhmc"
type="text" style="width: 100%"></el-input> type="text" style="width: 100%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -219,22 +225,25 @@
type="text" style="width: 100%"></el-input> type="text" style="width: 100%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>-->
<el-form-item prop="apply_reason" label="申请理由"> <el-form-item prop="apply_reason" label="申请原因">
<el-input maxlength="500" :autosize="{ minRows: 5, maxRows: 10}" placeholder="请简述申请理由" clearable <el-input maxlength="500" :autosize="{ minRows: 5, maxRows: 10}" placeholder="请简述申请原因"
clearable
v-model="form.apply_reason" v-model="form.apply_reason"
type="textarea"></el-input> type="textarea"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="zyzkyybz" label="备&emsp;&emsp;注"> <el-form-item prop="zyzkyybz" label="备&emsp;&emsp;注">
<el-input maxlength="500" placeholder="请简述原因" clearable v-model="form.zyzkyybz" <el-input maxlength="500" placeholder="请简述备注" :autosize="{ minRows: 5, maxRows: 10}"
clearable v-model="form.zyzkyybz"
type="textarea"></el-input> type="textarea"></el-input>
</el-form-item> </el-form-item>
<el-divider content-position="left" class="dia"><span style="color: #3ea1ec;">主要家庭成员</span></el-divider> <el-divider content-position="left" class="dia"><span style="color: #3ea1ec;">家庭成员经济收入</span>
<el-form-item label-width="0"> </el-divider>
<el-form-item>
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini" <el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini"
@click="form.jtcys.push({})"> @click="form.jtcys.push({})">
添加 添加
@@ -246,32 +255,31 @@
style="width: 100%"> style="width: 100%">
<el-table-column prop="xm" label="姓名" align="center" header-align="center"> <el-table-column prop="xm" label="姓名" align="center" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input placeholder="请输入姓名" maxlength="100" v-model="scope.row.xm" clearable></el-input> <el-input placeholder="请输入姓名" maxlength="100" v-model="scope.row.xm"
</template> clearable></el-input>
</el-table-column>
<el-table-column prop="gx" label="与本人关系" align="center" header-align="center">
<template slot-scope="scope">
<el-input placeholder="请输入与本人关系" maxlength="30" v-model="scope.row.gx" clearable></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="nl" label="年龄" align="center" header-align="center"> <el-table-column prop="nl" label="年龄" align="center" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input-number clearable style="width: 100%" v-model="scope.row.nl" :min="0" :max="99" <el-input-number clearable style="width: 100%" v-model="scope.row.nl" :min="0"
:max="99"
controls-position="right" placeholder="请填写年龄"> controls-position="right" placeholder="请填写年龄">
</el-input-number> </el-input-number>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="gzdw" label="工作单位" align="center" header-align="center"> <el-table-column prop="gx" label="与本人关系" align="center" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input placeholder="请输入工作单位" maxlength="100" v-model="scope.row.gzdw" <el-input placeholder="请输入与本人关系" maxlength="30" v-model="scope.row.gx"
clearable></el-input> clearable></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="nsr" label="年收入(元)" align="center" header-align="center">
<el-table-column prop="nsr" label="月收入(元)" align="center" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input-number clearable style="width: 100%" v-model="scope.row.nsr" :min="0" <el-input-number clearable style="width: 100%" v-model="scope.row.nsr" :min="0"
:max="9999999" :max="9999999"
controls-position="right" placeholder="请填写年收入"> controls-position="right" placeholder="请填写月收入">
</el-input-number> </el-input-number>
</template> </template>
</el-table-column> </el-table-column>
@@ -285,20 +293,20 @@
</el-table> </el-table>
</el-form-item> </el-form-item>
<el-divider content-position="left" class="dia"><span style="color: #3ea1ec;">附&emsp;&emsp;件</span></el-divider> <el-divider content-position="left" class="dia"><span
<el-form-item prop="files" label-width="auto"> style="color: #3ea1ec;">附&emsp;&emsp;件</span></el-divider>
<el-form-item prop="files" label-width="">
<file-upload :files.sync="form.files" card></file-upload> <file-upload :files.sync="form.files" card></file-upload>
</el-form-item> </el-form-item>
<el-divider content-position="left" class="dia"><span <el-divider content-position="left" class="dia"><span
style="color: #3ea1ec;">签&emsp;&emsp;字</span></el-divider> style="color: #3ea1ec;">签&emsp;&emsp;字</span></el-divider>
<el-form-item prop="sign" label-width="auto"> <el-form-item prop="sign" label-width="">
<sign :qz.sync="form.sqsign"></sign> <sign :qz.sync="form.sqsign"></sign>
</el-form-item> </el-form-item>
</el-form> </el-form>
<slot name="footer"></slot>
</el-card> </el-card>
</template> </template>
<script> <script>
@@ -314,11 +322,12 @@ module.exports = {
formRules: { formRules: {
bbzrusername: [{required: true, message: '必填', trigger: ['blur', 'change']}], bbzrusername: [{required: true, message: '必填', trigger: ['blur', 'change']}],
apply_reason: [{required: true, message: '必填', trigger: ['blur', 'change']}], apply_reason: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unitname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
brnzsr: [{required: true, message: '必填', trigger: ['blur', 'change']}], brnzsr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sq_bzlx: [{required: true, message: '必填', trigger: ['blur', 'change']}], birthday: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sq_knlx: [{required: true, message: '必填', trigger: ['blur', 'change']}], lxfs: [{required: true, message: '必填', trigger: ['blur', 'change']}],
yhmc: [{required: true, message: '必填', trigger: ['blur', 'change']}], jtzz: [{required: true, message: '必填', trigger: ['blur', 'change']}],
yhkh: [{required: true, message: '必填', trigger: ['blur', 'change']}],
}, },
subsidizedList: [], subsidizedList: [],
mzOptions: [ mzOptions: [
@@ -407,6 +416,36 @@ module.exports = {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'), 'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
}, },
methods: { methods: {
async operation(flag) {
let method = this.form.id ? "/doEdit" : "/doAdd"
if (flag) {
const valid = await this.$refs["addform"].validate()
if (!valid) {
return
}
}
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
const formData = Object.assign({}, this.form);
formData.jtcys = JSON.stringify(formData.jtcys)
formData.files = JSON.stringify(formData.files)
formData.applicantsign = formData.sqsign
formData.flag = flag
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 getUserData(userId) { async getUserData(userId) {
const {data} = await $.get("/platform/fw/condolence/apply/getUserData", {userId}) const {data} = await $.get("/platform/fw/condolence/apply/getUserData", {userId})
return data return data
@@ -419,7 +458,8 @@ module.exports = {
this.$set(this.form, 'zzmm', userData.political) this.$set(this.form, 'zzmm', userData.political)
this.$set(this.form, 'rsbz', userData.personType) this.$set(this.form, 'rsbz', userData.personType)
this.$set(this.form, 'mz', userData.nation) this.$set(this.form, 'mz', userData.nation)
this.$set(this.form, 'zw', userData.zw) this.$set(this.form, 'zw', userData.position)
this.$set(this.form, 'zc', userData.jobtitle)
this.$set(this.form, 'birthday', userData.birthday) this.$set(this.form, 'birthday', userData.birthday)
this.$set(this.form, 'lxfs', userData.mobile) this.$set(this.form, 'lxfs', userData.mobile)
this.$set(this.form, 'unitname', userData.name) this.$set(this.form, 'unitname', userData.name)
@@ -428,11 +468,7 @@ module.exports = {
$.post(base + '/platform/fw/difficulty/apply/querySqr', {key: key}).then(res => { $.post(base + '/platform/fw/difficulty/apply/querySqr', {key: key}).then(res => {
this.subsidizedList = res.data; this.subsidizedList = res.data;
}); });
}, }
},
async created() {
} }
} }
</script> </script>
@@ -14,66 +14,33 @@
{{ viewData.sqrloginname }} {{ viewData.sqrloginname }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item prop="user_name" label="补助人身份证号码"> <!-- <el-col :span="8">
{{ viewData.idcard }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="user_name" label="受补助人"> <el-form-item prop="user_name" label="受补助人">
{{ viewData.bbname }} {{ viewData.bbname }}
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="sex" label="性&emsp;&emsp;别"> <el-form-item prop="sex" label="性&emsp;&emsp;别">
{{ viewData.sex }} {{ viewData.sex }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="所在单位">
{{ viewData.unitname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="user_age" label="本人月收入">
{{ viewData.brnzsr }}
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="user_age" label="出生日期"> <el-form-item prop="user_age" label="出生日期">
{{ viewData.birthday }} {{ viewData.birthday }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8">
<el-form-item label="民&emsp;&emsp;族">
{{ viewData.mz }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职&emsp;&emsp;称">
{{ viewData.zc }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职&emsp;&emsp;务">
{{ viewData.zw }}
</el-form-item>
</el-col>-->
<!-- <el-col :span="8">
<el-form-item label="政治面貌">
{{ viewData.zzmm }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="人事编制">
{{ viewData.rsbz }}
</el-form-item>
</el-col>-->
<!-- <el-col :span="8">
<el-form-item label="参加工作时间">
{{ viewData.cjgzsj }}
</el-form-item>
</el-col>-->
<!-- <el-col :span="8">
<el-form-item label="医保情况">
{{ viewData.ybzk }}
</el-form-item>
</el-col>-->
<el-col :span="8">
<el-form-item label="所在单位">
{{ viewData.bbunit }}
</el-form-item>
</el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
<el-form-item label="在职状态"> <el-form-item label="在职状态">
{{ viewData.on_job ? '在职' : '退休' }} {{ viewData.on_job ? '在职' : '退休' }}
@@ -84,91 +51,25 @@
{{ viewData.lxfs }} {{ viewData.lxfs }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="补助类型"> <el-form-item label="家庭地址">
{{ this.subsidy[viewData.sq_bzlx] }} {{ viewData.jtzz }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="困难类型">
{{ this.sq_knlx[viewData.sq_knlx] }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室班组">
{{ viewData.sq_ksbz }}
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="主要致困原因">
{{ viewData.zyzkyy }}
</el-form-item>
</el-col>-->
<!-- <el-col :span="8">
<el-form-item label="本人年收入">
{{ viewData.brnzsr > 0 ? viewData.brnzsr : 0 }}元
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="家庭年收入">
{{ viewData.jtnzsr > 0 ? viewData.jtnzsr : 0 }}元
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="家庭人数">
{{ viewData.jtrs > 0 ? viewData.jtrs : 0 }}人
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="现住房类型">
{{ viewData.xzflx }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建筑面积">
{{ viewData.jzmj > 0 ? viewData.jzmj : 0 }}平方
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="婚姻状况">
{{ viewData.hyzt }}
</el-form-item>
</el-col>-->
<el-col :span="8">
<el-form-item label="发放补助银行">
{{ viewData.yhmc }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发放补助银行卡号">
{{ viewData.yhkh }}
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="级别">
{{ viewData.jb }}
</el-form-item>
</el-col>-->
<el-col :span="8">
<el-form-item label="所在医院">
{{ viewData.hospital }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="住院时间">
{{ viewData.hospitalized_time }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="申请理由"> <el-form-item label="申请理由">
{{ viewData.apply_reason }} {{ viewData.apply_reason }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
{{ viewData.zyzkyybz }} {{ viewData.zyzkyybz }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item prop="user_name" label="附&emsp;&emsp;件"> <el-form-item prop="user_name" label="附&emsp;&emsp;件">
<file-upload v-if="viewData.files&&viewData.files.length" <file-upload v-if="viewData.files&&viewData.files.length"
@@ -178,7 +79,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="签&emsp;&emsp;字:"> <el-form-item label="签&emsp;&emsp;字">
<el-image v-if="viewData.sqsign" <el-image v-if="viewData.sqsign"
style="width: 300px; height: 100px" style="width: 300px; height: 100px"
:src="viewData.sqsign" :src="viewData.sqsign"
@@ -189,51 +90,26 @@
</el-row> </el-row>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="主要家庭成员" name="4"> <el-tab-pane label="家庭成员经济收入" name="2">
<el-table
:data="viewData.jtcys"
border
size="mini"
style="width: 100%">
<el-table-column prop="xm" label="姓名" align="center" header-align="center">
</el-table-column>
<el-table-column prop="nl" label="年龄" align="center" header-align="center">
</el-table-column>
<el-table-column prop="gx" label="与本人关系" align="center" header-align="center">
</el-table-column>
<el-table-column prop="nsr" label="月收入(元)" align="center" header-align="center">
</el-table-column>
<el-table :data="viewData.jtcys" border size="mini" style="width: 100%">
<el-table-column sortable type="index" width="100" label="序号"
align="center" header-align="center">
</el-table-column>
<el-table-column prop="xm" label="姓名" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" v-model="row.xm"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column prop="gx" label="与本人关系" placeholder="暂无" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="暂无" v-model="row.gx"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column prop="nl" label="年龄" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="暂无" v-model="row.nl"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column prop="gzdw" label="工作单位" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="暂无" v-model="row.gzdw"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column prop="nsr" label="年收入(元)" placeholder="暂无" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="暂无" v-model="row.nsr"
type="text"></el-input>
</template>
</el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="基层工会主席审核信息" name="5" v-if="hasPane(5)&&viewData.upa">
<el-tab-pane label="分工会审核信息" name="5" v-if="viewData.upa">
<el-form label-width="130px" style="padding: 20px 0"> <el-form label-width="130px" style="padding: 20px 0">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header"> <el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
@@ -247,12 +123,14 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="审核时间:"> <el-form-item label="审核时间:">
{{ moment(viewData.upa.auditTime).format("YYYY-MM-DD") }} {{ viewData.upa.auditTime }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="审核意见:"> <el-form-item label="审核意见:">
<div class="textarea-div">{{ viewData.upa.auditOpinion ? viewData.upa.auditOpinion : '暂无' }}</div> <div class="textarea-div">
{{ viewData.upa.auditOpinion ? viewData.upa.auditOpinion : '暂无' }}
</div>
</el-form-item> </el-form-item>
<el-form-item label="签&emsp;&emsp;字:"> <el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.upa.auditSign" <el-image v-if="viewData.upa.auditSign"
@@ -263,37 +141,76 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="校工会主席审核信息" name="9" v-if="hasPane(9)&&viewData.sua"> <el-tab-pane label="校工会初审信息" name="9" v-if="viewData.tda">
<el-form label-width="130px" style="padding: 20px 0"> <el-form label-width="130px" style="padding: 20px 0">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header"> <el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item> </el-form-item>
<el-row gutter="20"> <el-row gutter="20">
<el-col :span="8"> <el-col :span="12">
<el-form-item label="审核人员:"> <el-form-item label="审核人员:">
{{ viewData.sua.username }} {{ viewData.tda.username }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="审核时间:"> <el-form-item label="审核时间:">
{{ moment(viewData.sua.auditTime).format("YYYY-MM-DD") }} {{ viewData.tda.auditTime }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="补助金额"> <el-form-item label="初审金额:">
{{ viewData.xghbzje }} {{ viewData.xghbzje }}(元)
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="审核意见:"> <el-form-item label="审核意见:">
<div class="textarea-div">{{ viewData.sua.auditOpinion ? viewData.sua.auditOpinion : '暂无' }}</div> <div class="textarea-div">
{{ viewData.tda.auditOpinion ? viewData.tda.auditOpinion : '暂无' }}
</div>
</el-form-item> </el-form-item>
<el-form-item label="签&emsp;&emsp;字:"> <el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.sua.auditSign" <el-image v-if="viewData.tda.auditSign"
style="width: 300px; height: 100px" style="width: 300px; height: 100px"
:src="viewData.sua.auditSign" :src="viewData.tda.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会主席审核信息" name="10" v-if="viewData.sma">
<el-form label-width="130px" style="padding: 20px 0">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人员:">
{{ viewData.sma.username }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.sma.auditTime }}
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="补助金额:">
{{ viewData.xghbzje }}
</el-form-item>
</el-col>-->
</el-row>
<el-form-item label="审核意见:">
<div class="textarea-div">
{{ viewData.sma.auditOpinion ? viewData.sma.auditOpinion : '暂无' }}
</div>
</el-form-item>
<el-form-item label="签&emsp;&emsp;字:">
<el-image v-if="viewData.sma.auditSign"
style="width: 300px; height: 100px"
:src="viewData.sma.auditSign"
fit="contain"></el-image> fit="contain"></el-image>
<span v-else>暂无</span> <span v-else>暂无</span>
</el-form-item> </el-form-item>
@@ -362,9 +279,9 @@ module.exports = {
if (data) { if (data) {
this.viewData.files = [] this.viewData.files = []
this.difficulty = this.handle ? "999" : "1" this.difficulty = this.handle ? "999" : "1"
console.log(data)
this.viewData = data this.viewData = data
if (this.viewData.files.length > 0) { console.log(data)
if (this.viewData.files && this.viewData.files.length > 0) {
this.viewData.files = JSON.parse(data.files) this.viewData.files = JSON.parse(data.files)
} }
@@ -375,7 +292,7 @@ module.exports = {
type: 'error' type: 'error'
}); });
} }
}, }
} }
} }
</script> </script>
@@ -110,7 +110,7 @@ pre {
</el-descriptions> </el-descriptions>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="院级工会审核信息" name="3" v-if="hasPane(3)&&viewData.unionAuditId"> <el-tab-pane label="分工会审核信息" name="3" v-if="hasPane(3)&&viewData.unionAuditId">
<vi-title title="审核信息"></vi-title> <vi-title title="审核信息"></vi-title>
<el-descriptions :column="2" border class="table_fixed"> <el-descriptions :column="2" border class="table_fixed">
@@ -150,7 +150,7 @@
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="院级工会审核信息" name="3" v-if="hasPane(3)&&viewData.unionAuditId"> <el-tab-pane label="分工会审核信息" name="3" v-if="hasPane(3)&&viewData.unionAuditId">
<el-form label-suffix=":" label-position="left" style="margin: 50px"> <el-form label-suffix=":" label-position="left" style="margin: 50px">
<el-row gutter="20"> <el-row gutter="20">
<el-col :span="24"> <el-col :span="24">
@@ -140,7 +140,7 @@
</el-form-item> </el-form-item>
<el-form-item prop="political" label="政治面貌"> <el-form-item prop="political" label="政治面貌">
<dict-select v-model="formData.political" style="width: 100%" placeholder="请选择政治面貌" <dict-select v-model="formData.political" style="width: 100%" placeholder="请选择政治面貌"
code="JobTitle"></dict-select> code="political"></dict-select>
<!-- <el-input maxlength="100" placeholder="政治面貌" <!-- <el-input maxlength="100" placeholder="政治面貌"
v-model="formData.political"></el-input>--> v-model="formData.political"></el-input>-->
</el-form-item> </el-form-item>
@@ -47,7 +47,7 @@
<template v-if="viewData.upa"> <template v-if="viewData.upa">
<div class="van-cell-group__title"> <div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select"> <div class="van-sidebar-item van-sidebar-item--select">
院级工会审核信息 分工会审核信息
</div> </div>
</div> </div>
<van-cell-group class="mt10"> <van-cell-group class="mt10">
@@ -31,7 +31,7 @@
<!-- <template v-if="viewData.upa"> <!-- <template v-if="viewData.upa">
<div class="van-cell-group__title"> <div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item&#45;&#45;select"> <div class="van-sidebar-item van-sidebar-item&#45;&#45;select">
院级工会审核信息 分工会审核信息
</div> </div>
</div> </div>
<van-cell-group class="mt10"> <van-cell-group class="mt10">
@@ -47,7 +47,7 @@
<template v-if="viewData.upa"> <template v-if="viewData.upa">
<div class="van-cell-group__title"> <div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select"> <div class="van-sidebar-item van-sidebar-item--select">
院级工会审核信息 分工会审核信息
</div> </div>
</div> </div>
<van-cell-group class="mt10"> <van-cell-group class="mt10">
@@ -104,7 +104,7 @@
<template v-if="unionAudit!=null"> <template v-if="unionAudit!=null">
<div class="van-cell-group__title mt20"> <div class="van-cell-group__title mt20">
<div class="van-sidebar-item van-sidebar-item--select"> <div class="van-sidebar-item van-sidebar-item--select">
院级工会审核信息 分工会审核信息
</div> </div>
</div> </div>
<van-cell-group> <van-cell-group>
@@ -1,6 +1,6 @@
<template> <template>
<div> <div style="width: 100%">
<van-image :src="'/signature/getSignData?path='+value" v-if="!signDrawingBoardShow" <van-image :src="imageUrl" v-if="!signDrawingBoardShow"
style="width: 100%;height: 150px;border: 1px dashed"></van-image> style="width: 100%;height: 150px;border: 1px dashed"></van-image>
<div style="text-align: right"> <div style="text-align: right">
<van-button plain type="danger" hairline size="small" @click="openSignDrawingBoard"> <van-button plain type="danger" hairline size="small" @click="openSignDrawingBoard">
@@ -26,12 +26,31 @@ module.exports = {
}, },
value: { value: {
type: String type: String
} },
is_value_base64: {
type: Boolean,
default: true
},
prefix: {
type: String,
default: ''
},
}, },
data() { data() {
return { return {
signDrawingBoardShow: false, signDrawingBoardShow: false,
signData: null signData: null,
imageUrl: "",
}
},
watch: {
value:{
handler:function (val){
if(val){
this.getImageUrl(val)
}
},
immediate:true
} }
}, },
methods: { methods: {
@@ -64,16 +83,31 @@ module.exports = {
}, },
async uploadSignData() { async uploadSignData() {
if (this.is_value_base64) {
this.$emit('input', this.signData)
this.$emit("update:my_sign", this.signData)
this.getImageUrl(this.signData)
} else {
const {data, code, msg} = await $.post('/signature/uploadSignData', {data: this.signData}) const {data, code, msg} = await $.post('/signature/uploadSignData', {data: this.signData})
if (code === 0) { if (code === 0) {
console.log(data) console.log(data)
this.getImageUrl(data)
this.$emit('input', data) this.$emit('input', data)
this.$emit("update:my_sign", data)
} else { } else {
this.$modal.msgError(msg) this.$modal.msgError(msg)
} }
}
},
getImageUrl(value) {
if (this.is_value_base64) {
this.imageUrl = value
} else {
this.imageUrl = '/signature/getSignData?path=' + value
}
}, },
checkNull() { checkNull() {
return $('#canvas').jSignature('getData', 'native').length === 0 return $('#canvas').jSignature('getData', 'native').length === 0
}, },
@@ -81,17 +115,15 @@ module.exports = {
this.$emit("update:my_sign", $('#canvas').jSignature('getData')) this.$emit("update:my_sign", $('#canvas').jSignature('getData'))
}, },
async updateSign() { async updateSign() {
const data = await $.post("/mobile/common/signing/update", {sign: $('#canvas').jSignature('getData')}) const data = await $.post("/mobile/common/signing/update", {
sign: $('#canvas').jSignature('getData'),
prefix: this.prefix
})
}, },
async getMySign() { async getMySign() {
const data = await $.get("/mobile/common/signing/getMySign") const data = await $.get("/mobile/common/signing/getMySign", {prefix: this.prefix})
if (data) { if (data) {
console.log(this.my_sign) this.getImageUrl(data)
$('#canvas').jSignature("importData", data)
this.$nextTick(() => {
})
} }
} }
}, },
@@ -10,12 +10,13 @@
</el-collapse-transition> </el-collapse-transition>
<el-image fit="contain" v-show="!showQrCode" v-loading="loading" <el-image fit="contain" v-show="!showQrCode" v-loading="loading"
style="height: 100px;width: 100%" :src="qz"> style="height: 100px;width: 100%" :src="imageUrl">
<div slot="error" class="image-slot"> <div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i> <i class="el-icon-picture-outline"></i>
</div> </div>
</el-image> </el-image>
<el-link type="danger" style="font-size: 12px;margin-top: 20px" @click="refresh();clear()" icon="el-icon-edit" <el-link type="danger" style="font-size: 12px;margin-top: 20px" @click="refresh();clear()"
icon="el-icon-edit"
v-show="!showQrCode">重签 v-show="!showQrCode">重签
</el-link> </el-link>
</div> </div>
@@ -42,6 +43,14 @@ module.exports = {
qz: { qz: {
type: String, type: String,
default: '' default: ''
},
value: {
type: String,
default: ''
},
is_value_base64: {
type: Boolean,
default: true
} }
}, },
model: { model: {
@@ -53,26 +62,37 @@ module.exports = {
showQrCode: false, showQrCode: false,
loading: true, loading: true,
postAddress: '', postAddress: '',
imageUrl: '',
} }
}, },
methods: { methods: {
refresh() { refresh() {
this.qz = '' this.qz = ''
}, },
getImageUrl(value) {
if (this.is_value_base64) {
this.imageUrl = value
} else {
this.imageUrl = '/signature/getSignData?path=' + value
}
},
startRequest() { startRequest() {
this.qz = '' this.imageUrl = ''
clearInterval(signatureInterval) clearInterval(signatureInterval)
const ts = new Date().getTime() const ts = new Date().getTime() + (Math.floor(Math.random() * (1000 - 1 + 1)) + 1).toString()
this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts console.log(ts)
this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64
// this.postAddress = 'http://zhgh.jiangnan.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64
this.showQrCode = true this.showQrCode = true
console.log(this.postAddress) console.log(this.postAddress)
window.signatureInterval = setInterval(() => { window.signatureInterval = setInterval(() => {
$.get(base + "/signature/getBase64?prefix=" + this.prefix + "&id=" + ts).then(res => { $.get("/signature/getBase64?prefix=" + this.prefix + "&id=" + ts).then(res => {
if (res != null) { if (res != null) {
this.$emit("change", res) this.$emit("change", res)
this.$emit("update:qz", res) this.$emit("update:qz", res)
this.getImageUrl(res)
this.qz = res this.qz = res
this.loading = false this.loading = false
this.save() this.save()
@@ -81,23 +101,57 @@ module.exports = {
}) })
}, 1000 * 3) }, 1000 * 3)
}, },
save() { async save() {
if (this.is_value_base64) {
localStorage.setItem("signature", this.qz) localStorage.setItem("signature", this.qz)
} else {
return localStorage.setItem("signatureWelfare", this.qz)
}
}, },
clear() { clear() {
if (this.is_value_base64) {
localStorage.removeItem("signature") localStorage.removeItem("signature")
} else {
localStorage.removeItem("signatureWelfare")
}
}, },
getSignature() { getSignature() {
if (this.is_value_base64) {
return localStorage.getItem("signature") return localStorage.getItem("signature")
} else {
return localStorage.getItem("signatureWelfare")
} }
}, },
async getMySign() {
setTimeout(() => {
if (this.qz) {
this.getImageUrl(this.qz)
} else {
$.get("/mobile/common/signing/getMySign", {prefix: this.prefix}).then(data => {
if (data) {
this.getImageUrl(data)
this.$emit("change", data)
this.$emit("update:qz", data)
this.qz = data
}
})
}
}, 500)
}
},
created() {
this.getMySign()
},
watch: { watch: {
'qz': { 'qz': {
handler(s) { handler(s) {
this.loading = !s this.loading = !s
if (!s) { if (!s) {
const qz = this.getSignature() const qz = this.getSignature()
if (!qz) { if (!qz) {
this.$emit("change", '') this.$emit("change", '')
this.$emit("update:qz", '') this.$emit("update:qz", '')
@@ -107,7 +161,6 @@ module.exports = {
this.$emit("change", qz) this.$emit("change", qz)
this.$emit("update:qz", qz) this.$emit("update:qz", qz)
} }
} else { } else {
this.qz = s this.qz = s
this.showQrCode = false this.showQrCode = false
@@ -51,7 +51,7 @@
</el-card> </el-card>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="院级工会审核" name="2" v-if="viewData.sq_sqzt>1"> <el-tab-pane label="分工会审核" name="2" v-if="viewData.sq_sqzt>1">
<el-card> <el-card>
<el-form label-position="right" label-width="100px"> <el-form label-position="right" label-width="100px">
<el-form-item label="审核人"> <el-form-item label="审核人">
@@ -45,7 +45,7 @@
</el-card> </el-card>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="院级工会审核" name="2" v-if="viewData.status>1"> <el-tab-pane label="分工会审核" name="2" v-if="viewData.status>1">
<el-card> <el-card>
<el-form label-position="right" label-width="100px"> <el-form label-position="right" label-width="100px">
<el-form-item label="审核人"> <el-form-item label="审核人">
@@ -215,10 +215,10 @@
</el-popover> </el-popover>
</li> </li>
<li style="cursor: pointer" @click="menuPopover=true"> <!--<li style="cursor: pointer" @click="menuPopover=true">
<i class="el-icon-sort"></i> <i class="el-icon-sort"></i>
切换应用 切换应用
</li> </li>-->
</ul> </ul>
<!-- <el-breadcrumb separator-class="el-icon-arrow-right" style="line-height: 50px">--> <!-- <el-breadcrumb separator-class="el-icon-arrow-right" style="line-height: 50px">-->
@@ -165,9 +165,9 @@ layout("/layouts/platform.html"){
<el-dropdown-item :command="{type:'view',row}"> <el-dropdown-item :command="{type:'view',row}">
查看 查看
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item :command="{type:'export',row}" v-if="row.applyType===1"> <!--<el-dropdown-item :command="{type:'export',row}" v-if="row.applyType===1">
导出名单docx 导出名单docx
</el-dropdown-item> </el-dropdown-item>-->
<el-dropdown-item :command="{type:'exportXlsx',row}"> <el-dropdown-item :command="{type:'exportXlsx',row}">
导出名单 导出名单
</el-dropdown-item> </el-dropdown-item>
@@ -202,7 +202,7 @@
<el-col :lg="12" :xl="12" :xs="12"> <!--<el-col :lg="12" :xl="12" :xs="12">
<el-form-item label="是否推送移动端" prop="isPushHome"> <el-form-item label="是否推送移动端" prop="isPushHome">
<el-radio-group size="medium" v-model="formData.isPushHome"> <el-radio-group size="medium" v-model="formData.isPushHome">
<el-radio-button :label="0">不推送</el-radio-button> <el-radio-button :label="0">不推送</el-radio-button>
@@ -210,7 +210,7 @@
<el-radio-button :label="2">推送大图</el-radio-button> <el-radio-button :label="2">推送大图</el-radio-button>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>-->
<el-col :lg="12" :xl="12" :xs="12" <el-col :lg="12" :xl="12" :xs="12"
@@ -2,14 +2,14 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="IE=edge" http-equiv="X-UA-Compatible">
<!-- 在 head 标签中添加 meta 标签,并设置 viewport-fit=cover 值 --> <!-- 在 head 标签中添加 meta 标签,并设置 viewport-fit=cover 值 -->
<meta name="viewport" <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"> name="viewport">
<title>签字</title> <title>签字</title>
<!-- 引入样式文件 --> <!-- 引入样式文件 -->
<link rel="stylesheet" href="https://cdn.staticfile.org/vant/2.12.5/index.min.css"> <link href="https://cdn.staticfile.org/vant/2.12.5/index.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/2.2.0/weui.min.css"> <link href="https://res.wx.qq.com/open/libs/weui/2.2.0/weui.min.css" rel="stylesheet">
<!-- 引入 Vue 和 Vant 的 JS 文件 --> <!-- 引入 Vue 和 Vant 的 JS 文件 -->
<script src="https://cdn.staticfile.org/vue/2.6.9/vue.min.js"></script> <script src="https://cdn.staticfile.org/vue/2.6.9/vue.min.js"></script>
@@ -24,7 +24,7 @@
} }
</style> </style>
<body style="height: 100%;width: 100%"> <body style="height: 100%;width: 100%">
<div v-clock id="app" style="height: 100%;width: 100%"> <div id="app" style="height: 100%;width: 100%" v-clock>
<van-row style="margin-top: 10vh;text-align: center"> <van-row style="margin-top: 10vh;text-align: center">
<h3 style="color: #1989fa">提示:请在下方区域签字!</h3> <h3 style="color: #1989fa">提示:请在下方区域签字!</h3>
</van-row> </van-row>
@@ -33,12 +33,13 @@
</van-row> </van-row>
<van-row style="margin-top: 20px"> <van-row style="margin-top: 20px">
<van-col span="24" style="text-align: center"> <van-col span="24" style="text-align: center">
<van-row type="flex" justify="space-around"> <van-row justify="space-around" type="flex">
<van-col span="11"> <van-col span="11">
<van-button @click="reset" type="default" size="large">清 空</van-button> <van-button @click="reset" size="large" type="default">清 空</van-button>
</van-col> </van-col>
<van-col span="11"> <van-col span="11">
<van-button type="info" @click="doSub" size="large" :disabled="subDis">提 交</van-button> <van-button :disabled="subDis" @click="doSub" size="large" type="info">提 交
</van-button>
</van-col> </van-col>
</van-row> </van-row>
</van-col> </van-col>
@@ -76,6 +77,7 @@
el: "#app", el: "#app",
data: function () { data: function () {
return { return {
is_value_base64: true,
prefix: '', prefix: '',
id: '', id: '',
base64: '', base64: '',
@@ -100,6 +102,7 @@
reset() { reset() {
qm.reset() qm.reset()
}, },
doSub() { doSub() {
qm.getContentBase64(false, (val) => { qm.getContentBase64(false, (val) => {
this.base64 = val this.base64 = val
@@ -108,7 +111,8 @@
$.post("/signature/doSub", { $.post("/signature/doSub", {
prefix: this.prefix, prefix: this.prefix,
id: this.id, id: this.id,
base64: this.base64 base64: this.base64,
is_value_base64: this.is_value_base64
}, (data) => { }, (data) => {
if (data.code == 0) { if (data.code == 0) {
this.$notify({ this.$notify({
@@ -148,6 +152,7 @@
} }
this.id = getQueryVariable("id") this.id = getQueryVariable("id")
this.prefix = getQueryVariable("prefix") this.prefix = getQueryVariable("prefix")
this.is_value_base64 = getQueryVariable("is_value_base64")
} }
}) })
</script> </script>
@@ -173,7 +173,7 @@
${AppName!}系统登录 ${AppName!}系统登录
</h4> </h4>
<el-tabs class="login-tabs" v-model="activeName"> <el-tabs class="login-tabs" v-model="activeName">
<el-tab-pane label="用户名登录" name="1"> <!--<el-tab-pane label="用户名登录" name="1">
<el-form v-if="activeName == '1'" :model="loginForm" :rules="loginRules" auto-complete="on" class="login-form" <el-form v-if="activeName == '1'" :model="loginForm" :rules="loginRules" auto-complete="on" class="login-form"
ref="loginForm"> ref="loginForm">
<el-form-item prop="username"> <el-form-item prop="username">
@@ -222,7 +222,7 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>-->
<el-tab-pane label="短信快捷登陆" name="2"> <el-tab-pane label="短信快捷登陆" name="2">
<el-form v-if="activeName == '2'" :model="loginForm" :rules="loginRules" auto-complete="on" class="login-form" <el-form v-if="activeName == '2'" :model="loginForm" :rules="loginRules" auto-complete="on" class="login-form"
ref="loginForm"> ref="loginForm">
@@ -288,7 +288,7 @@
timer: null, timer: null,
// 是否显示滑块验证 // 是否显示滑块验证
isShowSliderVerify: false, isShowSliderVerify: false,
activeName: '1', activeName: '2',
loginForm: { loginForm: {
username: '', username: '',
password: '', password: '',