Merge remote-tracking branch 'origin/dev_20231201_feizhi' into dev_20231201_feizhi

This commit is contained in:
zhoulingpo
2023-12-06 15:29:08 +08:00
4 changed files with 369 additions and 12 deletions
@@ -0,0 +1,146 @@
<template>
<PhoneScroll
height="calc(100vh - 101px)"
:data="list"
:page="searchQuery.page"
:pageSize="searchQuery.size"
:total="total"
:loading="loading"
pullUpLoad
pullDownRefresh
:getDataHandler="getData">
<div style="padding-top: 10px">
<div class="card-content" v-for="item in list" :key="item.id" @click="jumpDetails(item)">
<div class="standTitle">
<div class="title">{{ item.cid }}</div>
</div>
<div class="standContent">
<div class="standState">{{ item.standardName }}</div>
<div class="standState">
标准/政策: <span style="color: #35720B; padding-left: 5px;">{{ item.category }}</span>
</div>
</div>
<div class="timeFooter">
<div style="width: 50%">开始日期: <span style="padding-left: 5px;">{{ convertTime(item.startTime) }}</span></div>
<div style="width: 50%">结束日期: <span style="padding-left: 5px;">{{ convertTime(item.endTime) }}</span></div>
</div>
</div>
</div>
</PhoneScroll>
</template>
<script>
import PhoneScroll from "@/components/hzwlComponents/phone/PhoneScroll";
export default {
name: "SolicitOpinions",
components: {
PhoneScroll
},
data() {
return {
searchQuery: {
page: 1,
size: 10,
},
total: 0,
list: [],
loading: false,
}
},
created() {
this.getData()
},
methods: {
convertTime (time) {
return time !== '' ? this.$moment(time).format('YYYY-MM-DD') : '-'
},
getData (page) {
return new Promise((resolve, reject) => {
const config = {
_this: this,
loading: 'loading'
}
if (page) {
this.searchQuery.page = page
}
this.$http._getData("slrs/sar-public-idea/SelectAllPage", this.searchQuery, config).then(res => {
if (res.ok) {
this.total = res.data.total
if (this.searchQuery.page === 1) {
this.list = res.data.records
} else {
this.list = [...this.list, ...res.data.records]
}
}
}).finally(() => {
resolve()
})
})
},
jumpDetails () {
}
}
}
</script>
<style scoped lang="less">
.scroll-wrapper {
height: calc(100vh - 131px);
overflow: hidden;
position: relative;
}
.card-content {
width: 95%;
height: auto;
margin: 10px;
background-color: #FFFFFF;
border-radius: 5px;
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
.standTitle {
.title {
font-size: 3.4vw;
color: #333333;
font-weight: 600;
height: auto;
line-height: 20px;
padding: 5px 10px;
text-align: left;
border-bottom: 1px solid #cccccc;
}
}
.standContent {
font-size: 3.4vw;
color: #555555;
font-weight: 450;
margin-top: 5px;
.standState {
padding-left: 10px;
//height: 35px;
line-height: 25px;
}
}
.timeFooter {
font-size: 3.4vw;
padding: 0 10px;
height: 35px;
line-height: 35px;
border-top: 1px solid #cccccc;
display: flex;
}
}
.card-content:first-child {
margin-top: 0;
}
</style>
@@ -0,0 +1,189 @@
<template>
<PhoneScroll
height="calc(100vh - 101px)"
:data="list"
:page="searchQuery.page"
:pageSize="searchQuery.pageSize"
:total="total"
:loading="loading"
pullUpLoad
pullDownRefresh
:getDataHandler="getData">
<div style="padding-top: 10px">
<div class="card-content" v-for="item in list" :key="item.id" @click="jumpDetails(item)">
<div class="standTitle">
<div class="title">{{ item.standard || '-' }}</div>
</div>
<div class="standContent">
<div class="standState">{{ item.standardName || '-' }}</div>
<div class="standState">
标准状态: <span style="color: #35720B; padding-left: 5px;">{{textStateMap[item.textState] || '-' }}</span>
</div>
</div>
<div class="timeFooter">
<div style="width: 50%">发布日期: <span style="padding-left: 5px;">{{ convertTime(item.releaseDate) }}</span></div>
<div style="width: 50%">实施日期: <span style="padding-left: 5px;">{{ convertTime(item.renewTime) }}</span></div>
</div>
</div>
</div>
</PhoneScroll>
</template>
<script>
import PhoneScroll from "@/components/hzwlComponents/phone/PhoneScroll";
export default {
name: "Standard",
components: {
PhoneScroll
},
props: {
messageType: {
type: String,
default: 'ZYBZFG'
}
},
data() {
return {
searchQuery: {
page: 1,
pageSize: 10,
messageType: this.messageType
},
total: 0,
list: [],
loading: false,
dict: {},
textStateMap: {}
}
},
created() {
this.getDicTypeListCode()
this.getData()
},
methods: {
convertTime (time) {
return time !== '' ? this.$moment(time).format('YYYY-MM-DD') : '-'
},
getData (page) {
return new Promise((resolve, reject) => {
const config = {
_this: this,
loading: 'loading'
}
if (page) {
this.searchQuery.page = page
}
this.$http._getData("lawss/NewsFeed/getNewsFeed", this.searchQuery, config).then(res => {
if (res.ok) {
this.total = res.data.total
if (this.searchQuery.page === 1) {
this.list = res.data.records
} else {
this.list = [...this.list, ...res.data.records]
}
}
}).finally(() => {
resolve()
})
})
},
getDicTypeListCode () {
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
this.dict = {...res.data}
// WBZTCLASS 国内、国外 TEXTSTATUSBUSS 企业
this.setMap([...this.dict.WBZTCLASS, ...this.dict.TEXTSTATUSBUSS], 'textStateMap')
})
},
setMap(data, key) {
data.forEach(item => {
this.$set(this[key], item.value, item.label);
});
},
jumpDetails(item) {
let pageType = ''
switch (item.resourceType) {
case 'INLAND':
pageType = 'INLAND_STAND'
break
case 'FOREIGN':
pageType = 'FOREIGN_STAND'
break
case 'BUSINESS':
pageType = 'BUSS'
break
}
this.$router.push({
name: "domesticDetails",
query: {
id: item.standardId,
pageType
}
});
}
}
}
</script>
<style scoped lang="less">
.root {
height: 100%;
}
.scroll-wrapper {
height: calc(100vh - 131px);
overflow: hidden;
position: relative;
}
.card-content {
width: 95%;
height: auto;
margin: 10px;
background-color: #FFFFFF;
border-radius: 5px;
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
.standTitle {
.title {
font-size: 3.4vw;
color: #333333;
font-weight: 600;
height: auto;
line-height: 20px;
padding: 5px 10px;
text-align: left;
border-bottom: 1px solid #cccccc;
}
}
.standContent {
font-size: 3.4vw;
color: #555555;
font-weight: 450;
margin-top: 5px;
.standState {
padding-left: 10px;
//height: 35px;
line-height: 25px;
}
}
.timeFooter {
font-size: 3.4vw;
padding: 0 10px;
height: 35px;
line-height: 35px;
border-top: 1px solid #cccccc;
display: flex;
}
}
.card-content:first-child {
margin-top: 0;
}
</style>
+21 -12
View File
@@ -6,36 +6,45 @@
<span class="left-title" @click="back"> < </span>
<span class="right-title">标准化动态</span>
</div>
<van-tabs v-model="active">
<van-tab name="ZYBZFG" title="在研标准入库">
<UnderResearchStandards></UnderResearchStandards>
<van-tabs v-model="active" :ellipsis="false" swipeable>
<van-tab name="UnderResearchStandards" title="在研标准入库">
<Standard message-type="ZYBZFG"></Standard>
</van-tab>
<van-tab name="GNWBZFG" title="标准法规入库">
<StandardRegulations></StandardRegulations>
<van-tab name="Domestic" title="国内法规入库">
<Standard message-type="GNBZFG"></Standard>
</van-tab>
<van-tab name="ZLZX" title="资料中心">
<van-tab name="Abroad" title="国外法规入库">
<Standard message-type="GWBZFG"></Standard>
</van-tab>
<van-tab name="DataCenter" title="资料中心">
<DataCenter></DataCenter>
</van-tab>
<van-tab name="SolicitOpinions" title="标准征求意见">
<SolicitOpinions></SolicitOpinions>
</van-tab>
<van-tab name="EnterpriseStandard" title="企业标准发布">
<Standard message-type="QYBZFB"></Standard>
</van-tab>
</van-tabs>
</div>
</div>
</template>
<script>
import UnderResearchStandards from "./components/UnderResearchStandards";
import StandardRegulations from "./components/StandardRegulations";
import Standard from "./components/Standard";
import SolicitOpinions from "./components/SolicitOpinions";
import DataCenter from "./components/DataCenter";
export default {
name: "standDynamics",
components: {
UnderResearchStandards,
StandardRegulations,
Standard,
SolicitOpinions,
DataCenter
},
data() {
return {
active: "ZYBZFG",
active: "UnderResearchStandards",
isShow: true
};
},
@@ -43,7 +52,7 @@ export default {
next(vm => {
if (from.name === 'phoneHome') {
// 首页进入 重新加载
vm.active = "ZYBZFG";
vm.active = "UnderResearchStandards";
vm.isShow = false
vm.$nextTick(() => {
vm.isShow = true
@@ -200,6 +200,15 @@
</el-form-item>
</el-card>
</el-timeline-item>
<TimeLineFormItem
prop="csrUserNames"
timestamp="抄送"
title="标准法规工程师"
multiple
:id.sync="roleForm.csrUserIds"
:name.sync="roleForm.csrUserNames"
:disabled="disabledXX"
/>
</el-form>
</el-timeline>
</div>
@@ -398,10 +407,12 @@ import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { saveTaskFirst, queryTaskFirst, inboundLiaisonDetail, taskDel } from "api/process";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription'
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
export default {
name: "qbfzStep1",
components:{
TimeLineFormItem,
ReceiptDescription,
ProcessHeader,
ProcessFooter,
@@ -454,6 +465,8 @@ export default {
approverName: '',
examine: '',
examineName: '',
csrUserIds: '',
csrUserNames: '',
},
//必填人员校验规则
roleFormRules: {