提交一部分民政评分新版
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<section class="AiTabPanes" :style="{background}">
|
<section class="AiTabPanes" :class="{white}" :style="{background}">
|
||||||
<div class="item" :class="{active:value==i}" v-for="(item, i) in tabs" :key="i"
|
<div class="item" :class="{active:value==i}" v-for="(item, i) in tabs" :key="i"
|
||||||
@click="handleClick(item,i)">{{ item }}
|
@click="handleClick(item,i)">{{ getLabel(item) }}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
@@ -19,9 +19,13 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
value: {default: ""},
|
value: {default: ""},
|
||||||
tabs: {default: () => []},
|
tabs: {default: () => []},
|
||||||
background: {default: ""}
|
background: {default: ""},
|
||||||
|
white: Boolean
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getLabel(item) {
|
||||||
|
return item?.label || item
|
||||||
|
},
|
||||||
handleClick(item, index) {
|
handleClick(item, index) {
|
||||||
this.$emit("change", index)
|
this.$emit("change", index)
|
||||||
this.$emit("click", item)
|
this.$emit("click", item)
|
||||||
@@ -63,5 +67,22 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.white {
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
color: #666;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: #000;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
background: #3399FF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"open": true,
|
"open": true,
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"/lan": {
|
"/lan": {
|
||||||
"target": "http://dvcp.sinoecare.net",
|
"target": "http://192.168.1.105:19000",
|
||||||
"changeOrigin": true,
|
"changeOrigin": true,
|
||||||
"pathRewrite": {
|
"pathRewrite": {
|
||||||
"^/lan": "/"
|
"^/lan": "/"
|
||||||
|
|||||||
116
src/project/hljmz/AppRecoScore/AppRecoScore.vue
Normal file
116
src/project/hljmz/AppRecoScore/AppRecoScore.vue
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
<template>
|
||||||
|
<section class="AppRecoScore">
|
||||||
|
<div class="banner">
|
||||||
|
省民政厅公务员平时考核系统
|
||||||
|
</div>
|
||||||
|
<AiTabPanes :tabs="tabs" v-model="search.type" white @change="handChangeTab"/>
|
||||||
|
<AiGroup>
|
||||||
|
<div v-for="item in list" :key="item.id" class="listItem pad-r32" flex @click="handleDetail(item.id)">
|
||||||
|
<div class="fill mar-r20">
|
||||||
|
<h3 class="mar-b8" v-text="item.templateName"/>
|
||||||
|
<div class="sub" v-text="item.taskTitle"/>
|
||||||
|
</div>
|
||||||
|
<div class="status" :class="{finish:item.unfinishedCount==0}">{{ item.unfinishedCount == 0 ? '已完成' : '尚未完成' }}</div>
|
||||||
|
</div>
|
||||||
|
</AiGroup>
|
||||||
|
<AiEmpty class="pad-t96" v-if="!list.length"/>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "AppRecoScore",
|
||||||
|
appName: "考核系统",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
current: 1,
|
||||||
|
total: 0,
|
||||||
|
list: [],
|
||||||
|
tabs: ["待我填写", "已提交", "待我审核"],
|
||||||
|
search: {type: "0"},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handChangeTab() {
|
||||||
|
this.current = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
const {current, total, list} = this
|
||||||
|
if (current == 1 || list.length < total) {
|
||||||
|
current == 1 && (this.list = [])
|
||||||
|
this.getTasks()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getTasks() {
|
||||||
|
const {current, search} = this
|
||||||
|
this.$http.post("/app/appassessmentscorev2task/myTaskList", null, {
|
||||||
|
params: {size: 999, current, ...search}
|
||||||
|
}).then(res => {
|
||||||
|
if (res?.data) {
|
||||||
|
this.list = [this.list, res.data.records].flat().filter(Boolean)
|
||||||
|
this.total = res.data.total
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleDetail(id) {
|
||||||
|
uni.navigateTo({url: "./astDetail?id=" + id})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.current = 1
|
||||||
|
this.getList()
|
||||||
|
document.title = this.$options.appName
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.current++
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.AppRecoScore {
|
||||||
|
background: #f5f5f5;
|
||||||
|
font-size: 28px;
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
height: 240px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 40px;
|
||||||
|
background-image: url("https://cdn.cunwuyun.cn/AppAssessmentScoreTask/banner.png");
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listItem {
|
||||||
|
height: 160px;
|
||||||
|
justify-content: space-between;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
|
||||||
|
.sub {
|
||||||
|
font-size: 26px;
|
||||||
|
color: #3975C6;
|
||||||
|
line-height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > h3 {
|
||||||
|
font-size: 32px;
|
||||||
|
color: #333;
|
||||||
|
line-height: 44px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #FFA938;
|
||||||
|
|
||||||
|
&.finish {
|
||||||
|
color: #1CCEB0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
108
src/project/hljmz/AppRecoScore/astDetail.vue
Normal file
108
src/project/hljmz/AppRecoScore/astDetail.vue
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<template>
|
||||||
|
<section class="astDetail">
|
||||||
|
<AiGroup left="48" class="header mar-b16">
|
||||||
|
<h3 flex class="mar-b8">{{ detail.templateName }}</h3>
|
||||||
|
<div class="color-999">开始日期:{{ $dateFormat(detail.beginTime, "YYYY-MM-DD HH:mm") }}</div>
|
||||||
|
<div class="color-999">截止日期:{{ $dateFormat(detail.endTime, "YYYY-MM-DD HH:mm") }}</div>
|
||||||
|
</AiGroup>
|
||||||
|
<AiGroup title="参评人员" description class="pad-t32">
|
||||||
|
<div flex class="pad-r32 pad-t16 pad-b16" v-for="item in list" :key="item.id" @click="handleScore(item)">
|
||||||
|
<div flex class="fill">
|
||||||
|
<AiImage class="mar-r32 circle avatar" :src="item.evaluatorsAvatar"/>
|
||||||
|
<div>
|
||||||
|
<h4>{{ item.evaluatorsName }}</h4>
|
||||||
|
<div class="color-999">{{ item.evaluatorsDepartments }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="result" :class="{finish:!item.fillable}" v-text="item.resultLabel"/>
|
||||||
|
</div>
|
||||||
|
<AiEmpty class="pad-b32" v-if="!list.length"/>
|
||||||
|
</AiGroup>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "astDetail",
|
||||||
|
appName: "考核评分",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
detail: {},
|
||||||
|
current: 1,
|
||||||
|
total: 0,
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetail() {
|
||||||
|
const {id} = this.$route.query
|
||||||
|
return this.$http.post("/app/appassessmentscortask/taskTemplateDetail", null, {
|
||||||
|
params: {id}
|
||||||
|
}).then(res => {
|
||||||
|
if (res?.data) {
|
||||||
|
this.detail = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
const {id} = this.$route.query,
|
||||||
|
{current, list, total} = this
|
||||||
|
if (current == 1 || list.length < total) {
|
||||||
|
current == 1 && (this.list = [])
|
||||||
|
this.$http.post("/app/appassessmentscortask/myScoreList", null, {
|
||||||
|
params: {id, size: 999, current}
|
||||||
|
}).then(res => {
|
||||||
|
if (res?.data) {
|
||||||
|
res.data.records.map(e => {
|
||||||
|
e.fillable = !e.commitTime && this.detail.status == 1
|
||||||
|
e.resultLabel = !!e.commitTime ? `${e.totalScore || 0}分` : e.fillable ? "去填报" : "未填报"
|
||||||
|
})
|
||||||
|
this.list = [this.list, res.data.records].flat().filter(Boolean)
|
||||||
|
this.total = res.data.total
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleScore(item) {
|
||||||
|
if (this.detail.status == 1) {
|
||||||
|
const {id, templateId: tid} = item
|
||||||
|
uni.navigateTo({url: `/apps/AppAskForm/AppForm?id=${id}&tid=${tid}&from=AppAssessmentScoreTask` + (!item.fillable ? '&result=1' : '')})
|
||||||
|
} else {
|
||||||
|
this.$u.toast("任务未开始或已结束,无法填报!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
document.title = this.$options.appName
|
||||||
|
this.current = 1
|
||||||
|
this.getDetail().then(this.getList)
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.current++
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.astDetail {
|
||||||
|
background: #f5f5f5;
|
||||||
|
|
||||||
|
.header {
|
||||||
|
padding: 32px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 40px;
|
||||||
|
min-height: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.result {
|
||||||
|
color: #FFA938;
|
||||||
|
|
||||||
|
&.finish {
|
||||||
|
color: #2C51CE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user