commit
This commit is contained in:
@@ -129,6 +129,10 @@
|
||||
Vue.component('dict-tag', httpVueLoader('/components/plugins/sysDict/DictTag.vue'))
|
||||
Vue.component('border-table', httpVueLoader('/components/plugins/BorderTable.vue'))
|
||||
Vue.component('text-editor', httpVueLoader('/components/plugins/TextEditor.vue'))
|
||||
Vue.component('el-tab-plus', httpVueLoader('/components/plugins/ELTabPlus.vue'))
|
||||
Vue.component('dict-select', httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.1'))
|
||||
Vue.component('enum-select', httpVueLoader('/components/plugins/EnumSelect.vue?v=1.0.0'))
|
||||
Vue.component('custom-message', httpVueLoader('/components/plugins/CustomMessage.vue'))
|
||||
|
||||
Vue.use(httpVueLoader)
|
||||
Vue.component(VueQrcode.name, VueQrcode)
|
||||
|
||||
@@ -19,6 +19,7 @@ layout("/mobile/platform.html"){
|
||||
@click="sexPicker = true"
|
||||
placeholder="请选择性别"
|
||||
clickable
|
||||
:rules="[{ required:true, message: '请选择性别' }]"
|
||||
left-icon="ellipsis"></van-field>
|
||||
<van-popup v-model="sexPicker" position="bottom">
|
||||
<van-picker
|
||||
@@ -55,89 +56,66 @@ layout("/mobile/platform.html"){
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field label="学位" v-model="formData.academicDegree" readonly clickable
|
||||
left-icon="comment-o"
|
||||
@click="academicDegreePicker = true" placeholder="请选择学位"
|
||||
:rules="[{ required:true, message: '请选择学位' }]"></van-field>
|
||||
<van-popup v-model="academicDegreePicker" position="bottom">
|
||||
<van-field label="政治面貌" v-model="formData.political" readonly clickable
|
||||
left-icon="label-o"
|
||||
@click="politicalPicker = true" placeholder="请选择政治面貌"
|
||||
:rules="[{ required:true, message: '请选择政治面貌' }]"></van-field>
|
||||
<van-popup v-model="politicalPicker" position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="academicDegreeColumns"
|
||||
@confirm="(v)=>{formData.academicDegree = v;academicDegreePicker = false}"
|
||||
@cancel="academicDegreePicker = false"
|
||||
:columns="politicalColumns"
|
||||
@confirm="(v)=>{formData.political = v;politicalPicker = false}"
|
||||
@cancel="politicalPicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field label="婚否" v-model="formData.marriage" readonly clickable
|
||||
left-icon="flower-o"
|
||||
@click="marriagePicker = true" placeholder="请选择婚否"
|
||||
:rules="[{ required:true, message: '请选择婚否' }]"></van-field>
|
||||
<van-popup v-model="marriagePicker" position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="marriageColumns"
|
||||
@confirm="(v)=>{formData.marriage = v;marriagePicker = false}"
|
||||
@cancel="marriagePicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field label="政治面貌" v-model="formData.political" placeholder="请填写政治面貌"
|
||||
left-icon="label-o"
|
||||
:rules="[{ required:true, message: '请填写政治面貌' }]"></van-field>
|
||||
<van-field label="身份证" v-model="formData.idcard" placeholder="请填写身份证号码"
|
||||
left-icon="idcard"
|
||||
:rules="[{ required:true, message: '请填写身份证号码' }]"></van-field>
|
||||
:rules="[{ required:true, message: '请填写身份证号码' },{pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '身份证号码格式错误'}]"></van-field>
|
||||
|
||||
<van-field label="联系电话" v-model="formData.mobile" type="tel" placeholder="请填写联系电话"
|
||||
left-icon="phone-o"
|
||||
:rules="[{ required:true, message: '请填写联系电话' }]"></van-field>
|
||||
</van-cell-group>
|
||||
:rules="[{ required:true, message: '请填写联系电话' },{pattern: /^1[3456789]\d{9}$/, message: '联系电话格式错误'}]"></van-field>
|
||||
|
||||
<van-field label="所属单位" v-model="formData.unitname" readonly clickable
|
||||
left-icon="flower-o"
|
||||
@click="unitPicker = true" placeholder="请选择所属单位"
|
||||
:rules="[{ required:true, message: '请选择所属单位' }]"></van-field>
|
||||
<van-popup v-model="unitPicker" position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
value-key="name"
|
||||
:columns="unitColumns"
|
||||
@confirm="(v)=>{formData.unitname = v.name;formData.unitid = v.id;unitPicker = false}"
|
||||
@cancel="unitPicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-cell-group inset class="mt10">
|
||||
<van-field label="户口所在地" v-model="formData.registeredResidence" placeholder="请填写户口所在地"
|
||||
left-icon="wap-home-o"
|
||||
:rules="[{ required:true, message: '请填写户口所在地' }]"></van-field>
|
||||
<van-field label="现居住地" v-model="formData.homeAddress" placeholder="请填写现居住地"
|
||||
left-icon="home-o"
|
||||
:rules="[{ required:true, message: '请填写现居住地' }]"></van-field>
|
||||
<van-field label="工作单位" value="${@shiro.getPrincipalProperty('unit').getName()}"
|
||||
left-icon="cluster-o"
|
||||
readonly></van-field>
|
||||
<van-field label="职务" v-model="formData.position" placeholder="请填写职务"
|
||||
<!-- <van-field label="工作单位" value="${@shiro.getPrincipalProperty('unit').getName()}"-->
|
||||
<!-- left-icon="cluster-o"-->
|
||||
<!-- readonly></van-field>-->
|
||||
<van-field label="岗位" placeholder="请填写岗位" v-model="formData.jobTitle"
|
||||
left-icon="debit-pay"
|
||||
:rules="[{ required:true, message: '请填写职务' }]"></van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group inset class="mt10 up_down">
|
||||
<div class="van-cell">
|
||||
<div class="van-cell__title van-field__label" style="display: flex;justify-content: space-between">
|
||||
<div style="display: flex;">
|
||||
<div class="van-field__left-icon">
|
||||
<i class="van-icon van-icon-friends-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label" style="width: auto">
|
||||
<span>家庭主要成员及联系方式</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-button v-if="family && family.length>0 && family.length<3" style="width: 40px"
|
||||
icon="plus" type="primary" round size="mini"
|
||||
@click="family.push({})"
|
||||
native-type="button"></van-button>
|
||||
</div>
|
||||
<van-divider></van-divider>
|
||||
<template v-if="family && family.length>0">
|
||||
<div v-for="o,i in family" class="mt5">
|
||||
<div style="font-weight: 700;display: flex;justify-content: space-between">
|
||||
<span>成员{{toChinesNum(i+1)}}</span>
|
||||
<van-button style="width: 40px"
|
||||
icon="minus" type="danger" round size="mini"
|
||||
@click="family.splice(i,1)"
|
||||
native-type="button"></van-button>
|
||||
</div>
|
||||
<van-field label="关系" v-model="o.relation" placeholder="请填写与本人关系"
|
||||
:rules="[{ required:true, message: '请填写与本人关系' }]"></van-field>
|
||||
<van-field label="姓名" v-model="o.name" placeholder="请填写姓名"
|
||||
:rules="[{ required:true, message: '请填写姓名' }]"></van-field>
|
||||
<van-field label="联系方式" v-model="o.mobile" type="tel" placeholder="请填写联系方式"
|
||||
:rules="[{ required:true, message: '请填写联系方式' }]"></van-field>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div style="padding: 50px;text-align: center">
|
||||
<van-button style="width: 50px"
|
||||
icon="plus" type="primary" round size="mini"
|
||||
@click="family.push({})"
|
||||
native-type="button"></van-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
:rules="[{ required:true, message: '请填写岗位' }]"></van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group inset class="mt10 up_down">
|
||||
@@ -147,14 +125,14 @@ layout("/mobile/platform.html"){
|
||||
<i class="van-icon van-icon-notes-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label">
|
||||
<span>个人工作简历</span>
|
||||
<span>工作经历</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
<van-field
|
||||
v-model="formData.vita"
|
||||
:rules="[{ required:true, message: '请填写个人工作简历' }]"
|
||||
:rules="[{ required:true, message: '请填写工作经历' }]"
|
||||
style="padding: 0"
|
||||
input-align="left"
|
||||
autosize
|
||||
@@ -162,7 +140,7 @@ layout("/mobile/platform.html"){
|
||||
autosize
|
||||
type="textarea"
|
||||
maxlength="200"
|
||||
placeholder="请输入个人工作简历"
|
||||
placeholder="请输入工作经历"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</div>
|
||||
@@ -176,7 +154,7 @@ layout("/mobile/platform.html"){
|
||||
<i class="van-icon van-icon-award-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label">
|
||||
<span>特长</span>
|
||||
<span>有何特长</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -197,9 +175,84 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group class="mt10" inset>
|
||||
<van-field label="签字" required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">签  字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign :my_sign.sync="formData.sign" ref="signature"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group inset class="mt10 up_down">
|
||||
<div class="van-cell">
|
||||
<div class="van-cell__title van-field__label" style="display: flex;justify-content: space-between">
|
||||
<div style="display: flex;">
|
||||
<div class="van-field__left-icon">
|
||||
<i class="van-icon van-icon-friends-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label" style="width: auto">
|
||||
<span>家庭成员</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-button v-if="formData.family && formData.family.length>0 && formData.family.length<3"
|
||||
style="width: 40px"
|
||||
icon="plus" type="primary" round size="mini"
|
||||
@click="formData.family.push({})"
|
||||
native-type="button"></van-button>
|
||||
</div>
|
||||
<van-divider></van-divider>
|
||||
<template v-if="formData.family && formData.family.length>0">
|
||||
<div v-for="o,i in formData.family" class="mt5">
|
||||
<div style="font-weight: 700;display: flex;justify-content: space-between">
|
||||
<span>成员{{toChinesNum(i+1)}}</span>
|
||||
<van-button style="width: 40px"
|
||||
icon="minus" type="danger" round size="mini"
|
||||
@click="formData.family.splice(i,1)"
|
||||
native-type="button"></van-button>
|
||||
</div>
|
||||
<van-field label="与本人关系" v-model="o.relation" placeholder="请填写与本人关系"
|
||||
:rules="[{ required:true, message: '请填写与本人关系' }]"></van-field>
|
||||
<van-field label="姓名" v-model="o.name" placeholder="请填写姓名"
|
||||
:rules="[{ required:true, message: '请填写姓名' }]"></van-field>
|
||||
|
||||
<van-field name="isCondolence" label="是否慰问">
|
||||
<template #input>
|
||||
<van-radio-group v-model="o.isCondolence" direction="horizontal">
|
||||
<van-radio name="是">是</van-radio>
|
||||
<van-radio name="否">否</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-field label="慰问时间" v-model="o.condolenceTime"
|
||||
placeholder="请选择慰问时间" @click="doShowCondolenceCalendar(i)"></van-field>
|
||||
<van-calendar v-model="condolenceShow" :min-date="new Date('1999-01-01')" :show-confirm="false"
|
||||
@confirm="condolenceConfirm"></van-calendar>
|
||||
<van-field label="备注" v-model="o.remark" type="tel" placeholder="请填写备注"></van-field>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div style="padding: 50px;text-align: center">
|
||||
<van-button style="width: 50px"
|
||||
icon="plus" type="primary" round size="mini"
|
||||
@click="formData.family.push({})"
|
||||
native-type="button"></van-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</van-cell-group>
|
||||
|
||||
<div style="margin: 20px 20px 10px;">
|
||||
<van-button native-type="submit" style="border-radius: 10px" block type="info" :color="themeColor">
|
||||
提 交
|
||||
<van-button
|
||||
:disabled="!(unionInfo.apply||unionInfo.reApply)"
|
||||
native-type="submit" style="border-radius: 10px" block type="info" :color="themeColor">
|
||||
<span v-if="unionInfo.apply||unionInfo.reApply">{{unionInfo.reApply?'重新申请':'申请加入'}}</span>
|
||||
<span v-else-if="unionInfo.record">{{unionInfo.record.stateName}}</span>
|
||||
<span v-else>您已是会员</span>
|
||||
</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
@@ -212,16 +265,14 @@ layout("/mobile/platform.html"){
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
unionInfo: {},
|
||||
sexPicker: false,
|
||||
applyRecords: [],
|
||||
formData: {},
|
||||
nationPicker: false,
|
||||
educationPicker: false,
|
||||
academicDegreePicker: false,
|
||||
family: [],
|
||||
educationColumns: [
|
||||
'博士研究生', '硕士研究生', '本科', '专科', '中专中技', '高中', '初中以下'
|
||||
],
|
||||
educationColumns: [],
|
||||
academicDegreeColumns: [
|
||||
'学士', '硕士', '博士'
|
||||
],
|
||||
@@ -231,30 +282,83 @@ layout("/mobile/platform.html"){
|
||||
APPLYING: 2,
|
||||
NOTMEBMER: 3,
|
||||
},
|
||||
memberStatus: null
|
||||
memberStatus: null,
|
||||
politicalPicker: false,
|
||||
politicalColumns: [],
|
||||
marriagePicker: false,
|
||||
marriageColumns: [],
|
||||
unitPicker: false,
|
||||
unitColumns: [],
|
||||
condolenceShow: false,
|
||||
familyIndex: null,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
doShowCondolenceCalendar(index){
|
||||
console.log(index)
|
||||
this.condolenceShow = true
|
||||
this.familyIndex = index
|
||||
},
|
||||
condolenceConfirm(val){
|
||||
if (val) {
|
||||
this.formData.family[this.familyIndex].condolenceTime = moment(val).format('YYYY-MM-DD')
|
||||
this.condolenceShow = false
|
||||
this.familyIndex = null
|
||||
}
|
||||
console.log(val)
|
||||
},
|
||||
async doSubmit() {
|
||||
this.$refs.signature.submitSign()
|
||||
if (this.$refs.signature.checkNull()) {
|
||||
vant.Toast('请签字')
|
||||
return
|
||||
}
|
||||
await this.$refs.signature.updateSign()
|
||||
const formData = clone(this.formData)
|
||||
formData.family = JSON.stringify(this.family)
|
||||
formData.family = JSON.stringify(this.formData.family)
|
||||
const loading = this.$toast.loading({
|
||||
message: '数据提交中...',
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
duration: 0
|
||||
})
|
||||
const resp = await $.post("/platform/member/apply/submit/doEdit", formData)
|
||||
const data = await $.get("/platform/member/apply/submit/doApply", {memberStates: 1})
|
||||
const data = await $.post("/platform/member/apply/submit/doApply", {
|
||||
memberStates: 1,
|
||||
sign: formData.sign,
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.$toast.success('提交成功');
|
||||
loading.close()
|
||||
setTimeout(() => {
|
||||
location.replace('/mobile/index')
|
||||
}, 300)
|
||||
}, 500)
|
||||
},
|
||||
addFamily() {
|
||||
this.family.push({})
|
||||
}
|
||||
async getUnionInfo() {
|
||||
const resp = await $.get("/platform/member/apply/submit/unionInfo")
|
||||
if (resp.code === 0) {
|
||||
this.unionInfo = resp.data
|
||||
this.formData = resp.data
|
||||
this.$set(this.formData, "family", resp.data.family ? JSON.parse(resp.data.family) : [])
|
||||
this.formData = resp.data
|
||||
} else {
|
||||
this.$toast(resp.msg)
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.$set(this.formData, "isMember", "${@shiro.getPrincipalProperty('member')}")
|
||||
this.$set(this.formData, "sex", "${@shiro.getPrincipalProperty('sex')}")
|
||||
if ("${@shiro.getPrincipalProperty('sex')}" === '未知') {
|
||||
this.$set(this.formData, "sex", '')
|
||||
} else {
|
||||
this.$set(this.formData, "sex", "${@shiro.getPrincipalProperty('sex')}")
|
||||
}
|
||||
this.$set(this.formData, "position", "${@shiro.getPrincipalProperty('position')}")
|
||||
this.$set(this.formData, "marriage", "${@shiro.getPrincipalProperty('marriage')}")
|
||||
this.$set(this.formData, "nation", "${@shiro.getPrincipalProperty('nation')}")
|
||||
this.$set(this.formData, "mobile", "${@shiro.getPrincipalProperty('mobile')}")
|
||||
this.$set(this.formData, "political", "${@shiro.getPrincipalProperty('political')}")
|
||||
@@ -266,25 +370,21 @@ layout("/mobile/platform.html"){
|
||||
this.$set(this.formData, "homeAddress", "${@shiro.getPrincipalProperty('homeAddress')}")
|
||||
this.$set(this.formData, "vita", "${@shiro.getPrincipalProperty('vita')}")
|
||||
this.$set(this.formData, "specialSkill", "${@shiro.getPrincipalProperty('specialSkill')}")
|
||||
// const {data} = await $.get("/mobile/member/getAllNation");
|
||||
/* this.nationColumns = data.map(v => {
|
||||
return v.mzmc
|
||||
}) */
|
||||
this.$set(this.formData, "jobTitle", "${@shiro.getPrincipalProperty('jobTitle')}")
|
||||
this.$set(this.formData, "unitname", "${@shiro.getPrincipalProperty('unit').getName()}")
|
||||
this.$set(this.formData, "unitid", "${@shiro.getPrincipalProperty('unit').getId()}")
|
||||
this.nationColumns = nation
|
||||
|
||||
const resp = await $.get("/platform/member/apply/submit/unionInfo")
|
||||
this.applyRecords = resp.data.records
|
||||
if (resp.data.member === 1) {
|
||||
this.memberStatus = this.memberStatusColumn.MEMBER
|
||||
} else {
|
||||
if (resp.data.record != null) {
|
||||
this.memberStatus = this.memberStatusColumn.APPLYING
|
||||
} else {
|
||||
this.memberStatus = this.memberStatusColumn.NOTMEBMER
|
||||
}
|
||||
}
|
||||
const education = await getDictByCode('Education')
|
||||
this.educationColumns = education.map(o => o.code)
|
||||
const political = await getDictByCode('political')
|
||||
this.politicalColumns = political.map(o => o.code)
|
||||
const marriage = await getDictByCode('maritalStatus')
|
||||
this.marriageColumns = marriage.map(o => o.code)
|
||||
|
||||
this.unitColumns = await getUnionUnits()
|
||||
|
||||
await this.getUnionInfo()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -298,10 +398,6 @@ layout("/mobile/platform.html"){
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.van-cell, .van-picker button, .submit .van-button--normal {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 10px 0;
|
||||
}
|
||||
@@ -309,4 +405,4 @@ layout("/mobile/platform.html"){
|
||||
</style>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -98,28 +98,94 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
</div>
|
||||
<van-cell-group>
|
||||
<van-cell title="姓名">{{ viewData.username }}</van-cell>
|
||||
<van-cell title="性别">{{ viewData.sex }}</van-cell>
|
||||
<van-cell title="年龄">{{ viewData.birthday }}</van-cell>
|
||||
<van-cell title="民族">{{ viewData.mz }}</van-cell>
|
||||
<van-cell title="文化程度">{{ viewData.xl }}</van-cell>
|
||||
<van-cell title="政治面貌">{{ viewData.zzmm }}</van-cell>
|
||||
<van-cell title="部门">{{ viewData.unitname }}</van-cell>
|
||||
<van-cell title="职称">{{ viewData.zc }}</van-cell>
|
||||
<van-cell title="职务">{{ viewData.zw }}</van-cell>
|
||||
<van-field :value="viewData.loginname" label="工号" left-icon="contact"></van-field>
|
||||
<van-field label="姓名" :value="viewData.username" left-icon="contact"></van-field>
|
||||
<van-field label="性别" :value="viewData.sex" left-icon="ellipsis"></van-field>
|
||||
<van-field label="民族" left-icon="bar-chart-o" :value="viewData.nation"></van-field>
|
||||
<van-field label="学历" left-icon="coupon-o" :value="viewData.education"></van-field>
|
||||
<!-- <van-field label="学位" left-icon="comment-o" :value="viewData.academicDegree"></van-field>-->
|
||||
<van-field label="政治面貌" left-icon="label-o" :value="viewData.political"></van-field>
|
||||
<van-field label="婚否" left-icon="label-o" :value="viewData.marriage"></van-field>
|
||||
<!-- <van-field :value="viewData.personType" label="人员类型" left-icon="label-o"></van-field>-->
|
||||
<van-field label="身份证号码" left-icon="idcard" :value="viewData.idcard"></van-field>
|
||||
<van-field label="联系电话" left-icon="phone-o" :value="viewData.mobile"></van-field>
|
||||
<van-field label="户口所在地" left-icon="wap-home-o" :value="viewData.registeredResidence"></van-field>
|
||||
<van-field label="现居住地" left-icon="home-o" :value="viewData.homeAddress"></van-field>
|
||||
<van-field label="工作部门(学院)及岗位" left-icon="cluster-o" :value="viewData.unitname + '、' + viewData.jobTitle"></van-field>
|
||||
</van-cell-group>
|
||||
<div class="van-cell-group__title">
|
||||
<div class="van-sidebar-item van-sidebar-item--select">
|
||||
个人简历
|
||||
<van-cell-group class="mt10 up_down">
|
||||
<div class="van-cell" style="flex-flow: column">
|
||||
<div style="display: flex">
|
||||
<div class="van-field__left-icon">
|
||||
<i class="van-icon van-icon-notes-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label">
|
||||
<span>简历</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-divider></van-divider>
|
||||
|
||||
<van-field readonly>
|
||||
<template #input>
|
||||
<div v-html="viewData.vita"></div>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
</div>
|
||||
</van-cell-group>
|
||||
<van-cell-group class="mt10 up_down">
|
||||
<div class="van-cell" style="flex-flow: column">
|
||||
<div style="display: flex">
|
||||
<div class="van-field__left-icon">
|
||||
<i class="van-icon van-icon-award-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label">
|
||||
<span>有何特长</span>
|
||||
</div>
|
||||
</div>
|
||||
<van-divider></van-divider>
|
||||
|
||||
<van-field readonly>
|
||||
<template #input>
|
||||
<div v-html="viewData.specialSkill"></div>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
</div>
|
||||
</van-cell-group>
|
||||
<van-cell-group class="mt10 up_down">
|
||||
<div class="van-cell" style="flex-flow: column">
|
||||
<div class="van-cell__title van-field__label" style="display: flex;justify-content: space-between">
|
||||
<div style="display: flex;">
|
||||
<div class="van-field__left-icon">
|
||||
<i class="van-icon van-icon-friends-o"></i>
|
||||
</div>
|
||||
<div class="van-cell__title van-field__label" style="width: auto">
|
||||
<span>家庭成员</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<van-divider></van-divider>
|
||||
|
||||
<div v-if="family && family.length>0">
|
||||
<div v-for="(o,i) in family" class="mt5">
|
||||
<div style="font-weight: 700;display: flex;justify-content: space-between">
|
||||
<span>成员{{ toChinesNum(i + 1) }}</span>
|
||||
</div>
|
||||
<van-form readonly input-align="right">
|
||||
<van-field label="与本人关系" :value="o.relation" left-icon="exchange"></van-field>
|
||||
<van-field label="姓名" :value="o.name" left-icon="user-o"></van-field>
|
||||
<van-field label="是否慰问" :value="o.isCondolence" left-icon="shield-o"></van-field>
|
||||
<van-field label="慰问时间" :value="o.condolenceTime" left-icon="guide-o"></van-field>
|
||||
<van-field label="备注" :value="o.remark" left-icon="coupon-o"></van-field>
|
||||
</van-form>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else style="height: 100px">
|
||||
暂无家庭成员信息
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<van-cell-group>
|
||||
<van-cell>
|
||||
<template>
|
||||
<div v-html="viewData.grjl" v-if="viewData.grjl!=null"></div>
|
||||
<div v-else>暂无</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-popup>
|
||||
|
||||
@@ -142,6 +208,7 @@ layout("/mobile/platform.html"){
|
||||
unionList: [],
|
||||
unitList: [],
|
||||
viewData: {},
|
||||
family: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -170,9 +237,10 @@ layout("/mobile/platform.html"){
|
||||
}, 300)
|
||||
},
|
||||
async viewInfo(id) {
|
||||
const resp = await $.post('/mobile/member/viewInfo', {id: id})
|
||||
const resp = await $.post('/platform/member/common/userInfo', {userId: id})
|
||||
if (resp.code === 0) {
|
||||
this.viewData = resp.data
|
||||
this.family = JSON.parse(resp.data.family)
|
||||
this.infoShow = true
|
||||
}
|
||||
},
|
||||
@@ -225,4 +293,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -34,6 +34,14 @@ layout("/mobile/platform.html"){
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">签  字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" :my_sign.sync="formData.auditSign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="12">
|
||||
@@ -69,6 +77,7 @@ layout("/mobile/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'member-menber-info': httpVueLoader('/components/mobile/member/MobileMemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
async doAudit(pass) {
|
||||
@@ -109,4 +118,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -35,6 +35,14 @@ layout("/mobile/platform.html"){
|
||||
placeholder="请输入审核意见"
|
||||
></van-field>
|
||||
|
||||
<van-field label="签字" style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">签  字</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<mobile-sign ref="signature" :my_sign.sync="formData.auditSign"></mobile-sign>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
|
||||
<van-col span="12">
|
||||
@@ -69,6 +77,7 @@ layout("/mobile/platform.html"){
|
||||
},
|
||||
components: {
|
||||
'member-menber-info': httpVueLoader('/components/mobile/member/MobileMemberInfo.vue?v=' + new Date().getTime()),
|
||||
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -111,4 +120,4 @@ layout("/mobile/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -0,0 +1,690 @@
|
||||
<!--#
|
||||
layout("/mobile/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.van-card {
|
||||
background: #ffffff;
|
||||
margin: 10px auto 0;
|
||||
width: 96%;
|
||||
border-radius: 10px;
|
||||
padding: 14px 12px;
|
||||
}
|
||||
|
||||
.van-card__thumb {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.van-card__content > div {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.train-title {
|
||||
flex: 0.6;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.van-doc-card {
|
||||
margin: 14px;
|
||||
padding: 12px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 8px 12px #ebedf0;
|
||||
line-height: 20px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.van-divider {
|
||||
margin: 6px 0 5px 0px;
|
||||
border-color: #081776;
|
||||
}
|
||||
|
||||
.van-tabs {
|
||||
z-index: 0 !important;
|
||||
}
|
||||
|
||||
.van-empty {
|
||||
height: 70%;
|
||||
top: 54%;
|
||||
background-color: #F6F7F9;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<van-nav-bar
|
||||
@click-left="history.back()"
|
||||
fixed
|
||||
left-arrow
|
||||
placeholder
|
||||
title="资产列表"
|
||||
></van-nav-bar>
|
||||
|
||||
<div class="search-fixed">
|
||||
<van-dropdown-menu :active-color="themeColor">
|
||||
<van-dropdown-item :options="yearOption" @change="getPdPlan"
|
||||
v-model="pageForm.year"></van-dropdown-item>
|
||||
<van-dropdown-item :options="pdPlanList" v-model="pageForm.zcpdid"></van-dropdown-item>
|
||||
<van-dropdown-item :options="zcLxList" @change="doSearch"
|
||||
v-model="pageForm.zcghlx"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
<van-tabs @click="doSearch" style="margin-top: 53px" v-model="pageForm.isPd">
|
||||
<van-tab title="全部"></van-tab>
|
||||
<van-tab title="已盘点"></van-tab>
|
||||
<van-tab title="未盘点"></van-tab>
|
||||
</van-tabs>
|
||||
|
||||
<div style="margin: 0px auto 0 auto">
|
||||
<van-list
|
||||
:finished="finished"
|
||||
:finished-text="tableData.length>0?'没有更多了':''"
|
||||
:loading="mLoading"
|
||||
@load="onLoad" v-if="tableData.length>0"
|
||||
v-model="mLoading">
|
||||
<div class="van-doc-card" v-for="o in tableData">
|
||||
<div @click="welfareClick(o)" style="position: relative">
|
||||
|
||||
<div>
|
||||
<div class="van-ellipsis"
|
||||
style="margin-top: 6px; font-size: 15px;font-weight: bold;flex: 1">
|
||||
{{o.zcmc}}({{o.zcbh}})
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="train-title"><span
|
||||
style="color: grey">资产规格:</span>{{o.zcxh?o.zcxh:'暂无'}}
|
||||
</div>
|
||||
<div class="train-title"><span style="color: grey">资产类型:</span>{{o.zcghlx==='1'?'院级工会':'校工会'}}
|
||||
</div>
|
||||
<div class="train-title"><span style="color: grey">购置日期:</span>{{o.zcgzrq}}
|
||||
</div>
|
||||
<div class="train-title"><span style="color: grey">存放地名称:</span>{{o.zccfdmc}}
|
||||
</div>
|
||||
<van-divider></van-divider>
|
||||
</div>
|
||||
<div class="train-title"><span style="color: grey">领用人:</span>
|
||||
{{o.zclyrname?o.zclyrname:'暂无'}}
|
||||
</div>
|
||||
<div class="train-title"><span style="color: grey">领用工会:</span>
|
||||
{{o.zclydwh}}
|
||||
</div>
|
||||
<van-button :color="themeColor" @click.stop="openView(o)" plain round
|
||||
size="mini"
|
||||
style="position: absolute; left: 55%; bottom: 0%; width: 74px; height: 28px"
|
||||
type="primary">
|
||||
查看
|
||||
</van-button>
|
||||
|
||||
<van-button :color="themeColor"
|
||||
:disabled="pdPlanList.length==0||!pageForm.zcpdid||!pdPlanList.find(p=>p.id===pageForm.zcpdid).isShow"
|
||||
@click.stop="openPd(o)"
|
||||
round size="mini"
|
||||
style="position: absolute; left: 77%; bottom: 0%; width: 74px; height: 28px"
|
||||
type="primary"
|
||||
v-if="!o.isPd">
|
||||
开始盘点
|
||||
</van-button>
|
||||
|
||||
<van-button
|
||||
:disabled="pdPlanList.length==0||!pageForm.zcpdid||!pdPlanList.find(p=>p.id===pageForm.zcpdid).isShow"
|
||||
@click.stop="doDelete(o)"
|
||||
round size="mini"
|
||||
style="position: absolute; left: 77%; bottom: 0%; width: 74px; height: 28px"
|
||||
type="danger"
|
||||
v-if="o.isPd">
|
||||
删除盘点
|
||||
</van-button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
<div :style="{color:themeColor}"
|
||||
style="text-align: right;position: fixed;bottom: 20px;right: 20px">
|
||||
<van-button :color="themeColor" hairline size="mini" type="primary">
|
||||
总:{{pageForm.totalCount}}条
|
||||
</van-button>
|
||||
<van-button :color="themeColor" @click="doHzExcel" hairline size="mini" type="primary">
|
||||
导出盘点汇总表
|
||||
</van-button>
|
||||
|
||||
</div>
|
||||
<van-empty
|
||||
class="custom-image"
|
||||
description="暂无数据"
|
||||
image="/none.svg"
|
||||
v-if="mLoading==false&&tableData.length==0"
|
||||
></van-empty>
|
||||
</div>
|
||||
|
||||
|
||||
<van-popup :style="{ height: '100%',width:'100%' }" position="right" v-model="addPdShow">
|
||||
|
||||
<van-nav-bar
|
||||
@click-left="addPdShow=false;doSearch()"
|
||||
fixed
|
||||
left-arrow
|
||||
placeholder
|
||||
title="新增盘点"
|
||||
></van-nav-bar>
|
||||
|
||||
<van-form @submit="onSubmit">
|
||||
<van-field :value="formData.zcbh" label="资产编号" readonly required></van-field>
|
||||
<van-field :value="formData.zcmc" label="资产名称" readonly required></van-field>
|
||||
<!-- <van-field :value="formData.zmjz" @touchstart.native.stop="zmjzShow = true" clickable
|
||||
label="账面价值" placeholder="请输入账面价值"
|
||||
readonly></van-field>
|
||||
<van-number-keyboard
|
||||
:show="zmjzShow"
|
||||
@blur="zmjzShow = false"
|
||||
close-button-text="完成"
|
||||
extra-key="."
|
||||
hide-on-click-outside
|
||||
safe-area-inset-bottom
|
||||
theme="custom"
|
||||
v-model="formData.zmjz"
|
||||
></van-number-keyboard>-->
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]" :value="formData.zcgzrq"
|
||||
@click="zcrksjShow = true"
|
||||
clickable label="购置日期" placeholder="请输入购置日期"
|
||||
readonly
|
||||
required></van-field>
|
||||
|
||||
<van-calendar :color="themeColor" :min-date="new Date('1999-01-01')"
|
||||
@confirm="onConfirmZcrksj" v-model="zcrksjShow"></van-calendar>
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]" :value="formData.zcbdsj"
|
||||
@click="zcbdsjShow = true"
|
||||
clickable label="盘点日期" placeholder="请输入盘点日期"
|
||||
readonly
|
||||
required></van-field>
|
||||
|
||||
<van-calendar :color="themeColor" :min-date="new Date('1999-01-01')"
|
||||
@confirm="onConfirmZcbdsj"
|
||||
required v-model="zcbdsjShow"></van-calendar>
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]"
|
||||
@input="userRemoteMethod"
|
||||
clickable
|
||||
label="责任人" placeholder="请输入责任人"
|
||||
required
|
||||
v-model="formData.zcbdshr_name"></van-field>
|
||||
|
||||
<van-action-sheet :actions="userList"
|
||||
:close-on-click-overlay="false"
|
||||
@cancel="userList = []"
|
||||
@select="onUserSelect"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
v-model="zcbdshrShow">
|
||||
</van-action-sheet>
|
||||
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]" :value="formData.zcnowlydwh"
|
||||
label="院级工会" placeholder="输入责任人联动"
|
||||
readonly required></van-field>
|
||||
|
||||
<template v-if="formData.zcghlx==='2'">
|
||||
<van-field @input="lyrRemoteMethod"
|
||||
clickable
|
||||
label="领用人" placeholder="请输入领用人"
|
||||
v-model="formData.zclyrname"></van-field>
|
||||
|
||||
<van-action-sheet :actions="userList"
|
||||
:close-on-click-overlay="false"
|
||||
@cancel="userList = []"
|
||||
@select="onLyrUserSelect"
|
||||
cancel-text="重新输入姓名或工号查询"
|
||||
v-model="zclyrnameShow">
|
||||
</van-action-sheet>
|
||||
</template>
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]"
|
||||
clickable
|
||||
label="存放地点"
|
||||
maxlength="20" placeholder="请输入存放地点"
|
||||
required
|
||||
v-model="formData.zcnowcfdmc"></van-field>
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]" :value="formData.pdzt"
|
||||
@click="pdztShow = true"
|
||||
clickable label="盘点情况" placeholder="请选择盘点情况"
|
||||
readonly
|
||||
required></van-field>
|
||||
|
||||
<van-popup :style="{ height: '40%' }" position="bottom" v-model="pdztShow">
|
||||
<van-picker
|
||||
:columns="pdztColumns"
|
||||
@cancel="pdztShow = false"
|
||||
@confirm="(v)=>{formData.pdzt = v;pdztShow = false}"
|
||||
show-toolbar
|
||||
title="盘点情况"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]" clickable label="盘点情况"
|
||||
placeholder="请输入盘点情况"
|
||||
required v-if="formData.pdzt!='已盘点'&&formData.pdzt!=null"
|
||||
v-model="formData.wpdzt"
|
||||
|
||||
></van-field>
|
||||
|
||||
<!-- <van-popup :style="{ height: '40%' }" position="bottom" v-model="wpdztShow">
|
||||
<van-picker
|
||||
:columns="wpdztColumns"
|
||||
@cancel="wpdztShow = false"
|
||||
@confirm="(v)=>{formData.wpdzt = v;wpdztShow = false}"
|
||||
show-toolbar
|
||||
title="盘点情况"
|
||||
></van-picker>
|
||||
</van-popup>-->
|
||||
|
||||
<van-field :rules="[{ required: true, message: '' }]" :value="formData.zczt"
|
||||
@click="zcztShow = true"
|
||||
clickable label="使用现状" placeholder="请选择使用现状"
|
||||
readonly
|
||||
required></van-field>
|
||||
|
||||
<van-popup :style="{ height: '40%' }" position="bottom" v-model="zcztShow">
|
||||
<van-picker
|
||||
:columns="zcztColumns"
|
||||
@cancel="zcztShow = false"
|
||||
@confirm="(v)=>{formData.zczt = v;zcztShow = false}"
|
||||
show-toolbar
|
||||
show-toolbar
|
||||
title="使用现状"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field :rules="[{ required: true, message: '请上传资产照片' }]" input-align="left"
|
||||
label="资产照片"
|
||||
name="files" required
|
||||
style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">资产照片</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<vant-file-upload :files.sync="formData.zcFile" :max="1"></vant-file-upload>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
|
||||
<div style="margin: 16px;">
|
||||
<van-button :color="themeColor" block native-type="submit" round type="info">提交
|
||||
</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
|
||||
|
||||
</van-popup>
|
||||
|
||||
|
||||
<van-popup :style="{ height: '100%',width:'100%' }" position="right" v-model="viewPdShow">
|
||||
|
||||
<van-nav-bar
|
||||
@click-left="viewPdShow=false"
|
||||
fixed
|
||||
left-arrow
|
||||
placeholder
|
||||
title="查看盘点信息"
|
||||
></van-nav-bar>
|
||||
|
||||
<van-tabs @click="openVIewTab" v-model="viewTabs">
|
||||
<van-tab :name="1" title="基本信息">
|
||||
<van-cell-group>
|
||||
<van-field :value="viewData.zcmc" label="资产名称" readonly></van-field>
|
||||
<van-field :value="viewData.zcbh" label="资产编号" readonly></van-field>
|
||||
<van-field :value="viewData.zcdj" label="单价" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.sl" label="数量" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zcghlx==='1'?'院级工会':'校工会'" label="资产类型"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zcxh" label="规格型号" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.contentCode" label="类别编号" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.content" label="类别名称" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zccfdmc" label="存放地点" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zcgzrq" label="购置日期" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zclyrname" label="领用人" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zclydwh" label="领用工会" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.pdzt" label="盘点情况" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="viewData.zczt" label="使用现状" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
|
||||
</van-cell-group>
|
||||
</van-tab>
|
||||
<van-tab :name="2" title="盘点信息">
|
||||
<van-collapse accordion v-if="viewData.bdData&&viewData.bdData.length>0"
|
||||
v-model="collapseName">
|
||||
<van-collapse-item :name="i" :title="o.zcbdsj" v-for="(o,i) in viewData.bdData">
|
||||
<van-field :value="o.zcnowlydwh" label="院级工会" readonly></van-field>
|
||||
<!-- <van-field :value="o.zmjz" label="账面价值" placeholder="暂无"
|
||||
readonly></van-field>-->
|
||||
<van-field :value="o.zcgzrq" label="购置日期" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="o.shrname" label="责任人" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="o.mobile" label="联系方式" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="o.pdzt" label="盘点情况" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="o.wpdzt" label="情况说明" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field :value="o.zczt" label="使用现状" placeholder="暂无"
|
||||
readonly></van-field>
|
||||
<van-field abel="资产照片" name="zcfile"
|
||||
required style="flex-flow: column">
|
||||
<template #label>
|
||||
<div class="mb10">资产照片</div>
|
||||
</template>
|
||||
<template #input>
|
||||
<vant-file-upload :del="false" :files.sync="o.zcfile"
|
||||
view></vant-file-upload>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
<van-empty class="custom-image"
|
||||
description="暂无数据"
|
||||
image="/none.svg"
|
||||
style="z-index: 1;position: fixed;height: 75%"
|
||||
v-if="viewData.bdData&&viewData.bdData.length==0"
|
||||
></van-empty>
|
||||
</van-tab>
|
||||
</van-tabs>
|
||||
|
||||
|
||||
</van-popup>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
let vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [mobileMixins],
|
||||
data() {
|
||||
return {
|
||||
collapseName: "",
|
||||
viewTabs: 1,
|
||||
viewData: {
|
||||
bdData: []
|
||||
},
|
||||
viewPdShow: false,
|
||||
zcztColumns: ["在用", "闲置", '未使用', '报废', '校外转入', '校内转入', '其它'],
|
||||
zcztShow: false,
|
||||
pdztColumns: ["已盘点", "盘亏", "盘盈", "报废"],
|
||||
pdztShow: false,
|
||||
wpdztColumns: ["盘亏", "报废已清拖", "其他"],
|
||||
wpdztShow: false,
|
||||
userList: [],
|
||||
zcbdshrShow: false,
|
||||
zcbdsjShow: false,
|
||||
zcrksjShow: false,
|
||||
zmjzShow: false,
|
||||
addPdShow: false,
|
||||
yearOption: [],
|
||||
pdPlanList: [],
|
||||
zcLxList: [
|
||||
{value: '', text: "全部类型"},
|
||||
{value: 2, text: "校工会"},
|
||||
{value: 1, text: "院级工会"},
|
||||
],
|
||||
pageForm: {
|
||||
isPd: 2,
|
||||
zcghlx: ''
|
||||
},
|
||||
|
||||
zclyrnameShow: false
|
||||
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'vant-file-upload': httpVueLoader('/components/plugins/VantFileUpload.vue')
|
||||
},
|
||||
methods: {
|
||||
|
||||
doHzExcel() {
|
||||
window.open("/platform/zcgl/gdzcbg/doHzExcel?zcpdid=" + this.pageForm.zcpdid + "&zcghlx=" + this.pageForm.zcghlx)
|
||||
},
|
||||
doDelete(o) {
|
||||
vant.Dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '确认要删除本次盘点吗?',
|
||||
}).then(async () => {
|
||||
const loading = this.$toast.loading({
|
||||
message: '删除中...',
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
duration: 0
|
||||
})
|
||||
const resp = await $.post("/platform/zcgl/gdzcbg/doPdDelete", {zcbdid: o.zcbdid})
|
||||
if (resp.code === 0) {
|
||||
await this.doSearch()
|
||||
this.$toast.success(resp.msg);
|
||||
} else {
|
||||
this.$toast.fail(resp.msg);
|
||||
}
|
||||
loading.close()
|
||||
})
|
||||
},
|
||||
async openVIewTab(val) {
|
||||
if (val === 2) {
|
||||
await this.getPdData(this.viewData.zcid)
|
||||
if (this.viewData.bdData && this.viewData.bdData.length > 0) {
|
||||
this.collapseName = 0
|
||||
}
|
||||
} else {
|
||||
this.collapseName = ""
|
||||
}
|
||||
},
|
||||
async openView(row) {
|
||||
this.viewTabs = 1
|
||||
this.viewData = clone(row)
|
||||
this.viewPdShow = true
|
||||
},
|
||||
async getPdData(zcid) {
|
||||
const data = await $.post("/platform/zcgl/gdzcbg/queryChangeData", {zcid: zcid})
|
||||
if (data.code === 0) {
|
||||
data.data.forEach(v => {
|
||||
if (v.zcfile) {
|
||||
v.zcfile = JSON.parse(v.zcfile)
|
||||
}
|
||||
})
|
||||
this.$set(this.viewData, "bdData", data.data)
|
||||
} else {
|
||||
this.$set(this.viewData, "bdData", [])
|
||||
}
|
||||
},
|
||||
onUserSelect(u) {
|
||||
this.$set(this.formData, 'zcbdshrid', u.id)
|
||||
this.$set(this.formData, 'zcbdshr_name', u.name)
|
||||
if (this.formData.zcghlx === "2") {
|
||||
this.$set(this.formData, "zcnowlydwh", "工会")
|
||||
} else {
|
||||
this.$set(this.formData, "zcnowlydwh", u.unionname)
|
||||
this.$set(this.formData, "zcnowlydwhid", u.unionid)
|
||||
}
|
||||
|
||||
this.$set(this.formData, "mobile", u.mobile)
|
||||
this.zcbdshrShow = false
|
||||
},
|
||||
onLyrUserSelect(u) {
|
||||
console.log(u)
|
||||
this.$set(this.formData, "zclyrgh", u.loginname)
|
||||
this.$set(this.formData, "zclyrname", u.username)
|
||||
if (this.formData.zcghlx === "2") {
|
||||
this.$set(this.formData, "zclydwh", "工会")
|
||||
} else {
|
||||
this.$set(this.formData, "zclydwh", u.unionname)
|
||||
}
|
||||
this.$set(this.formData, "zclydwhid", u.unionid)
|
||||
this.zclyrnameShow = false
|
||||
},
|
||||
onConfirmZcbdsj(date) {
|
||||
this.$set(this.formData, "zcbdsj", moment(date).format('YYYY/MM/DD'))
|
||||
this.zcbdsjShow = false
|
||||
},
|
||||
onConfirmZcrksj(date) {
|
||||
this.$set(this.formData, "zcgzrq", moment(date).format('YYYY/MM/DD'))
|
||||
this.zcrksjShow = false
|
||||
},
|
||||
async onSubmit() {
|
||||
|
||||
let formData = clone(this.formData)
|
||||
formData.pdPlanId = this.pageForm.zcpdid
|
||||
formData.zcFile = JSON.stringify(formData.zcFile)
|
||||
const resp = await $.post("/platform/zcgl/gdzcbg/doSubmit", formData)
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success('新增盘点成功');
|
||||
// await this.doSearch();
|
||||
this.tableData = this.tableData.filter(t => t.zcid !== formData.zcid)
|
||||
this.pageForm.totalCount = this.pageForm.totalCount - 1
|
||||
this.addPdShow = false
|
||||
} else {
|
||||
this.$toast.fail('新增盘点失败');
|
||||
}
|
||||
},
|
||||
async openPd(row) {
|
||||
this.formData = row
|
||||
this.$set(this.formData, "zcgzrq", row.zcgzrq)
|
||||
this.$set(this.formData, "zcbdsj", moment(new Date()).format('YYYY/MM/DD'))
|
||||
this.$set(this.formData, "zcnowcfdmc", row.zccfdmc)
|
||||
|
||||
this.addPdShow = true
|
||||
},
|
||||
async userRemoteMethod(event) {
|
||||
if (event) {
|
||||
let arr = []
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}") {
|
||||
arr = await searchUser(event, null, null, null, null)
|
||||
} else {
|
||||
arr = await searchUser(event, "${@shiro.getPrincipalProperty('unit').getUnionid()}", null, null, null)
|
||||
}
|
||||
|
||||
this.userList = arr.map(v => {
|
||||
return {
|
||||
name: v.username + "(" + v.loginname + ")",
|
||||
id: v.id,
|
||||
mobile: v.mobile,
|
||||
unionname: v.unionname,
|
||||
loginname: v.loginname,
|
||||
username: v.username,
|
||||
}
|
||||
})
|
||||
this.zcbdshrShow = true
|
||||
}
|
||||
},
|
||||
async lyrRemoteMethod(event) {
|
||||
if (event) {
|
||||
let arr = []
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}") {
|
||||
arr = await searchUser(event, null, null, null, null)
|
||||
} else {
|
||||
arr = await searchUser(event, "${@shiro.getPrincipalProperty('unit').getUnionid()}", null, null, null)
|
||||
}
|
||||
|
||||
this.userList = arr.map(v => {
|
||||
return {
|
||||
name: v.username + "(" + v.loginname + ")",
|
||||
id: v.id,
|
||||
mobile: v.mobile,
|
||||
unionname: v.unionname,
|
||||
loginname: v.loginname,
|
||||
username: v.username,
|
||||
unionid: v.unionid,
|
||||
}
|
||||
})
|
||||
this.zclyrnameShow = true
|
||||
}
|
||||
},
|
||||
async doSearch() {
|
||||
this.tableKey = new Date().getTime()
|
||||
this.pageForm.pageNumber = 1
|
||||
this.finished = false;
|
||||
this.pageForm.totalCount = 0
|
||||
this.tableData = []
|
||||
await this.onLoad();
|
||||
},
|
||||
async onLoad() {
|
||||
this.mLoading = true
|
||||
const res = await $.post('/platform/zcgl/gdzcbg/data', this.pageForm)
|
||||
const {code, data} = res
|
||||
if (this.refreshing) {
|
||||
this.tableData = [];
|
||||
this.refreshing = false;
|
||||
}
|
||||
this.mLoading = false;
|
||||
if (code === 0) {
|
||||
this.tableData = this.tableData.concat(data.list)
|
||||
this.pageForm.totalCount = data.totalCount
|
||||
|
||||
if (this.tableData.length === 0) {
|
||||
this.finished = true;
|
||||
} else {
|
||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
||||
this.finished = true;
|
||||
this.pageForm.pageNumber++
|
||||
} else {
|
||||
this.pageForm.pageNumber++
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
async getPdPlan() {
|
||||
const resp = await $.post("/platform/zcgl/gdzcbg/getPdPlan", {year: this.pageForm.year})
|
||||
resp.data.forEach(v => {
|
||||
const startDate = moment(v.startDate).format('YYYY-MM-DD')
|
||||
const endDate = moment(v.endDate).format('YYYY-MM-DD')
|
||||
v.text = startDate + "至" + endDate
|
||||
v.value = v.id
|
||||
v.isShow = (moment().format('YYYY-MM-DD hh:mm:ss') > v.startDate && moment().format('YYYY-MM-DD hh:mm:ss') < v.endDate)
|
||||
})
|
||||
this.pdPlanList = resp.data
|
||||
if (this.pdPlanList && this.pdPlanList.length > 0) {
|
||||
this.$set(this.pageForm, "zcpdid", this.pdPlanList[0].id)
|
||||
} else {
|
||||
this.$set(this.pageForm, "zcpdid", '')
|
||||
}
|
||||
//
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
const toast = vant.Toast.loading({
|
||||
duration: 0, // 持续展示 toast
|
||||
forbidClick: true,
|
||||
message: '数据查询中',
|
||||
});
|
||||
this.mLoading = true
|
||||
for (let i = new Date().getFullYear() - 5; i <= new Date().getFullYear(); i++) {
|
||||
this.yearOption.unshift({value: i, text: i + '年'},)
|
||||
}
|
||||
this.$set(this.pageForm, "year", this.yearOption[0].value)
|
||||
await this.getPdPlan();
|
||||
setTimeout(async () => {
|
||||
toast.clear();
|
||||
this.mLoading = false
|
||||
await this.doSearch()
|
||||
}, 500)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -72,40 +72,41 @@
|
||||
</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>
|
||||
<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>
|
||||
|
||||
<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 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>
|
||||
|
||||
</template>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
@@ -203,69 +204,8 @@
|
||||
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-col :span="24">
|
||||
<el-form-item label="审核意见">
|
||||
<span>{{ info.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>
|
||||
</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 prop="auditSign" label="签字">
|
||||
<sign v-model="formData.auditSign"></sign>
|
||||
</el-form-item>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
@@ -279,24 +219,77 @@
|
||||
</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-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-col :span="24">
|
||||
<el-form-item label="审核意见">
|
||||
<span>{{ info.schoolAudit.auditOpinion }}</span>
|
||||
<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>
|
||||
|
||||
<el-form-item prop="auditSign" label="签字">
|
||||
<sign v-model="formData.auditSign"></sign>
|
||||
</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-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 v-else type="flex" justify="center">
|
||||
<el-form-item label="暂无审核信息">
|
||||
@@ -348,12 +341,13 @@
|
||||
{prop: 'mobile', label: '联系电话'},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'threeUnitName', label: '所在科室', sortable: true},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true},
|
||||
{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: []
|
||||
units: [],
|
||||
isThreeUnit: null,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -367,10 +361,10 @@
|
||||
this.submitLoading = true
|
||||
const resp = await $.post("/platform/member/apply/audit/doAudit", this.formData)
|
||||
this.submitLoading = false
|
||||
if(resp.code===0){
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
@@ -378,8 +372,8 @@
|
||||
this.$set(row, "loading", true)
|
||||
const resp = await $.get("/platform/member/common/findApplyInfo", {id: row.id})
|
||||
this.$set(row, "loading", false)
|
||||
if(resp.code===0){
|
||||
const data = resp.data
|
||||
if (resp.code === 0) {
|
||||
const data = resp.data
|
||||
data.audit = audit
|
||||
this.info = data
|
||||
|
||||
@@ -403,7 +397,7 @@
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.info = {}
|
||||
}
|
||||
@@ -438,6 +432,15 @@
|
||||
}
|
||||
},
|
||||
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') {
|
||||
this.unions = await getUnions(null, false)
|
||||
|
||||
@@ -71,7 +71,7 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button
|
||||
:disabled="!((unionInfo.apply||unionInfo.reApply)&&reading)"
|
||||
:disabled="!((unionInfo.apply||unionInfo.reApply))"
|
||||
type="primary"
|
||||
@click="apply"
|
||||
style="width: 70%;margin-left: 15%;margin-top: 20px">
|
||||
@@ -80,12 +80,15 @@ layout("/layouts/platform.html"){
|
||||
<span v-else>您已是会员</span>
|
||||
</el-button>
|
||||
|
||||
<el-radio
|
||||
<!--<el-radio
|
||||
style="width: 70%;margin-left: 15%;margin-top: 20px;color: #F56C6C"
|
||||
v-model="reading" :label="true">
|
||||
阅读须知:我自愿加入工会
|
||||
</el-radio>
|
||||
</el-radio>-->
|
||||
|
||||
<el-button style="width: 70%;margin-top: 10px;margin-left: 15%;" type="primary" @click="exportApply">
|
||||
导出申请表
|
||||
</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
@@ -209,8 +212,18 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<el-form :model="formData" :rules="rules" ref="AddForm" label-width="170px">
|
||||
|
||||
<div style="width: 800px;margin: 0 auto;">
|
||||
<h3 style="text-align: center">中华全国总工会</h3>
|
||||
<h3 style="text-align: center">入会申请书</h3>
|
||||
<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">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="姓名" prop="username">
|
||||
@@ -219,13 +232,6 @@ 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">男
|
||||
@@ -237,7 +243,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>
|
||||
@@ -246,31 +252,24 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="education" label="学历">
|
||||
<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>
|
||||
<dict-select code="Education" placeholder="请选择学历"
|
||||
style="width: 100%"
|
||||
v-model="formData.education"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="political" label="政治面貌">
|
||||
<el-input maxlength="100" placeholder="政治面貌"
|
||||
v-model="formData.political"></el-input>
|
||||
<dict-select code="political" placeholder="请选择政治面貌"
|
||||
style="width: 100%"
|
||||
v-model="formData.political"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="userState" label="人员类型">
|
||||
<dict-select v-model="formData.personType" style="width: 100%" placeholder="请选择人员类型"
|
||||
code="UserType"></dict-select>
|
||||
<el-form-item prop="marriage" label="婚姻状况">
|
||||
<dict-select v-model="formData.marriage" style="width: 100%" placeholder="请选择婚姻状况"
|
||||
code="maritalStatus"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -301,42 +300,52 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item prop="registeredResidence" label="户口所在地">
|
||||
<el-input maxlength="50" placeholder="请填写户口所在地"
|
||||
v-model="formData.registeredResidence" type="textarea"
|
||||
rows="3"></el-input>
|
||||
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>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<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="50" placeholder="请填写个人工作简历"
|
||||
<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>
|
||||
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="formData.family.push({})"> 添加成员
|
||||
</el-button>
|
||||
<el-table
|
||||
:data="formData.family"
|
||||
border
|
||||
@@ -358,13 +367,27 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="unit" label="单位" align="center"
|
||||
<el-table-column prop="isCondolence" label="是否慰问" align="center"
|
||||
header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-input placeholder="请输入单位" maxlength="100"
|
||||
v-model="scope.row.unit" clearable></el-input>
|
||||
<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>-->
|
||||
</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">
|
||||
@@ -375,8 +398,17 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-table-column label="操作" width="100px" align="center"
|
||||
header-align="center">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button type="primary"
|
||||
size="mini"
|
||||
icon="el-icon-plus"
|
||||
@click="formData.family.push({})">
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
<template slot-scope="scope">
|
||||
<el-button type="danger" icon="el-icon-delete" circle
|
||||
<el-button type="danger" icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="formData.family.length===0"
|
||||
@click="formData.family.splice(scope.$index,1)"></el-button>
|
||||
</template>
|
||||
@@ -387,12 +419,11 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
</el-row>
|
||||
|
||||
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- <member ref="member" :id="'${@shiro.getPrincipalProperty('id')}'" @save="doApply"></member>-->
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()">取消</el-button>
|
||||
<el-button type="primary" @click="doSubmit">提交</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
@@ -516,6 +547,9 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
|
||||
exportApply() {
|
||||
window.open(loc() + '/exportApply')
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.getUnionInfo()
|
||||
|
||||
@@ -11,6 +11,9 @@ layout("/layouts/platform.html"){
|
||||
.div-enum .el-select__caret{
|
||||
line-height: 10px;
|
||||
}
|
||||
.search .search-query{
|
||||
width: 300px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
@@ -187,6 +190,8 @@ layout("/layouts/platform.html"){
|
||||
<div class="search-query">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索
|
||||
</el-button>
|
||||
<el-button v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}"
|
||||
type="primary" icon="el-icon-printer" @click="openImport">导入会员</el-button>
|
||||
<more v-model="searchMore"></more>
|
||||
</div>
|
||||
</div>
|
||||
@@ -217,8 +222,10 @@ layout("/layouts/platform.html"){
|
||||
</el-radio-group>
|
||||
|
||||
<div v-if="pageForm.changed == '1'" class="div-enum">
|
||||
<enum-select clearable enum="UserChangeType"
|
||||
<enum-select enum="UserChangeType"
|
||||
label="description"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="异动类型"
|
||||
@change="doSearch"
|
||||
v-model="pageForm.changeTypes"
|
||||
@@ -738,6 +745,10 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<user-change-history ref="userChangeHistory"></user-change-history>
|
||||
|
||||
<el-dialog title="会员导入" :visible.sync="dialogVisible" width="50%" :close-on-click-modal="false">
|
||||
<file-import ref="viewImport" :temp_url="tempUrl"
|
||||
:post_url="postUrl" :is_show_radio="isShowRadio"></file-import>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -839,6 +850,11 @@ layout("/layouts/platform.html"){
|
||||
|
||||
batchFormDataUserState: {},
|
||||
batchEditVisibleUserState: false,
|
||||
|
||||
dialogVisible:false,
|
||||
tempUrl:'/platform/member/change/mange/downloadImport',
|
||||
postUrl:'/platform/member/change/mange/doImport',
|
||||
isShowRadio:false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -850,8 +866,12 @@ layout("/layouts/platform.html"){
|
||||
'enum-select': httpVueLoader('/components/plugins/EnumSelect.vue?v=1.0.0'),
|
||||
'member-user-select': httpVueLoader('/components/plugins/MemberUserTableSelect.vue?v=1.0.0'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=' + new Date().getTime()),
|
||||
'file-import': httpVueLoader('/components/plugins/FileImport.vue')
|
||||
},
|
||||
methods: {
|
||||
openImport(){
|
||||
this.dialogVisible = true;
|
||||
},
|
||||
async openUserChangeInfo({hisId}) {
|
||||
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
|
||||
},
|
||||
@@ -1136,6 +1156,9 @@ layout("/layouts/platform.html"){
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
const pageForm = clone(this.pageForm)
|
||||
if (pageForm.changeTypes === ""){
|
||||
pageForm.changeTypes = []
|
||||
}
|
||||
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
|
||||
$.post(loc() + '/pageData', pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
@@ -1171,7 +1194,6 @@ layout("/layouts/platform.html"){
|
||||
this.unitMoveUnions = clone(this.unions)
|
||||
this.campusOptions = await getCampus()
|
||||
this.changeType = await this.getChangeType()
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -78,40 +78,42 @@ layout("/layouts/platform.html"){
|
||||
</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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
@@ -386,8 +388,8 @@ 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: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
|
||||
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
|
||||
{prop: 'campusName', label: '所属校区', sortable: true, checked: 0},
|
||||
{prop: 'marriage', label: '婚否', checked: 0},
|
||||
{prop: 'education', label: '学历', checked: 0},
|
||||
@@ -407,6 +409,7 @@ layout("/layouts/platform.html"){
|
||||
);
|
||||
}
|
||||
},
|
||||
isThreeUnit: null,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -559,6 +562,14 @@ 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') {
|
||||
this.unions = await getUnions(null, false)
|
||||
@@ -574,4 +585,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -114,19 +114,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
.login-code{
|
||||
.icp {
|
||||
color: black;
|
||||
bottom: 33px;
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
float: right;
|
||||
width: 38%;
|
||||
height: 38px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.login-code img{
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
.icp a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
</head>
|
||||
@@ -151,6 +151,7 @@
|
||||
|
||||
<div class="login-container">
|
||||
<div class="login-content">
|
||||
|
||||
<div class="mobile-login-img">
|
||||
<embed src="/m-login.svg" style="width: 100%" type="image/svg+xml"/>
|
||||
</div>
|
||||
@@ -160,79 +161,112 @@
|
||||
${AppName!}系统登录
|
||||
</h4>
|
||||
<el-tabs class="login-tabs">
|
||||
<el-tab-pane label="用户名登录">
|
||||
<el-form :model="loginForm" :rules="loginRules" auto-complete="on"
|
||||
class="login-form"
|
||||
<!--<el-tab-pane label="用户名登录" name="1">
|
||||
<el-form v-if="activeName == '1'" :model="loginForm" :rules="loginRules" auto-complete="on" class="login-form"
|
||||
ref="loginForm">
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
placeholder="账号或手机号码"
|
||||
placeholder="请输入用户名"
|
||||
prefix-icon="el-icon-user"
|
||||
type="text"
|
||||
v-model="loginForm.username"
|
||||
>
|
||||
v-model="loginForm.username">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
@keyup.enter.native="doLogin"
|
||||
placeholder="密码"
|
||||
placeholder="请输入密码"
|
||||
prefix-icon="el-icon-lock"
|
||||
type="password"
|
||||
v-model="loginForm.password"
|
||||
>
|
||||
v-model="loginForm.password">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="platformCaptcha">
|
||||
<el-input
|
||||
@keyup.enter.native="doLogin"
|
||||
placeholder="验证码"
|
||||
prefix-icon="el-icon-lock"
|
||||
style="width: 60%"
|
||||
type="password"
|
||||
v-model="loginForm.platformCaptcha"
|
||||
>
|
||||
</el-input>
|
||||
<div class="login-code">
|
||||
<img :src="codeUrl" @click="getCode" alt="">
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item>
|
||||
<el-button :disabled="disabled"
|
||||
:loading="loading"
|
||||
@click.native.prevent="doLogin"
|
||||
@click.native.prevent="handleLogin"
|
||||
class="login-button"
|
||||
type="primary">
|
||||
<span v-if="!loading">登 录</span>
|
||||
<span v-else>登录中...</span>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>-->
|
||||
<el-tab-pane label="短信快捷登陆">
|
||||
<el-form :model="loginForm" :rules="loginRules" auto-complete="on" class="login-form"
|
||||
ref="loginForm">
|
||||
<el-form-item prop="mobile">
|
||||
<el-input
|
||||
placeholder="请输入手机号"
|
||||
prefix-icon="el-icon-phone-outline"
|
||||
type="text" maxlength="11"
|
||||
v-model.number="loginForm.mobile">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="platformCaptcha">
|
||||
<el-input @keyup.enter.native="doLogin" placeholder="请输入手机动态码" prefix-icon="el-icon-unlock" v-model="loginForm.platformCaptcha">
|
||||
<el-button @click="sendCode()" type="primary" slot="append">{{ codeMsg }}</el-button>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button :disabled="disabled"
|
||||
:loading="loading"
|
||||
@click.native.prevent="handleLogin"
|
||||
class="login-button"
|
||||
type="primary">
|
||||
<span v-if="!loading">登 录</span>
|
||||
<span v-else>登录中...</span>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</div>
|
||||
<!--滑块验证-->
|
||||
<el-dialog title="请拖动滑块完成拼图" width="360px" :visible.sync="isShowSliderVerify" :close-on-click-modal="false" @closed="refresh" append-to-body>
|
||||
<slider-verify ref="sliderVerify" @success="onSuccess" @fail="onFail" @again="onAgain"></slider-verify>
|
||||
</el-dialog>
|
||||
|
||||
<!--<div class="icp">
|
||||
ICP证:<a href="https://beian.miit.gov.cn/" target="_blank">鄂ICP备16009506号-5</a>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script src="${base!}/assets/platform/plugins/vue/vue.min.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/element-ui/lib/index.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/jquery/jquery-1.11.1.min.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/jquery/jquery-3.5.1.min.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/vue-loader/httpVueLoader.js"></script>
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
Vue.use(httpVueLoader)
|
||||
</script>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
// 是否禁用按钮
|
||||
codeDisabled: false,
|
||||
// 倒计时秒数
|
||||
countdown: 60,
|
||||
// 按钮上的文字
|
||||
codeMsg: '获取动态码',
|
||||
// 定时器
|
||||
timer: null,
|
||||
// 是否显示滑块验证
|
||||
isShowSliderVerify: false,
|
||||
loginForm: {
|
||||
username: '',
|
||||
password: '',
|
||||
platformKey: '',
|
||||
platformCaptcha: "",
|
||||
platformCaptcha: '',
|
||||
// 随机字符串
|
||||
nonceStr: '',
|
||||
// 验证值
|
||||
value: '',
|
||||
},
|
||||
loginRules: {
|
||||
username: [
|
||||
@@ -241,46 +275,159 @@
|
||||
password: [
|
||||
{required: true, trigger: ['blur', 'change'], message: '密码不能为空'},
|
||||
],
|
||||
mobile: [
|
||||
{ required: true, message: '手机号不能为空', trigger: 'blur' },
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }
|
||||
],
|
||||
platformCaptcha: [
|
||||
{required: true, trigger: ['blur', 'change'], message: '验证码不能为空'},
|
||||
{required: true, trigger: ['blur', 'change'], message: '动态码不能为空'},
|
||||
],
|
||||
},
|
||||
loading: false,
|
||||
disabled: false,
|
||||
|
||||
codeUrl: "${base!}/platform/login/captcha",
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'slider-verify': httpVueLoader('/components/captcha/sliderVerify.vue'),
|
||||
},
|
||||
methods: {
|
||||
async doLogin() {
|
||||
try {
|
||||
const valid = await this.$refs['loginForm'].validate()
|
||||
if (valid) {
|
||||
this.loading = true
|
||||
const resp = await $.post("${base!}/platform/login/doLogin", this.loginForm)
|
||||
this.loading = false
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.disabled = true
|
||||
setTimeout(() => {
|
||||
const redirect = this.getQueryString("redirect")
|
||||
if (redirect) {
|
||||
window.location.href = redirect
|
||||
} else if (this.isMobile()) {
|
||||
window.location.href = "${base!}/mobile/index"
|
||||
} else {
|
||||
window.location.href = "${base!}/platform/home"
|
||||
}
|
||||
}, 1000)
|
||||
sendCode() {
|
||||
if(this.codeDisabled) {
|
||||
return
|
||||
}
|
||||
this.$refs.loginForm.validateField('mobile', async (valid) => {
|
||||
if(!valid) {
|
||||
const resp = await this.validMobile();
|
||||
if (resp.code !== 0){
|
||||
this.$message.warning(resp.msg)
|
||||
return
|
||||
}
|
||||
|
||||
/*发送验证码功能*/
|
||||
//若发送验证码成功,则调用倒计时函数
|
||||
const {code, data} = await $.post('/platform/login/mobileCaptcha', {mobile: this.loginForm.mobile})
|
||||
if(code === 0) {
|
||||
this.loginForm.platformKey = data.key
|
||||
this.getCode();
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
this.getCode()
|
||||
this.$message({showClose: true, type: 'warning', message: '动态码发送失败,请联系管理员'});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
})
|
||||
},
|
||||
// 获取验证码
|
||||
getCode() {
|
||||
// 验证码60秒倒计时
|
||||
if (!this.timer) {
|
||||
this.timer = setInterval(() => {
|
||||
if (this.countdown > 0 && this.countdown <= 60) {
|
||||
this.countdown--;
|
||||
if (this.countdown !== 0) {
|
||||
this.codeDisabled = true;
|
||||
this.codeMsg = "重新发送(" + this.countdown + ")";
|
||||
} else {
|
||||
clearInterval(this.timer);
|
||||
this.codeMsg = "获取动态码";
|
||||
this.countdown = 60;
|
||||
this.timer = null;
|
||||
this.codeDisabled = false;
|
||||
}
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
},
|
||||
//验证手机号是否存在
|
||||
async validMobile() {
|
||||
return await $.post('${base!}/platform/login/validMobile', {mobile: this.loginForm.mobile})
|
||||
},
|
||||
//验证图片滑动
|
||||
async validVerify() {
|
||||
return await $.post('${base!}/platform/login/validVerify', {
|
||||
nonceStr: this.loginForm.nonceStr,
|
||||
value: this.loginForm.value,
|
||||
})
|
||||
},
|
||||
/* 滑动验证成功*/
|
||||
async onSuccess(captcha) {
|
||||
Object.assign(this.loginForm, captcha);
|
||||
const resp = await this.validVerify()
|
||||
if(resp.code === 0) {
|
||||
await this.doLogin();
|
||||
} else {
|
||||
this.$refs.sliderVerify.verifyFailEvent(resp.msg);
|
||||
}
|
||||
},
|
||||
/* 滑动验证失败*/
|
||||
onFail(msg) {
|
||||
this.message('error', msg || '验证失败,请控制拼图对齐缺口');
|
||||
},
|
||||
/* 滑动验证异常*/
|
||||
onAgain() {
|
||||
this.message('error', '滑动操作异常,请重试');
|
||||
this.$refs.sliderVerify.refresh();
|
||||
},
|
||||
/* 刷新验证码*/
|
||||
refresh() {
|
||||
this.$refs.sliderVerify.refresh();
|
||||
},
|
||||
/* 提示弹框*/
|
||||
message(type, message) {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
type: type,
|
||||
message: message,
|
||||
duration: 1500,
|
||||
});
|
||||
},
|
||||
handleLogin() {
|
||||
let self = this;
|
||||
self.$refs.loginForm.validate((flag) => {
|
||||
self.isShowSliderVerify = flag;
|
||||
});
|
||||
},
|
||||
async doLogin() {
|
||||
const valid = await this.$refs['loginForm'].validate()
|
||||
if (valid) {
|
||||
this.loginForm.loginType = 'SMS_CODE'
|
||||
const resp = await $.post('${base!}/platform/login/doLogin', this.loginForm)
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
const redirect = this.getQueryString("redirect")
|
||||
if (redirect) {
|
||||
window.location.href = redirect
|
||||
} else if (this.isMobile()) {
|
||||
window.location.href = "${base!}/mobile/index"
|
||||
} else {
|
||||
window.location.href = "${base!}/platform/home"
|
||||
}
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
this.isShowSliderVerify = false;
|
||||
}
|
||||
}
|
||||
/*$.post(url, self.loginForm, function (d) {
|
||||
if (d.code == 0) {
|
||||
self.$refs.sliderVerify.verifySuccessEvent();
|
||||
self.$message({
|
||||
showClose: true,
|
||||
type: 'success',
|
||||
message: '登录成功,正在跳转首页...',
|
||||
duration: 1000
|
||||
});
|
||||
setTimeout(() => {
|
||||
window.location.href = "${base!}/platform/home"
|
||||
}, 500);
|
||||
} else {
|
||||
self.$message({
|
||||
message: d.msg,
|
||||
type: 'error'
|
||||
})
|
||||
self.isShowSliderVerify = false;
|
||||
}
|
||||
}, "json");*/
|
||||
},
|
||||
getQueryString(name) {
|
||||
const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
let r = window.location.search.substr(1).match(reg);
|
||||
@@ -303,24 +450,16 @@
|
||||
isMobile = true;
|
||||
}
|
||||
return isMobile;
|
||||
},
|
||||
|
||||
async getCode() {
|
||||
const {data} = await $.get('/platform/login/captcha')
|
||||
this.codeUrl = data.codeUrl
|
||||
this.loginForm.platformKey = data.key
|
||||
}
|
||||
|
||||
},
|
||||
created() {
|
||||
this.year = new Date().getFullYear()
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener('pageshow', (event) => {
|
||||
console.log(event)
|
||||
this.loading = false
|
||||
this.disabled = false
|
||||
})
|
||||
},
|
||||
created(){
|
||||
this.getCode()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -674,7 +674,7 @@ layout("/layouts/platform.html"){
|
||||
'user-select': httpVueLoader('/components/plugins/UserTableSelect.vue?v=1.0.0'),
|
||||
'enum-select': httpVueLoader('/components/plugins/EnumSelect.vue?v=1.0.0'),
|
||||
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=' + new Date().getTime()),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=1.0.1'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=1.0.1'),
|
||||
},
|
||||
methods: {
|
||||
async openUserChangeInfo({hisId}) {
|
||||
|
||||
@@ -466,7 +466,7 @@ layout("/layouts/platform.html"){
|
||||
'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'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=1.0.1'),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -412,7 +412,7 @@ layout("/layouts/platform.html"){
|
||||
'enum-select': httpVueLoader('/components/plugins/EnumSelect.vue?v=1.0.0'),
|
||||
'user-select': httpVueLoader('/components/plugins/UserTableSelect.vue?v=1.0.0'),
|
||||
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.4'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=1.0.1'),
|
||||
'user-change-history': httpVueLoader('/components/userChangeHistory/UserChangeHistory.vue?v=1.0.1'),
|
||||
},
|
||||
computed: {
|
||||
allowOperationTask() {
|
||||
|
||||
@@ -1,355 +1,63 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
|
||||
<style>
|
||||
.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
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div slot="header" class="clearfix">
|
||||
<span style="color: #409EFF;font-size: 18px"><h3>资产登记</h3></span>
|
||||
<zc-add ref="zcAdd"></zc-add>
|
||||
|
||||
<div style="padding: 20px;margin-top: 10px">
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-width="140px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="assetNumber" label="资产编号">
|
||||
<el-input v-model="formData.assetNumber" placeholder="资产编号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="assetName" label="资产名称">
|
||||
<el-input v-model="formData.assetName" placeholder="资产名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="financeSixName" label="财政六大类名称">
|
||||
<el-input v-model="formData.financeSixName" placeholder="财政六大类名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="unitId" label="所属学院">
|
||||
<el-select placeholder="所属单位" v-model="formData.unitId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name"
|
||||
:key="item.id" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="threeUnitId" label="领用单位(科室)">
|
||||
<el-select placeholder="请选择领用单位(科室)"
|
||||
v-model="formData.threeUnitId" style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in threeUnits" :key="item.id"
|
||||
:label="item.name" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="assetModel" label="型号">
|
||||
<el-input v-model="formData.assetModel" placeholder="型号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="originalValue" label="原值">
|
||||
<el-input-number v-model="formData.originalValue"
|
||||
:min="0"
|
||||
:max="9999999"
|
||||
:precision="2"
|
||||
placeholder="原值"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="assetSources" label="资产来源">
|
||||
<el-input v-model="formData.assetSources" placeholder="资产来源"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="assetStatus" label="现状">
|
||||
<el-select placeholder="请选择现状" v-model="formData.assetStatus" style="width: 100%;"
|
||||
clearable="true"
|
||||
multiple
|
||||
filterable="true">
|
||||
<el-option v-for="item in asseStatusList" :label="item.categoryName"
|
||||
:key="item.contentCode" :value="item.contentCode"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="minimumUsageYear" label="最低使用年限">
|
||||
<el-input-number v-model="formData.minimumUsageYear"
|
||||
placeholder="最低使用年限"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="recipientUserId" label="领用人">
|
||||
<el-select v-model="formData.recipientUserId" placeholder="可根据工号或姓名搜索领用人"
|
||||
filterable
|
||||
remote
|
||||
clearable
|
||||
reserve-keyword
|
||||
:remote-method="remoteMethod"
|
||||
:loading="selectLoading"
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in userList"
|
||||
:key="item.id"
|
||||
:label="item.username+'-'+item.loginname+'-'+item.unitname"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col span="24">
|
||||
<el-form-item prop="remark" label="备注">
|
||||
<el-input v-model="formData.remark"
|
||||
rows="2" type="textarea"
|
||||
placeholder="请填写备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col span="12">
|
||||
<el-form-item prop="storageLocation" label="存放地">
|
||||
<el-input v-model="formData.storageLocation"
|
||||
placeholder="存放地"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item prop="purchaseDate" label="购置日期">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="formData.purchaseDate"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="datetime"
|
||||
placeholder="请选择购置日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item prop="storageDate" label="入库日期">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="formData.storageDate"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="datetime"
|
||||
placeholder="请选择入库日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col span="24">
|
||||
<el-form-item prop="competentDepartmentRemark" label="主管部门备注">
|
||||
<el-input v-model="formData.competentDepartmentRemark"
|
||||
rows="2" type="textarea"
|
||||
placeholder="请填写主管部门备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<el-row justify="center" type="flex">
|
||||
<el-button @click="history.go(-1)" type="primary"
|
||||
v-if="this.formData.id"
|
||||
style="width: 200px">返 回</el-button>
|
||||
<!--<el-button @click="doSave" type="primary"
|
||||
style="width: 200px">保 存</el-button>-->
|
||||
<el-button @click="doSubmit" type="primary"
|
||||
style="width: 200px">提 交</el-button>
|
||||
</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins:[initTableMixins],
|
||||
data(){
|
||||
return{
|
||||
id:GetQueryString("id"),
|
||||
units: [],
|
||||
threeUnits: [],
|
||||
asseStatusList:[],
|
||||
userList:[],
|
||||
selectLoading: false,
|
||||
formRules: {
|
||||
assetNumber: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
}
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
components: {
|
||||
'zc-add': httpVueLoader('/components/zcgl/zcAdd.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
async doSubmit(){
|
||||
|
||||
let postUrl = this.formData.id ? '/platform/zcgl/zcdj/doEdit' : '/platform/zcgl/zcdj/doSubmit'
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
doSubExcel: function () {
|
||||
var self = this;
|
||||
if (!self.tableData.length > 0) {
|
||||
self.$message.warning('请先上传excel');
|
||||
return;
|
||||
}
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '上传中',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
$.post(base + '/platform/zcgl/zcdj/doExcelSubmit', {data: JSON.stringify(self.tableData)}, function (data) {
|
||||
if (data.code == 0) {
|
||||
self.$message({
|
||||
message: data.msg,//提示的信息
|
||||
type: 'success', //类型是成功
|
||||
offset: 225, //距离窗口顶部的偏移量
|
||||
duration: 2000, //显示时间, 毫秒。设为 0 则不会自动关闭
|
||||
onClose: () => {
|
||||
self.tableData = [];
|
||||
self.file = null;
|
||||
window.location.href = '/platform/zcgl/tzgl';
|
||||
}
|
||||
});
|
||||
this.formData.assetStatus = JSON.stringify(this.formData.assetStatus)
|
||||
const resp = await $.post(postUrl, this.formData)
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.$message.success('操作成功')
|
||||
setTimeout(()=>{
|
||||
window.location.href = '/platform/zcgl/tzgl'
|
||||
},500)
|
||||
} else {
|
||||
this.$message.warning('操作失败')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
async remoteMethod(query) {
|
||||
if (query) {
|
||||
this.selectLoading = true;
|
||||
this.userList = await searchUser(query, '${@shiro.getPrincipalProperty("union").getId()}', null, null, null)
|
||||
this.selectLoading = false;
|
||||
}
|
||||
},
|
||||
async getAllAsseStatus(){
|
||||
const resp = await $.post('/platform/zcgl/zclb/queryLb')
|
||||
if (resp.code === 0){
|
||||
this.asseStatusList = resp.data
|
||||
}
|
||||
},
|
||||
async findOne(){
|
||||
const resp = await $.post('/platform/zcgl/zcdj/findOne',{id:this.formData.id})
|
||||
if (resp.code === 0){
|
||||
this.formData.assetStatus = []
|
||||
this.formData = resp.data
|
||||
this.formData.assetStatus = resp.data.assetStatus
|
||||
if (this.formData.recipientUserId) {
|
||||
this.userList = await searchUser(this.formData.recipientLoginName, null, null, null, null)
|
||||
console.log(this.userList)
|
||||
} else {
|
||||
this.formData.recipientUserId = resp.data.recipientUsername
|
||||
this.formData.threeUnitId = resp.data.threeUnitName
|
||||
this.formData.unitId = resp.data.unitName
|
||||
self.$message.error(data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.units = await getUnits()
|
||||
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(this.formData.unitId,null)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(this.formData.unitId,null)
|
||||
}
|
||||
}).complete(function () {
|
||||
loading.close();
|
||||
});
|
||||
},
|
||||
|
||||
},
|
||||
async created() {
|
||||
if (GetQueryString("id")) {
|
||||
this.formData.id = this.id
|
||||
await this.findOne()
|
||||
}
|
||||
this.flushUnits()
|
||||
await this.getAllAsseStatus();
|
||||
},
|
||||
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<!--#
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker
|
||||
@change="doSearch"
|
||||
placeholder="选择年度"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card class="mt20" shadow="never">
|
||||
<table-tool :app="this" label="报废列表">
|
||||
<template #func>
|
||||
</template>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData"
|
||||
header-align="center" ref="table"
|
||||
row-key="zcbdid">
|
||||
|
||||
<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"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="300">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看
|
||||
</el-button>
|
||||
<el-button @click="exportDetails(row)" size="mini" type="primary">
|
||||
导出报废申请表
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<el-table :data="findData.zcxxs"
|
||||
header-align="center" ref="table"
|
||||
row-key="zcbdid">
|
||||
<el-table-column label="序号"
|
||||
type="index"
|
||||
width="80px"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="资产编号"
|
||||
prop="zcbh"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="资产名称"
|
||||
prop="zcmc"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单价"
|
||||
prop="zcdj"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="台件"
|
||||
prop="sl"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="资产规格型号"
|
||||
prop="zcxh"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="购置日期"
|
||||
prop="zcgzrq"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="领用人"
|
||||
prop="zclyrname"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
year: moment().format('YYYY') + ""
|
||||
},
|
||||
tableColumns: [
|
||||
{prop: 'zcbdsj', label: '报废时间'},
|
||||
{prop: 'bfNum', label: '报废条数'},
|
||||
{prop: 'slSum', label: '报废总台件'},
|
||||
{prop: 'djSum', label: "报废资产总价"},
|
||||
],
|
||||
findData: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
exportDetails(row) {
|
||||
window.open("/platform/zcgl/bfList/exportDetails?zcbdid=" + row.zcbdid)
|
||||
},
|
||||
openView(row) {
|
||||
this.findData = row
|
||||
this.$refs.guava.view()
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,224 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker
|
||||
@change="doSearch"
|
||||
placeholder="选择年度"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt20" shadow="never">
|
||||
|
||||
|
||||
<table-tool :app="this" label="计划列表">
|
||||
<template #func>
|
||||
<el-button @click="openAdd" icon="el-icon-s-promotion" size="small"
|
||||
type="primary">新建盘点计划
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData"
|
||||
class="vi-table"
|
||||
ref="table"
|
||||
row-key="id" style="width: 100%">
|
||||
|
||||
<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"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="300">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看
|
||||
</el-button>
|
||||
<el-button @click="openEdit(row)" size="mini" type="primary">编辑
|
||||
</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>
|
||||
|
||||
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:title="title"
|
||||
:visible.sync="dialogVisible"
|
||||
width="40%">
|
||||
<el-form :model="formData" :rules="formRules" label-width="100px" ref="addForm">
|
||||
<el-form-item label="年度" prop="year">
|
||||
<el-date-picker
|
||||
:disabled="isView"
|
||||
placeholder="选择年度"
|
||||
style="width: 100%"
|
||||
type="year"
|
||||
v-model="formData.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划时间" prop="planDate">
|
||||
<el-date-picker
|
||||
:disabled="isView"
|
||||
end-placeholder="结束日期"
|
||||
start-placeholder="开始日期"
|
||||
style="width: 100%"
|
||||
type="datetimerange"
|
||||
v-model="formData.planDate"
|
||||
value-format="yyyy-MM-dd HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="说明" prop="note">
|
||||
<el-input
|
||||
:disabled="isView"
|
||||
:rows="3"
|
||||
placeholder="请输入说明"
|
||||
type="textarea"
|
||||
v-model="formData.note">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<span class="dialog-footer" slot="footer" v-if="!isView">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button @click="doSubmit" type="primary">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
isView: false,
|
||||
title: "",
|
||||
dialogVisible: false,
|
||||
pageForm: {
|
||||
year: moment().format('YYYY') + ""
|
||||
},
|
||||
formData: {
|
||||
year: null,
|
||||
planDate: [],
|
||||
note: null,
|
||||
},
|
||||
formRules: {
|
||||
year: [{required: true, message: '必选', trigger: ['blur', 'change']}],
|
||||
planDate: [{
|
||||
required: true,
|
||||
message: '必选',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
},
|
||||
tableColumns: [
|
||||
{prop: 'year', label: '年度'},
|
||||
{prop: 'startDate', label: '开始时间'},
|
||||
{prop: 'endDate', label: '结束时间'},
|
||||
{prop: 'createDate', label: "创建时间"},
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openView(row) {
|
||||
this.isView = true
|
||||
this.title = "查看计划"
|
||||
this.formData = {
|
||||
year: row.year,
|
||||
planDate: [row.startDate, row.endDate],
|
||||
note: row.note
|
||||
}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
openEdit(row) {
|
||||
this.isView = false
|
||||
this.title = "编辑计划"
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
year: row.year,
|
||||
planDate: [row.startDate, row.endDate],
|
||||
note: row.note
|
||||
}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
async doDelete(row) {
|
||||
const confirm = await this.$confirm('确定删除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === 'confirm') {
|
||||
const resp = await $.post(loc() + '/doDelete', {id: row.id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
doSubmit() {
|
||||
this.$refs["addForm"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
const formData = clone(this.formData)
|
||||
formData.startDate = formData.planDate[0]
|
||||
formData.endDate = formData.planDate[1]
|
||||
const resp = await $.post('/platform/zcgl/zcdj/plan/doSubmit', formData)
|
||||
if (resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
this.dialogVisible = false
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
openAdd() {
|
||||
this.title = "新增计划"
|
||||
this.formData = {
|
||||
year: moment().format('YYYY') + "",
|
||||
planDate: [],
|
||||
note: null
|
||||
}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -6,30 +6,36 @@ layout("/layouts/platform.html"){
|
||||
<guava ref="guava">
|
||||
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">状态名称</div>
|
||||
<div class="search-item-option">
|
||||
<el-input v-model="pageForm.categoryName" placeholder="请输入状态名称" clearable></el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable @keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型" style="width: 120px;">
|
||||
<el-option label="内容" value="content"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select v-model="pageForm.category" clearable placeholder="所属类别">
|
||||
<el-option v-for="item in categoryList" :label="item" :value="item"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
<el-button type="primary" @click="openAdd">
|
||||
<i class="ti-plus"></i>
|
||||
新增内容
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="状态列表" :app="this">
|
||||
<template #func>
|
||||
<el-button type="primary" size="small" @click="openAdd">
|
||||
<i class="ti-plus"></i>
|
||||
新增
|
||||
</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
<table-tool label="类别列表" :app="this"></table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" style="width: 100%">
|
||||
<el-table-column type="index" label="序号" width="80px"></el-table-column>
|
||||
<el-table-column
|
||||
@@ -41,6 +47,7 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" width="250">
|
||||
<template scope="{row}">
|
||||
@@ -55,17 +62,25 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
|
||||
<el-dialog
|
||||
:title="dialogTitle"
|
||||
title=""
|
||||
:visible.sync="dialogVisible"
|
||||
width="40%"
|
||||
:close-on-click-modal="false">
|
||||
|
||||
<el-form :model="formData" :rules="rules" ref="ruleForm" label-width="80px">
|
||||
<el-form :model="formData" :rules="rules" ref="ruleForm" label-width="120px">
|
||||
<el-form-item label="编码" prop="contentCode">
|
||||
<el-input v-model="formData.contentCode" maxlength="30" placeholder="编码" type="number"></el-input>
|
||||
<el-input v-model="formData.contentCode" maxlength="30" placeholder="编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态名称" prop="categoryName">
|
||||
<el-input v-model="formData.categoryName" maxlength="30" placeholder="状态名称"></el-input>
|
||||
<el-form-item label="内容" prop="content">
|
||||
<el-input v-model="formData.content" maxlength="30" placeholder="内容"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="折旧年限(年)" prop="depreciationYear">
|
||||
<el-input v-model="formData.depreciationYear" maxlength="30" placeholder="折旧年限(年)"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属类别" prop="content">
|
||||
<el-select v-model="formData.category" clearable placeholder="所属类别" style="width: 100%">
|
||||
<el-option v-for="item in categoryList" :label="item" :value="item"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -84,20 +99,29 @@ layout("/layouts/platform.html"){
|
||||
return {
|
||||
tableColumns: [
|
||||
{prop: 'contentCode', label: '编码'},
|
||||
{prop: 'categoryName', label: '状态名称'},
|
||||
{prop: 'content', label: '内容'},
|
||||
{prop: 'category', label: '所属类别'},
|
||||
{prop: 'depreciationYear', label: '折旧年限(年)'},
|
||||
],
|
||||
dialogVisible: false,
|
||||
categoryList: ['房屋及构筑物', '通用设备', '专用设备', '家具、用具及装具'],
|
||||
pageForm: {
|
||||
searchName: 'content'
|
||||
},
|
||||
rules: {
|
||||
contentCode: [{required: true, message: '请输入编码', trigger: ['change', 'blur']}],
|
||||
categoryName: [{required: true, message: '请输入状态名称', trigger: ['change', 'blur']}],
|
||||
content: [{required: true, message: '请输入内容', trigger: ['change', 'blur']}],
|
||||
category: [{required: true, message: '请选择所属类别', trigger: ['change', 'blur']}],
|
||||
depreciationYear: [{required: true, message: '请输入折旧年限', trigger: ['change', 'blur']}],
|
||||
},
|
||||
dialogTitle:'',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openEdit(row) {
|
||||
this.dialogTitle = '编辑状态'
|
||||
this.formData = clone(row)
|
||||
const data = clone(row)
|
||||
this.formData = data
|
||||
this.$set(this.formData, "oldContentCode", data.contentCode)
|
||||
this.$set(this.formData, "oldDepreciationYear", data.depreciationYear)
|
||||
this.dialogVisible = true
|
||||
},
|
||||
openAdd() {
|
||||
@@ -105,7 +129,6 @@ layout("/layouts/platform.html"){
|
||||
if (this.$refs['ruleForm']) {
|
||||
this.$refs['ruleForm'].resetFields()
|
||||
}
|
||||
this.dialogTitle = '新增状态'
|
||||
this.dialogVisible = true
|
||||
},
|
||||
async doDelete(id) {
|
||||
@@ -117,7 +140,7 @@ layout("/layouts/platform.html"){
|
||||
if (confirm === 'confirm') {
|
||||
const resp = await $.post(loc() + '/doDelete', {id})
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.$notify.success(resp.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
}
|
||||
@@ -125,14 +148,27 @@ layout("/layouts/platform.html"){
|
||||
async doEdit() {
|
||||
const valid = await this.$refs['ruleForm'].validate()
|
||||
if (valid) {
|
||||
const resp = await $.post(loc() + "/doEdit", this.formData)
|
||||
let resp = {}
|
||||
if (this.formData.oldDepreciationYear !== this.formData.depreciationYear) {
|
||||
const confirm = await this.$confirm('修改了折旧年限将会同步修改资产的折旧到期时间!是否修改?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === 'confirm') {
|
||||
resp = await $.post(loc() + "/doEdit", this.formData)
|
||||
}
|
||||
}
|
||||
resp = await $.post(loc() + "/doEdit", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.notifySuccess(resp.msg)
|
||||
this.doSearch()
|
||||
this.dialogVisible = false
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
async doAdd() {
|
||||
@@ -140,12 +176,13 @@ layout("/layouts/platform.html"){
|
||||
if (valid) {
|
||||
const resp = await $.post(loc() + "/doAdd", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.notifySuccess(resp.msg)
|
||||
this.doSearch()
|
||||
this.dialogVisible = false
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -160,4 +197,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
@@ -2,245 +2,323 @@
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.el-card {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<div class="p10">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<div id="zttj" style="width: 47%;height: 450px;display: inline-block;"></div>
|
||||
<div style="height: 400px;width: 1px;background-color: gainsboro;display: inline-block;"></div>
|
||||
<div id="jgtj" style="width: 47%;height: 450px;display: inline-block;"></div>
|
||||
<dict-select @change="data" code="zczt" placeholder="请选择资产状态" style="width: 20%"
|
||||
v-model="pageForm.zczt"></dict-select>
|
||||
</el-card>
|
||||
<!-- <el-card>
|
||||
<div id="fghtj" style="width: 100%;height: 450px;display: inline-block;"></div>
|
||||
</el-card>-->
|
||||
<el-card shadow="never">
|
||||
<div id="nftj" style="width: 100%;height: 450px;display: inline-block;"></div>
|
||||
|
||||
<el-card class="mt20" shadow="never">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:summary-method="getSummaries"
|
||||
header-align="center"
|
||||
ref="table"
|
||||
row-key="typeCode"
|
||||
show-summary
|
||||
style="width: 100%">
|
||||
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="分类" prop="type"></el-table-column>
|
||||
<el-table-column label="数量(台件)" prop="sl"></el-table-column>
|
||||
<el-table-column label="金额(元)" prop="je"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
</el-card>
|
||||
</div>
|
||||
</guava>
|
||||
|
||||
|
||||
<!-- <el-card>
|
||||
<div id="zttj" style="width: 47%;height: 450px;display: inline-block;"></div>
|
||||
<div style="height: 400px;width: 1px;background-color: gainsboro;display: inline-block;"></div>
|
||||
<div id="jgtj" style="width: 47%;height: 450px;display: inline-block;"></div>
|
||||
</el-card>
|
||||
<!– <el-card>
|
||||
<div id="fghtj" style="width: 100%;height: 450px;display: inline-block;"></div>
|
||||
</el-card>–>
|
||||
<el-card>
|
||||
<div id="nftj" style="width: 100%;height: 450px;display: inline-block;"></div>
|
||||
</el-card>-->
|
||||
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
data: function () {
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
zczt: "正常"
|
||||
},
|
||||
ghlist: [],
|
||||
nflist: []
|
||||
nflist: [],
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
},
|
||||
methods: {
|
||||
data: function () {
|
||||
var self = this;
|
||||
$.post(base + "/platform/zcgl/sjkb/data", function (data) {
|
||||
self.initZttj(data.data.zttj);
|
||||
var union = data.data.fghtj;
|
||||
var sl = []
|
||||
union.forEach(function (val) {
|
||||
self.ghlist.push(val.unionname);
|
||||
sl.push(val.sl)
|
||||
})
|
||||
var jg = data.data.jgtj[0];
|
||||
var jgsl = [];
|
||||
jgsl.push(jg.a);
|
||||
jgsl.push(jg.b);
|
||||
jgsl.push(jg.c);
|
||||
jgsl.push(jg.d);
|
||||
jgsl.push(jg.e);
|
||||
jgsl.push(jg.f);
|
||||
/* data: function () {
|
||||
var self = this;
|
||||
$.post(base + "/platform/zcgl/sjkb/data", function (data) {
|
||||
self.initZttj(data.data.zttj);
|
||||
var union = data.data.fghtj;
|
||||
var sl = []
|
||||
union.forEach(function (val) {
|
||||
self.ghlist.push(val.unionname);
|
||||
sl.push(val.sl)
|
||||
})
|
||||
var jg = data.data.jgtj[0];
|
||||
var jgsl = [];
|
||||
jgsl.push(jg.a);
|
||||
jgsl.push(jg.b);
|
||||
jgsl.push(jg.c);
|
||||
jgsl.push(jg.d);
|
||||
jgsl.push(jg.e);
|
||||
jgsl.push(jg.f);
|
||||
|
||||
var nf = data.data.nftj;
|
||||
var nfsl = []
|
||||
nf.forEach(function (val) {
|
||||
self.nflist.push(val.year);
|
||||
nfsl.push(val.sl);
|
||||
})
|
||||
//self.initFghtj(sl)
|
||||
self.initjgtj(jgsl);
|
||||
self.initNftj(nfsl);
|
||||
var nf = data.data.nftj;
|
||||
var nfsl = []
|
||||
nf.forEach(function (val) {
|
||||
self.nflist.push(val.year);
|
||||
nfsl.push(val.sl);
|
||||
})
|
||||
//self.initFghtj(sl)
|
||||
self.initjgtj(jgsl);
|
||||
self.initNftj(nfsl);
|
||||
|
||||
})
|
||||
},
|
||||
initZttj: function (data) {
|
||||
var self = this;
|
||||
var lmxjHj = echarts.init(document.getElementById("zttj"));
|
||||
var option = {
|
||||
title: {
|
||||
text: '固定资产状态统计',
|
||||
subtext: '',
|
||||
left: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: '{a} <br/>{b} : {c} ({d}%)'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'left',
|
||||
data: ['在用', '异地存放', '待报废', '已报废']
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '资产状态',
|
||||
type: 'pie',
|
||||
radius: '55%',
|
||||
center: ['50%', '60%'],
|
||||
data: [
|
||||
{value: data[0].zy, name: '在用'},
|
||||
{value: data[0].ydcf, name: '异地存放'},
|
||||
{value: data[0].dbf, name: '待报废'},
|
||||
{value: data[0].ybf, name: '已报废'}
|
||||
],
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
lmxjHj.setOption(option);
|
||||
})
|
||||
},
|
||||
initZttj: function (data) {
|
||||
var self = this;
|
||||
var lmxjHj = echarts.init(document.getElementById("zttj"));
|
||||
var option = {
|
||||
title: {
|
||||
text: '固定资产状态统计',
|
||||
subtext: '',
|
||||
left: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: '{a} <br/>{b} : {c} ({d}%)'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'left',
|
||||
data: ['在用', '闲置', '未使用', '待报废', '校外转入', '校内转入', '其它']
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '资产状态',
|
||||
type: 'pie',
|
||||
radius: '55%',
|
||||
center: ['50%', '60%'],
|
||||
data: [
|
||||
{value: data[0].zy, name: '在用'},
|
||||
{value: data[0].xz, name: '闲置'},
|
||||
{value: data[0].wsy, name: '未使用'},
|
||||
{value: data[0].dbf, name: '待报废'},
|
||||
{value: data[0].xwzr, name: '校外转入'},
|
||||
{value: data[0].xnzr, name: '校内转入'},
|
||||
{value: data[0].qt, name: '其它'}
|
||||
],
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
lmxjHj.setOption(option);
|
||||
|
||||
},
|
||||
initFghtj: function (data) {
|
||||
var dom = document.getElementById("fghtj");
|
||||
var myChart = echarts.init(dom);
|
||||
optionwwrstj = null;
|
||||
//加载柱状图
|
||||
optionwwrstj = {
|
||||
color: ['#3398DB'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '固定资产所属分工会统计',
|
||||
},
|
||||
grid: { // 控制图的大小,调整下面这些值就可以,
|
||||
x: 40,
|
||||
x2: 100,
|
||||
y2: 150,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: this.ghlist,
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
return value.split("").join("\n");
|
||||
},
|
||||
},
|
||||
initFghtj: function (data) {
|
||||
var dom = document.getElementById("fghtj");
|
||||
var myChart = echarts.init(dom);
|
||||
optionwwrstj = null;
|
||||
//加载柱状图
|
||||
optionwwrstj = {
|
||||
color: ['#3398DB'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '固定资产所属分工会统计',
|
||||
},
|
||||
grid: { // 控制图的大小,调整下面这些值就可以,
|
||||
x: 40,
|
||||
x2: 100,
|
||||
y2: 150,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: this.ghlist,
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
return value.split("").join("\n");
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
}
|
||||
},
|
||||
type: 'bar'
|
||||
}]
|
||||
};
|
||||
if (optionwwrstj && typeof optionwwrstj === "object") {
|
||||
myChart.setOption(optionwwrstj, true);
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
}
|
||||
},
|
||||
type: 'bar'
|
||||
}]
|
||||
};
|
||||
if (optionwwrstj && typeof optionwwrstj === "object") {
|
||||
myChart.setOption(optionwwrstj, true);
|
||||
}
|
||||
},
|
||||
initjgtj: function (data) {
|
||||
var dom = document.getElementById("jgtj");
|
||||
var myChart = echarts.init(dom);
|
||||
optionwwrstj = null;
|
||||
//加载柱状图
|
||||
optionwwrstj = {
|
||||
color: ['#3398DB'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '固定资产购置价格统计',
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ["2000以下", "2000-4000", "4000-6000", "6000-8000", "8000-10000", "10000以上"],
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
}
|
||||
},
|
||||
type: 'bar'
|
||||
}]
|
||||
};
|
||||
if (optionwwrstj && typeof optionwwrstj === "object") {
|
||||
myChart.setOption(optionwwrstj, true);
|
||||
}
|
||||
},
|
||||
initNftj: function (data) {
|
||||
var dom = document.getElementById("nftj");
|
||||
var myChart = echarts.init(dom);
|
||||
optionwwrstj = null;
|
||||
//加载柱状图
|
||||
optionwwrstj = {
|
||||
color: ['#3398DB'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '固定资产年度数量统计',
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: this.nflist,
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
}
|
||||
},
|
||||
type: 'line'
|
||||
}]
|
||||
};
|
||||
if (optionwwrstj && typeof optionwwrstj === "object") {
|
||||
myChart.setOption(optionwwrstj, true);
|
||||
}
|
||||
}*/
|
||||
async data() {
|
||||
const resp = await $.post(loc() + "/pageData", this.pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data
|
||||
}
|
||||
},
|
||||
initjgtj: function (data) {
|
||||
var dom = document.getElementById("jgtj");
|
||||
var myChart = echarts.init(dom);
|
||||
optionwwrstj = null;
|
||||
//加载柱状图
|
||||
optionwwrstj = {
|
||||
color: ['#3398DB'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '固定资产购置价格统计',
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ["2000以下", "2000-4000", "4000-6000", "6000-8000", "8000-10000", "10000以上"],
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
getSummaries(param) {
|
||||
const {columns, data} = param;
|
||||
const sums = [];
|
||||
columns.forEach((column, index) => {
|
||||
if (index === 0) {
|
||||
sums[index] = '合计';
|
||||
return;
|
||||
}
|
||||
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);
|
||||
if (!isNaN(value)) {
|
||||
return prev + curr;
|
||||
} else {
|
||||
return prev;
|
||||
}
|
||||
},
|
||||
type: 'bar'
|
||||
}]
|
||||
};
|
||||
if (optionwwrstj && typeof optionwwrstj === "object") {
|
||||
myChart.setOption(optionwwrstj, true);
|
||||
}
|
||||
},
|
||||
initNftj: function (data) {
|
||||
var dom = document.getElementById("nftj");
|
||||
var myChart = echarts.init(dom);
|
||||
optionwwrstj = null;
|
||||
//加载柱状图
|
||||
optionwwrstj = {
|
||||
color: ['#3398DB'],
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}, 0);
|
||||
if (index === 3) {
|
||||
sums[index] = sums[index].toFixed(2)
|
||||
sums[index] += ' 元';
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '固定资产年度数量统计',
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: this.nflist,
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
}
|
||||
},
|
||||
type: 'line'
|
||||
}]
|
||||
};
|
||||
if (optionwwrstj && typeof optionwwrstj === "object") {
|
||||
myChart.setOption(optionwwrstj, true);
|
||||
}
|
||||
if (index === 2) {
|
||||
sums[index] += ' 台件';
|
||||
}
|
||||
|
||||
} else {
|
||||
sums[index] = '';
|
||||
}
|
||||
});
|
||||
return sums;
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
created() {
|
||||
this.data();
|
||||
},
|
||||
mounted: function () {
|
||||
}
|
||||
,
|
||||
mounted() {
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -16,122 +16,117 @@ layout("/layouts/platform.html"){
|
||||
</style>
|
||||
<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"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 120px;">
|
||||
<el-option label="资产编号" value="xx.assetNumber"></el-option>
|
||||
<el-option label="资产名称" value="xx.assetName"></el-option>
|
||||
<el-option label="存放地" value="xx.storageLocation"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select clearable placeholder="查询类型" slot="prepend"
|
||||
style="width: 120px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="编号" value="zcbh"></el-option>
|
||||
<el-option label="名称" value="zcmc"></el-option>
|
||||
<el-option label="存放地" value="zccfdmc"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<dict-select v-model="pageForm.zczt" style="width: 100%" placeholder="请选择资产状态"
|
||||
code="zczt"></dict-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker
|
||||
end-placeholder="购置日期"
|
||||
format="yyyy 年 MM 月 dd 日"
|
||||
range-separator="-"
|
||||
start-placeholder="购置日期"
|
||||
type="daterange"
|
||||
v-model="time"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select clearable placeholder="请选择资产类型" v-model="pageForm.zcghlx">
|
||||
<el-option label="工会固定资产" value="2"></el-option>
|
||||
<el-option label="分工会固定资产" value="1"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5" v-if="pageForm.zcghlx==='1'">
|
||||
<el-select clearable placeholder="领用工会" style="width: 180px;"
|
||||
v-model="pageForm.ghid">
|
||||
<el-option :label="item.unionname" :value="item.id"
|
||||
v-for="item in ghlist"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">资产状态</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.assetStatus" slot="prepend"
|
||||
clearable
|
||||
@change="doSearch"
|
||||
placeholder="查询类型"
|
||||
style="width: 100%">
|
||||
<el-option v-for="item in lbList" :label="item.categoryName"
|
||||
:key="item.contentCode" :value="item.contentCode"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
<el-button @click="doAllExport" icon="el-icon-download" type="primary">总账导出
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">购置日期</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
v-model="purchaseTime"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
style="width: 100%;"
|
||||
start-placeholder="购置日期"
|
||||
end-placeholder="购置日期"
|
||||
format="yyyy年MM月dd日"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">入库日期</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
v-model="storageTime"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
style="width: 100%;"
|
||||
start-placeholder="购置日期"
|
||||
end-placeholder="购置日期"
|
||||
format="yyyy年MM月dd日"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<el-card class="mt20" shadow="never">
|
||||
<!--个人-->
|
||||
<el-table
|
||||
:data="tableData"
|
||||
header-align="center"
|
||||
style="width: 100%">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool label="资产列表" :app="this">
|
||||
<template #func>
|
||||
<el-button type="primary" size="small" @click="doAllExport" icon="el-icon-download">总账导出
|
||||
</el-button>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='zcghlx'">
|
||||
{{row.zcghlx==='1'?'院级工会':'校工会'}}
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" header-align="center" style="width: 100%">
|
||||
<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"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='assetStatusName'">
|
||||
<span style="color: #0e78c5;cursor: pointer">
|
||||
{{getAssetTypes(row.assetStatus)}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="操作"
|
||||
width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="viewInfo(scope)" size="mini" type="primary">查看
|
||||
</el-button><!--
|
||||
<el-button @click="doExport(scope.row.zcid)" size="mini" type="primary">导出
|
||||
</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</el-table>
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-size="pageForm.pageSize"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:total="pageForm.totalCount"
|
||||
@current-change="pageNumberChange"
|
||||
@size-change="pageSizeChange"
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-table-column
|
||||
width="200"
|
||||
label="操作"
|
||||
header-align="center"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="viewInfo(scope)">查看</el-button>
|
||||
<!--<el-button size="mini" type="primary" @click="doExport(scope.row.id)">导出</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<asset-management ref="asset"></asset-management>
|
||||
<zc-info ref="zcInfo"></zc-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
@@ -141,112 +136,90 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
searchName: "xx.assetName",
|
||||
searchKeyword: "",
|
||||
assetStatus:'',
|
||||
purchaseDate : '',
|
||||
storageDate:'',
|
||||
searchName: "zcmc",
|
||||
zczt: "",
|
||||
startTime: "",
|
||||
endTime: "",
|
||||
zcghlx: "",
|
||||
ghid: ''
|
||||
},
|
||||
viewData: {},
|
||||
zcid: "",
|
||||
ghlist: [],
|
||||
time: [],
|
||||
tableColumns: [
|
||||
{prop: 'assetNumber', label: '编号', sortable: true},
|
||||
{prop: 'assetName', label: '名称', sortable: true},
|
||||
{prop: 'financeSixName', label: '财政六大类名称', sortable: true,checked: 0},
|
||||
{prop: 'assetModel', label: '型号', sortable: true},
|
||||
{prop: 'originalValue', label: '原值', sortable: true},
|
||||
// {prop: 'purchaseDate', label: '购置日期', sortable: true},
|
||||
{prop: 'storageDate', label: '入库日期', sortable: true},
|
||||
{prop: 'minimumUsageYear', label: '最低使用年限', sortable: true},
|
||||
{prop: 'yearsAndMonths', label: '已使用年限', sortable: true},
|
||||
{prop: 'assetStatusName', label: '当前状态', sortable: true},
|
||||
{prop: 'recipientUsername', label: '领用人', sortable: true},
|
||||
{prop: 'remark', label: '备注', sortable: true},
|
||||
{prop: 'zcbh', label: '资产编号'},
|
||||
{prop: 'zcmc', label: '资产名称'},
|
||||
{prop: 'zcxh', label: '资产规格型号'},
|
||||
{prop: 'content', label: '资产所属类别'},
|
||||
{prop: 'zcgzrq', label: '购置日期'},
|
||||
{prop: 'zclyrname', label: '领用人'},
|
||||
{prop: 'zclydwh', label: '领用单位'},
|
||||
{prop: 'fundingSubject', label: '经费科目'},
|
||||
{prop: 'zczt', label: '资产状态'},
|
||||
{prop: 'zcghlx', label: '资产类型'},
|
||||
],
|
||||
purchaseTime: [],
|
||||
storageTime: [],
|
||||
lbList: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'asset-management': httpVueLoader('/components/zgfw/zcgl/AssetManagement.vue?v=1.0.2'),
|
||||
'zc-info': httpVueLoader('/components/zcgl/zcInfo.vue?v=' + new Date().getTime()),
|
||||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
|
||||
},
|
||||
methods: {
|
||||
getAssetTypes(assetTypes) {
|
||||
if (assetTypes) {
|
||||
const c = JSON.parse(assetTypes)
|
||||
return this.lbList.filter(item =>
|
||||
c.includes(item.contentCode))
|
||||
.map(item => item.categoryName).join(',')
|
||||
}
|
||||
return null
|
||||
},
|
||||
doAllExport() {
|
||||
const {searchKeyword, searchName , assetStatus } = this.pageForm
|
||||
//购置时间
|
||||
let purchaseStartTime = ''
|
||||
let purchaseEndTime = ''
|
||||
if (this.purchaseTime && this.purchaseTime.length > 0) {
|
||||
purchaseStartTime = this.purchaseTime[0];
|
||||
purchaseEndTime = this.purchaseTime[1];
|
||||
const {searchKeyword, searchName, zczt, zcghlx, ghid} = this.pageForm
|
||||
let startTime = ''
|
||||
let endTime = ''
|
||||
if (this.time && this.time.length > 0) {
|
||||
startTime = this.time[0];
|
||||
endTime = this.time[1];
|
||||
}
|
||||
//入库时间
|
||||
let storageStartTime = ''
|
||||
let storageEndTime = ''
|
||||
if (this.storageTime && this.storageTime.length > 0) {
|
||||
storageStartTime = this.storageTime[0];
|
||||
storageEndTime = this.storageTime[1];
|
||||
}
|
||||
|
||||
window.open('/platform/zcgl/zhcx/doExport?searchName=' + searchName + '&searchKeyword=' + searchKeyword +
|
||||
'&assetStatus=' + assetStatus + '&purchaseStartTime=' + purchaseStartTime + '&purchaseEndTime=' + purchaseEndTime +
|
||||
'&storageStartTime=' + storageStartTime + '&storageEndTime=' + storageEndTime)
|
||||
|
||||
// window.location.href = '/platform/zcgl/zhcx/doExport?searchKeyword=' + searchKeyword +
|
||||
// '&searchName=' + searchName +
|
||||
// '&zczt=' + zczt +
|
||||
// '&zcghlx=' + zcghlx +
|
||||
// "&ghid=" + ghid +
|
||||
// '&startTime=' + startTime +
|
||||
// '&endTime=' + endTime
|
||||
window.location.href = '/platform/zcgl/zhcx/doExport?searchKeyword=' + searchKeyword +
|
||||
'&searchName=' + searchName +
|
||||
'&zczt=' + zczt +
|
||||
'&zcghlx=' + zcghlx +
|
||||
"&ghid=" + ghid +
|
||||
'&startTime=' + startTime +
|
||||
'&endTime=' + endTime
|
||||
},
|
||||
|
||||
doExport(id) {
|
||||
window.location.href = '/platform/zcgl/tzgl/downloadrzd?id=' + id
|
||||
},
|
||||
doSearch() {
|
||||
if (this.purchaseTime && this.purchaseTime.length > 0) {
|
||||
this.pageForm.purchaseStartTime = this.purchaseTime[0];
|
||||
this.pageForm.purchaseEndTime = this.purchaseTime[1];
|
||||
if (!this.time) {
|
||||
this.pageForm.startTime = this.time[0];
|
||||
this.pageForm.endTime = this.time[1];
|
||||
} else {
|
||||
this.pageForm.purchaseStartTime = null;
|
||||
this.pageForm.purchaseEndTime = null;
|
||||
this.pageForm.startTime = null;
|
||||
this.pageForm.endTime = null;
|
||||
}
|
||||
|
||||
if (this.storageTime && this.storageTime.length > 0) {
|
||||
this.pageForm.storageStartTime = this.storageTime[0];
|
||||
this.pageForm.storageEndTime = this.storageTime[1];
|
||||
} else {
|
||||
this.pageForm.storageStartTime = null;
|
||||
this.pageForm.storageEndTime = null;
|
||||
}
|
||||
|
||||
this.pageForm.pageNumber = 1;
|
||||
this.pageData();
|
||||
},
|
||||
async getAllAsseStatus() {
|
||||
const resp = await $.post("/platform/zcgl/zclb/queryLb")
|
||||
if (resp.code === 0) {
|
||||
this.lbList = resp.data
|
||||
}
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
$.post("/platform/zcgl/zhcx/data", 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");
|
||||
},
|
||||
viewInfo(scope) {
|
||||
this.$refs.asset.getInfo(scope.row.id)
|
||||
|
||||
async viewInfo(scope) {
|
||||
this.$refs.guava.view()
|
||||
await this.$refs.zcInfo.findOne(scope.row.zcid)
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.pageData();
|
||||
await this.getAllAsseStatus();
|
||||
this.ghlist = await getUnions(null)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -9,51 +9,64 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker
|
||||
placeholder="年度"
|
||||
value-format="yyyy"
|
||||
format="yyyy年"
|
||||
placeholder="年度"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
type="year">
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable @keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型" style="width: 120px;">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend" style="width: 120px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="内容" value="zcmc"></el-option>
|
||||
<el-option label="编号" value="zcbh"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select v-model="pageForm.contentCode" clearable placeholder="所属类别">
|
||||
<el-option v-for="item in lbList" :label="item.content+'('+item.contentCode+')'"
|
||||
:value="item.contentCode"></el-option>
|
||||
<el-select clearable placeholder="所属类别" v-model="pageForm.contentCode">
|
||||
<el-option :label="item.content+'('+item.contentCode+')'"
|
||||
:value="item.contentCode"
|
||||
v-for="item in lbList"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
|
||||
<el-button @click="doSearch();getZcMoney()" icon="el-icon-search" type="primary">
|
||||
搜索
|
||||
</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="资产折旧信息" :app="this"></table-tool>
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="资产折旧信息">
|
||||
<template #func>
|
||||
<span style="color: #1867B0;font-weight: bold">
|
||||
现固定资产原值为{{zcMoney.allMoney}}元,累计折旧{{zcMoney.depreciationMoney}}元,固定资产净值{{zcMoney.surplusMoney}}元。
|
||||
</span>
|
||||
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" style="width: 100%">
|
||||
<el-table-column type="index" label="序号" width="80px"></el-table-column>
|
||||
<el-table-column label="序号" type="index" 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"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" width="150">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="danger" @click="doDelete(row.id)">删除</el-button>
|
||||
<el-button @click="doDelete(row.zjjlId)" size="mini" type="danger">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -71,6 +84,7 @@ layout("/layouts/platform.html"){
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
zcMoney: {},
|
||||
pageForm: {
|
||||
searchName: 'zcmc'
|
||||
},
|
||||
@@ -78,17 +92,25 @@ layout("/layouts/platform.html"){
|
||||
tableColumns: [
|
||||
{prop: 'zcbh', label: '编号'},
|
||||
{prop: 'zcmc', label: '名称'},
|
||||
{prop: 'zcxh', label: '型号规格'},
|
||||
{prop: 'zcxh', label: '资产规格型号'},
|
||||
{prop: 'content', label: '资产所属类别'},
|
||||
{prop: 'zcgzrq', label: '购置日期'},
|
||||
{prop: 'zcrksj', label: '入库日期'},
|
||||
{prop: 'zdrDepreciationDate', label: '折旧到期时间'},
|
||||
{prop: 'surplus', label: '折旧到期时间(月)'},
|
||||
{prop: 'zdrSurplusMoney', label: '剩余价值(元)'},
|
||||
{prop: 'operationTime', label: '折旧时间'},
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getZcMoney() {
|
||||
const resp = await $.get("/platform/zcgl/zjlb/getZcMoney", {
|
||||
contentCode: this.pageForm.contentCode
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.zcMoney = resp.data
|
||||
}
|
||||
},
|
||||
async doDelete(id) {
|
||||
const confirm = await this.$confirm('确定要删除当前折旧信息吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
@@ -96,7 +118,7 @@ layout("/layouts/platform.html"){
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const data = await $.post(loc()+"/doDelete", {id:id})
|
||||
const data = await $.post(loc() + "/doDelete", {id: id})
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
@@ -116,6 +138,7 @@ layout("/layouts/platform.html"){
|
||||
const data = await $.post("/platform/zcgl/zclb/queryLb")
|
||||
this.lbList = data.data
|
||||
this.pageData()
|
||||
await this.getZcMoney()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -123,4 +146,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
Reference in New Issue
Block a user