This commit is contained in:
2026-09-09 16:16:22 +08:00
parent ebffbab428
commit ba3a985c40
3749 changed files with 29 additions and 608551 deletions
-102
View File
@@ -1,102 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
.van-cell {
font-size: 12px !important;
}
</style>
<div id="app" v-cloak>
<van-nav-bar
title="提案详情"
left-arrow
placeholder
fixed
@click-left="history.back()"
></van-nav-bar>
<div style="padding-top: 20px">
<van-collapse v-model="activeNames">
<van-collapse-item title="提案基本信息" name="1">
<van-cell title="提案名称">
<div>
{{tableData.proposalName}}
</div>
</van-cell>
<van-cell title="提案人">
<div>
{{tableData.createUserName}}
</div>
</van-cell>
<van-cell title="所在部门">
<div>
{{tableData.unionName}}
</div>
</van-cell>
<van-cell title="提案类型">
<div>
{{tableData.typeName}}
</div>
</van-cell>
<van-cell title="立案结果">
<span>{{tableData.resultName ? tableData.resultName : '暂无'}}</span>
</van-cell>
<van-cell title="附议人">
<div>
<span v-if="!tableData.seconded">暂无</span>
<span v-else v-for="(item,index) in tableData.seconded">
{{ item.username }}
{{ index + 1 === tableData.seconded.length ? '' : '、' }}
</span>
</div>
</van-cell>
<van-collapse v-model="ayActiveNames" border="false">
<van-collapse-item title="案由" name="1">
<div v-html="tableData.brief"></div>
</van-collapse-item>
</van-collapse>
<van-collapse v-model="jyActiveNames" border="false">
<van-collapse-item title="建议或措施" name="1">
<div v-html="tableData.measures"></div>
</van-collapse-item>
</van-collapse>
</van-collapse-item>
</van-collapse>
</div>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
ayActiveNames: [],
jyActiveNames: [],
activeNames: ['1'],
tableData: {}
}
},
methods: {
checkParams() {
if (GetQueryString('id') === '') {
vant.Toast.fail('参数不合法');
return false
}
return true
}
},
created() {
if (this.checkParams()) {
$.post('/platform/mobile/proposal/compose/findOne', {id: GetQueryString('id')}).then(res => {
if (res.code === 0) {
this.tableData = res.data
}
})
}
}
})
</script>
<!--#
}
#-->
-290
View File
@@ -1,290 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
#app {
height: 100%;
}
.cell-card {
padding: 20px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
width: 90%;
margin: 20px auto;
border-radius: 20px;
}
.text-overflow {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.handleicon {
width: 50%;
text-align: center;
}
</style>
<div id="app" v-cloak>
<van-nav-bar
title="提案列表"
left-arrow
placeholder
fixed
@click-left="location.href='/mobile/index'"
></van-nav-bar>
<van-search
v-model="pageForm.searchKeyWord"
shape="round"
maxlength="10"
@search="doSearch"
placeholder="请输入提案名称或者提案编号进行查询"
>
</van-search>
<van-dropdown-menu>
<van-dropdown-item v-model="pageForm.sessionId" :options="sessionList" @change="doSearch"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.delegationId" :options="delegationList"
@change="doSearch"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.proposalTypeId" :options="proposalTypeList"
@change="doSearch"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.proposalResultCode" :options="resultList"
@change="doSearch"></van-dropdown-item>
</van-dropdown-menu>
<van-tabs v-model="active" @click="onClickActive">
<van-tab title="未审核">
<div>
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad"
>
<van-cell v-for="o in tableData" class="cell-card" @click="openView(o.id,o.secondedId)">
<div style="display: flex">
<div style="width: 75%">
<div class="text-overflow" style="font-weight: bold;color: #409EFF">
{{o.proposalName}}
</div>
<div style="font-size: 12px">编号:{{o.proposalCode}}</div>
<div style="font-size: 12px">附议人:{{o.secondedUserName}}</div>
<div style="font-size: 12px">教代会届次:{{o.meetingName}}</div>
<div style="font-size: 12px">代表团:{{o.delegationName}}</div>
</div>
<div style="width: 25%;display: flex;align-items: center;">
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</div>
</div>
<van-divider></van-divider>
<div style="display: flex;font-size: 12px">
<div style="width: 38%">
<div style="color: gray">教代会届次</div>
<div class="text-overflow ">{{o.meetingName}}</div>
</div>
<div style="width: 38%">
<div style="color: gray">提案类型</div>
<div class="text-overflow">{{o.typeName}}</div>
</div>
<div style="width: 23%">
<div style="color: gray">立案结果</div>
<div class="text-overflow">{{ o.resultName ? o.resultName : '暂无' }}</div>
</div>
</div>
</van-cell>
</van-list>
<van-empty
v-if="tableData.length==0"
class="custom-image"
image="/none.svg"
description="暂无数据"
></van-empty>
</div>
</van-tab>
<van-tab title="已审核">
<div>
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad"
>
<van-cell v-for="o in tableData" class="cell-card" @click="openView(o.id,o.secondedId)">
<div style="display: flex">
<div style="width: 75%">
<div class="text-overflow" style="font-weight: bold;color: #409EFF">
{{o.proposalName}}
</div>
<div style="font-size: 12px">编号:{{o.proposalCode}}</div>
<div style="font-size: 12px">附议人:{{o.secondedUserName}}</div>
<div style="font-size: 12px">教代会届次:{{o.meetingName}}</div>
<div style="font-size: 12px">代表团:{{o.delegationName}}</div>
</div>
<div style="width: 25%;display: flex;align-items: center;">
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</div>
</div>
<van-divider></van-divider>
<div style="display: flex;font-size: 12px">
<div style="width: 38%">
<div style="color: gray">教代会届次</div>
<div class="text-overflow ">{{o.meetingName}}</div>
</div>
<div style="width: 38%">
<div style="color: gray">提案类型</div>
<div class="text-overflow">{{o.typeName}}</div>
</div>
<div style="width: 23%">
<div style="color: gray">立案结果</div>
<div class="text-overflow">{{ o.resultName ? o.resultName : '暂无' }}</div>
</div>
</div>
</van-cell>
</van-list>
<van-empty
v-if="tableData.length==0"
class="custom-image"
image="/none.svg"
description="暂无数据"
></van-empty>
</div>
</van-tab>
</van-tabs>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
active: 0,
pageForm: {
isAudit: false
},
list: [],
state: '0',
loading: false,
finished: false,
refreshing: false,
sessionList: [],
delegationList: [],
proposalTypeList: [],
resultList: [],
isAuditList: [
{"text": "未审核", "value": false},
{"text": "已审核", "value": true}]
}
},
methods: {
async onRefresh() {
this.tableData = []
this.pageForm = {
pageNumber: 1,
pageSize: 5,
totalCount: 0
}
await this.onLoad()
setTimeout(() => {
this.refreshing = false
}, 1000)
},
doSearch() {
this.onLoad()
},
onClickActive(name) {
this.$set(this.pageForm, "isAudit", name)
this.onLoad()
},
async onLoad() {
this.tableData = []
this.loading = true
$.post('/platform/mobile/proposal/seconded/pageData', this.pageForm).then(res => {
this.loading = false
if (res.code === 0) {
this.tableData = this.tableData.concat(res.data.list)
if (this.tableData.length === res.data.totalCount) {
this.finished = true
} else {
this.finished = true
this.pageForm.pageNumber++
}
}
})
},
doAudit(flag, row) {
const {id, secondedId} = row
let res = flag === true ? '通过' : '拒绝'
vant.Dialog.confirm({
title: '提示',
message: '您确定' + res + '吗?',
}).then(() => {
$.post('/platform/proposal/transact/seconded/doAudit', {
secondedId: secondedId,
proposalId: id,
flag: flag
}).then(res => {
if (res.code === 0) {
this.pageForm = {
pageNumber: 1,
pageSize: 5,
totalCount: 0
}
this.tableData = []
this.onLoad()
vant.Toast.success('提交成功!')
}
})
}).catch(() => {
})
},
openView(id, secondedId) {
// window.location.href = '/platform/mobile/proposal/compose/detail?id=' + id
window.location.href = '/platform/mobile/proposal/seconded/view?biz_key=' + secondedId + '&proposal_id=' + id + '&mobile=' + true
}
},
async created() {
this.sessionList = await mProposal.getAllSession()
const a = await getProposalType()
if (a) {
a.forEach(v => {
this.proposalTypeList.push({"text": v.typeName, "value": v.id})
})
this.proposalTypeList.unshift({"text": "所有类型", "value": null})
this.$set(this.pageForm, "proposalTypeId", this.proposalTypeList[0].value)
}
if (this.sessionList && this.sessionList.length > 0) {
this.$set(this.pageForm, "sessionId", this.sessionList[0].value)
this.delegationList = await mProposal.getDelegation(this.pageForm.sessionId)
if (this.delegationList) {
this.$set(this.pageForm, "delegationId", this.delegationList[0].value)
}
}
const aa = await getDictOptions("proposal_result")
console.log(aa)
if (a) {
aa.forEach(v => {
this.resultList.push({"text": v.name, "value": v.code})
})
this.resultList.unshift({"text": "所有结果", "value": null})
this.$set(this.pageForm, "proposalResultCode", this.resultList[0].value)
}
},
})
</script>
<!--#
}
#-->
-172
View File
@@ -1,172 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
#app {
height: 100%;
}
.cell-card {
padding: 20px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
width: 90%;
margin: 20px auto;
border-radius: 20px;
}
.text-overflow {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
</style>
<div id="app" v-cloak>
<van-nav-bar
title="个人提案"
left-arrow
placeholder
fixed
@click-left="history.back()"
></van-nav-bar>
<div>
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad">
<van-cell v-for="o in tableData" class="cell-card">
<div style="width: 100%;display: flex;flex-direction:row">
<div class="text-overflow" style="font-weight: bold;color: #409EFF;width: calc(100% - 50px)"
@click="openView(o.id)">
{{o.proposalName}}
</div>
<div v-if="o.stateCode==100&&!config.isAutoSubmit" @click="doSubmit(o)"
style="width: 50px;display: flex;flex-direction:column;align-items: center;justify-content: center;font-size: 20px;color: #409EFF">
<van-icon name="share"/>
<div style="font-size: 8px">提交</div>
</div>
</div>
<div style="font-size: 12px">编号:{{o.proposalCode}}</div>
<van-divider></van-divider>
<div style="display: flex;font-size: 12px">
<div style="width: 38%">
<div style="color: gray">教代会届次</div>
<div class="text-overflow">{{o.meetingName}}</div>
</div>
<div style="width: 38%">
<div style="color: gray">提案类型</div>
<div class="text-overflow">{{o.typeName}}</div>
</div>
<div style="width: 23%">
<div style="color: gray">提案状态</div>
<div class="text-overflow">{{o.stateName}}</div>
</div>
</div>
</van-cell>
</van-list>
</van-pull-refresh>
<van-empty
v-if="tableData.length==0"
class="custom-image"
image="/none.svg"
description="暂无数据"
></van-empty>
</div>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
list: [],
config: [],
loading: false,
finished: false,
refreshing: false,
pageForm: {
pageNumber: 1,
pageSize: 5,
totalCount: 0
},
tableData: []
}
},
methods: {
async doSubmit(row) {
vant.Dialog.confirm({
title: '提示',
message: '是否提交提案?',
})
.then(async () => {
const toast = vant.Toast.loading({
duration: 0,
forbidClick: true,
message: '正在提交...',
});
const {code, msg} = await $.post('/platform/proposal/transact/compose/doSubmit', {
id: row.id,
mannerCode: row.mannerCode
})
if (code === 0) {
toast.icon = 'success'
toast.message = '提交成功'
await this.onRefresh()
} else {
toast.icon = 'fail'
toast.message = msg
}
setTimeout(() => {
vant.Toast.clear();
}, 500)
});
},
async onRefresh() {
this.tableData = []
this.pageForm = {
pageNumber: 1,
pageSize: 5,
totalCount: 0
}
await this.onLoad()
setTimeout(() => {
this.refreshing = false
}, 1000)
},
async onLoad() {
this.loading = true
$.post('/platform/mobile/proposal/compose/pageData', this.pageForm).then(res => {
this.loading = false
if (res.code === 0) {
this.tableData = this.tableData.concat(res.data.list)
if (this.tableData.length === res.data.totalCount) {
this.finished = true
} else {
this.pageForm.pageNumber++
}
}
})
},
openView(id) {
window.location.href = '/platform/mobile/proposal/compose/detail?id=' + id
}
},
async created() {
this.config = await getProposalConfig()
console.log(this.config)
}
})
</script>
<!--#
}
#-->