对接手机端

This commit is contained in:
范强强
2023-06-06 17:53:29 +08:00
parent 271dd96bfb
commit 6f9e74d231
11 changed files with 725 additions and 187 deletions
+2
View File
@@ -1873,4 +1873,6 @@ module.exports = {
loading:'Loading...',
howAboutComment:'How about a comment',
send:'Send',
pleaseProcessThePC:'Please process it on the PC',
clickAndSelect:'Click and select',
}
+2
View File
@@ -1974,4 +1974,6 @@ module.exports = {
loading:'加载中...',
howAboutComment:'说点什么评论一下吧',
send:'发送',
pleaseProcessThePC:'请在PC端处理',
clickAndSelect:'点击选择',
}
+118 -58
View File
@@ -3,7 +3,7 @@
<div class="header-search">
<van-icon @click="iconClick" class="icon" name="arrow-left"/>
<span class="header-search-text">
GB 7258-2017《机动车运行安全技术条件》
{{serial_number}}
</span>
</div>
<div class="header-right">
@@ -17,85 +17,144 @@
</div>
</div>
<van-collapse class="collapse" v-model="activeNames">
<van-collapse-item title="基本信息" name="1">
<div class="content-box-type">
<span class="content-box-left">编号</span>
<span class="content-box-text">GB 7258-2017</span>
</div>
<div class="content-box-type">
<span class="content-box-left">标题</span>
<span class="content-box-text">机动车运行安全技术条件</span>
</div>
<div class="content-box-type">
<span class="content-box-left">新车型实施日期</span>
<span class="content-box-text">机动车运行安全技新车型实施日期新车型实施日期新车型实施日期术条件</span>
</div>
</van-collapse-item>
<van-collapse-item title="文本信息" name="2">
<div class="textInformation">
<div class="textInformationText">
发布稿(必读)
</div>
<div class="textInformationFile">
线控底盘技术发展与标准化需求研究报告.pdf
</div>
<div class="textInformationFile">
线控底盘技术发展与标准化需求研究报告.pdf
</div>
<div class="textInformationFile">
线控底盘技术发展与标准化需求研究报告.pdf
</div>
</div>
<div v-for="(item,index) in detailList">
<div v-for="val in Object.keys(item)">
<van-collapse-item v-if="val == $t('essentialInformation')" :title="val" name="1">
<div class="content-box-type" v-for="(ol,index1) in item[val]">
<span class="content-box-left">{{ol.db_field_txt}}</span>
<span class="content-box-text">{{ol.value || '--'}}</span>
</div>
</van-collapse-item>
<div class="textInformation">
<div class="textInformationText">
发布稿(必读)
</div>
<div class="textInformationFile">
线控底盘技术发展与标准化需求研究报告dsfdsfsdfdsfdsdsdsfdsfdsfs.pdf
</div>
<div class="textInformationFile">
线控底盘技术发展与标准化需求研究报告.pdf
</div>
<div class="textInformationFile">
线控底盘技术发展与标准化需求研究报告.pdf
</div>
</div>
</van-collapse-item>
<van-collapse-item title="分阶段实施详情" name="3">
<div class="Implementation" v-for="item in 3">
<div class="ImplementationText">这里是条款</div>
<div class="ImplementationBox">
<div class="ImplementationBoxLeft">
在产车
<van-collapse-item v-else-if="val == $t('textInformation')"
:title="val" name="2">
<div class="textInformation" v-for="(ol,index1) in item[val]">
<div class="textInformationText">
{{ol.db_field_txt}}
</div>
<div v-if="ol.value && ol.value.length > 0">
<div class="textInformationFile" v-for="valItem in ol.value">
{{valItem.fileName}}
</div>
</div>
</div>
<div class="ImplementationBoxRight">
2023-10-11
</van-collapse-item>
</div>
</div>
<van-collapse-item :title="$t('DetailsPhasedImplementation')" name="3">
<van-list
v-model="loading"
:finished="finished"
:finished-text="$t('noMore')"
:loading-text="$t('loading')"
@load="onLoad"
>
<div class="Implementation" v-for="(item,index) in dataGrad" :key="index">
<div class="ImplementationText">{{item.standNumberOrClause}}</div>
<div class="ImplementationBox">
<div class="ImplementationBoxLeft">
{{item.implementationTypeText}}
</div>
<div class="ImplementationBoxRight">
{{item.implementationDate}}
</div>
</div>
<div class="ImplementationButtom">
{{item.remarks}}
</div>
</div>
<div class="ImplementationButtom">
这里是备注这里是备注这里是备注这里是备注这里是备注这里是备注这里是备注
</div>
</div>
</van-list>
</van-collapse-item>
</van-collapse>
</div>
</template>
<script>
import { getAction, postAction, downFile } from '@/api/manage'
export default {
name: 'phoneDocumentDetails',
data() {
return {
activeNames: ['1', '2', '3']
activeNames: ['1', '2', '3'],
url: {
getInfo: 'document/bussDocumentLibraryEO/getInfoById',
list: 'log/bussLogEO/page',
getTitle: '/document/bussDocumentLibraryEO/getTitle',
getPage: '/document/phasedImplementationDetailsEO/page',
getMenuList: 'document/bussDocumentLibraryEO/getMenuList'
},
serial_number: '',
detailList: [],
loading: false,
finished: false,
pageNo: 0,
dataGrad: []
}
},
mounted() {
document.title = 'NIO GRP'
let _this = this
this.getTitle(function() {
_this.getInfoById()
})
},
methods: {
iconClick() {
this.$router.go(-1)
},
getTitle(callback) {
let _id = this.$route.query.id || '93280f73b02148e3b34f1655fe3a6ade'
getAction(this.url.getTitle, { id: _id }).then((res) => {
if (res.success) {
this.serial_number = res.result
callback && callback()
} else {
this.serial_number = ''
}
})
},
getInfoById() {
let _id = this.$route.query.id || '93280f73b02148e3b34f1655fe3a6ade'
getAction(this.url.getInfo, { id: _id }).then((res) => {
if (res.success) {
this.detailList = res.result
} else {
this.detailList = []
}
})
},
getPage() {
let query = {
pageNo: this.pageNo,
pageSize: 10,
bussDocumentLibraryId: this.$route.query.id || '93280f73b02148e3b34f1655fe3a6ade'
}
getAction(this.url.getPage, query).then((res) => {
if (res.success) {
if (res.result.records.length > 0 && this.pageNo > 1) {
this.dataGrad = this.dataGrad.concat(res.result.records)
} else if (res.result.records.length > 0 && this.pageNo == 1) {
this.dataGrad = res.result.records
} else if (res.result.records.length == 0) {
this.finished = true
}
this.loading = false
} else {
this.dataGrad = []
}
})
},
onLoad() {
if (this.finished) {
this.dataGrad = []
this.finished = false
} else {
this.pageNo++
this.getPage()
}
}
}
}
@@ -234,6 +293,7 @@
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #040B29;
word-break: break-all;
}
::v-deep .van-collapse-item__content {
+153 -16
View File
@@ -6,8 +6,11 @@
{{$t('myCollection')}}
</span>
</div>
<div class="content">
<van-tabs v-model="activeTab" @change="activeChange">
<van-tab name="documentLibrary" :title="$t('DocumentLibrary')"></van-tab>
<van-tab name="problemKnowledgeBase" :title="$t('problemKnowledgeBase')"></van-tab>
</van-tabs>
<div class="content" v-if="activeTab == 'documentLibrary'">
<van-list
v-model="loading"
:finished="finished"
@@ -15,15 +18,12 @@
:loading-text="$t('loading')"
@load="onLoad"
>
<div class="content-text" v-for="(item,index) in collectionList" :key="index">
<div class="content-text" @click="collectionClick(item)" v-for="(item,index) in collectionList" :key="index">
<div class="content-text-left">
<div class="content-text-top">
<span class="content-text-top-left">
{{item.serialNumber}}
</span>
<!-- <span class="content-text-top-right">-->
<!-- 测试检验项目-->
<!-- </span>-->
</div>
<div class="content-text-button">
<span> {{item.title}}</span>
@@ -35,6 +35,34 @@
</div>
</van-list>
</div>
<div class="content" v-else-if="activeTab == 'problemKnowledgeBase'">
<van-list
v-model="problemLoading"
:finished="problemFinished"
:finished-text="$t('noMore')"
:loading-text="$t('loading')"
@load="problemOnLoad"
>
<div class="content-text" @click="problemKnowledgeBaseClick(item)" v-for="(item,index) in problemList"
:key="index">
<div class="content-text-left">
<!-- <div class="content-text-top">-->
<!-- <span class="content-text-top-left">-->
<!-- {{item.serialNumber}}-->
<!-- </span>-->
<!-- </div>-->
<div class="content-text-button">
<span> {{item.title}}</span>
</div>
</div>
<div class="content-text-right">
<van-icon name="arrow"/>
</div>
</div>
</van-list>
</div>
</div>
</template>
@@ -46,20 +74,44 @@
data() {
return {
collectionList: [],
pageNo: 1,
pageNo: 0,
pageSize: 10,
loading: false,
finished: false
finished: false,
activeTab: 'documentLibrary',
problemList: [],
problemLoading: false,
problemFinished: false,
problemPageNo: 1,
url: {
documentLibraryUrl: 'collection/onlCgformCollection/page',
problemKnowledgeBaseUrl: '/problemKnowledgeBase/problemKnowledgeBaseCollectEO/queryCollectPageList'
}
}
},
mounted() {
document.title = 'NIO GRP'
this.getCollection()
// this.getCollection()
},
methods: {
iconClick() {
this.$router.go(-1)
},
activeChange() {
if (this.activeTab == 'documentLibrary') {
this.loading = true
this.collectionList = []
this.finished = false
this.pageNo = 1
this.getCollection()
} else if (this.activeTab == 'problemKnowledgeBase') {
this.problemLoading = true
this.problemList = []
this.problemFinished = false
this.problemPageNo = 1
this.getProblem()
}
},
onLoad() {
if (this.finished) {
this.collectionList = []
@@ -69,18 +121,49 @@
this.getCollection()
}
},
problemOnLoad() {
if (this.problemFinished) {
this.problemList = []
this.problemFinished = false
} else {
this.problemPageNo++
this.getProblem()
}
},
getProblem() {
let params = {
pageNo: this.problemPageNo,
pageSize: 10
}
getAction(this.url.problemKnowledgeBaseUrl, params).then(res => {
if (res.success) {
let result = res.result ? res.result.records : []
if (result.length > 0 && this.problemPageNo > 1) {
this.problemList = this.problemList.concat(result)
} else if (result.length > 0 && this.problemPageNo == 1) {
this.problemList = result
} else if (result.length == 0) {
this.problemFinished = true
}
this.problemLoading = false
} else {
this.problemList = []
}
})
},
getCollection() {
let params = {
pageNo: this.pageNo,
pageSize: this.pageSize
}
postAction(`collection/onlCgformCollection/page`, params).then(res => {
postAction(this.url.documentLibraryUrl, params).then(res => {
if (res.success) {
if (res.result.records.length > 0 && this.pageNo > 1) {
this.collectionList = this.collectionList.concat(res.result.records)
} else if (res.result.records.length > 0 && this.pageNo == 1) {
this.collectionList = res.result.records
} else if (res.result.records.length == 0) {
let result = res.result ? res.result.records : []
if (result.length > 0 && this.pageNo > 1) {
this.collectionList = this.collectionList.concat(result)
} else if (result.length > 0 && this.pageNo == 1) {
this.collectionList = result
} else if (result.length == 0) {
this.finished = true
}
this.loading = false
@@ -88,6 +171,24 @@
this.collectionList = []
}
})
},
collectionClick(item) {
this.$router.push({
path: '/phoneDocumentDetails',
query: {
id: item.documentId
}
})
},
problemKnowledgeBaseClick(item) {
this.$router.push({
path: '/phoneProblemKnowledgeBase',
query: {
id: item.id
}
})
}
}
}
@@ -99,6 +200,10 @@
position: relative;
}
::v-deep .van-tabbar-item--active {
color: #00B3BE;
}
.header-search {
width: 100%;
display: flex;
@@ -124,7 +229,7 @@
}
.content {
margin-top: 0.36rem;
margin-top: 0.26rem;
}
.content-text {
@@ -158,6 +263,14 @@
color: #595E72;
margin-top: 0.13rem;
word-break: break-all;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
}
.content-text-right .van-icon {
@@ -168,4 +281,28 @@
.content-text-top-right {
margin-left: 0.3rem;
}
::v-deep .van-tab {
font-size: 0.38rem;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #868A9A;
flex: none;
margin-right: 0.2rem;
}
::v-deep .van-tab--active {
font-size: 0.38rem;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 600;
color: #040B29;
}
::v-deep .van-tabs {
margin-top: 0.36rem;
}
::v-deep .van-tabs__line {
background-color: #00B3BE;
}
</style>
+20 -4
View File
@@ -14,7 +14,7 @@
:loading-text="$t('loading')"
@load="onLoad"
>
<div class="content-text" v-for="(item,index) in subscribeList" :key="index">
<div class="content-text" @click="collectionClick(item)" v-for="(item,index) in subscribeList" :key="index">
<div class="content-text-left">
<div class="content-text-top">
<span class="content-text-top-left">
@@ -45,7 +45,7 @@
data() {
return {
subscribeList: [],
pageNo: 1,
pageNo: 0,
pageSize: 10,
loading: false,
finished: false
@@ -53,7 +53,7 @@
},
mounted() {
document.title = 'NIO GRP'
this.getSubscribe()
// this.getSubscribe()
},
methods: {
iconClick() {
@@ -87,7 +87,15 @@
this.subscribeList = []
}
})
}
},
collectionClick(item) {
this.$router.push({
path: '/phoneDocumentDetails',
query: {
id: item.documentId
}
})
},
}
}
</script>
@@ -157,6 +165,14 @@
color: #595E72;
margin-top: 0.13rem;
word-break: break-all;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
}
.content-text-right .van-icon {
@@ -41,20 +41,21 @@
{{queryForm.browsingHistoryCount}}
</span>
</div>
<div class="iconTextLeft" @click="starClick()">
<img v-if="!this.isCollect" src="~@/assets/icon_zan.png" alt="">
<img v-else src="~@/assets/dianzan.png" alt="">
<span class="iconTextLeft-text" :class="{'icon-active':this.isCollect}">
{{queryForm.collectCount}}
</span>
</div>
<div class="iconTextLeft" @click="likeClick()">
<img v-if="!this.isPraise" src="~@/assets/icon_shoucang.png" alt="">
<img v-else src="~@/assets/xuanzhong.png" alt="">
<img v-if="!this.isPraise" src="~@/assets/icon_zan.png" alt="">
<img v-else src="~@/assets/dianzan.png" alt="">
<span class="iconTextLeft-text" :class="{'icon-active':this.isPraise}">
{{queryForm.praiseCount}}
</span>
</div>
<div class="iconTextLeft" @click="starClick()">
<img v-if="!this.isCollect" src="~@/assets/icon_shoucang.png" alt="">
<img v-else src="~@/assets/xuanzhong.png" alt="">
<span class="iconTextLeft-text" :class="{'icon-active':this.isCollect}">
{{queryForm.collectCount}}
</span>
</div>
</div>
<div class="comment">
@@ -191,7 +192,7 @@
},
getQueryBy() {
let query = {
id: '1bbe56abe27b410998365f20e6023e38'
id: this.$route.query.id
}
getAction(this.url.queryById, query).then((res) => {
if (res.success) {
@@ -225,7 +226,7 @@
this.queryForm.praiseCount = this.queryForm.praiseCount - 1
}
let query = {
problemKnowledgeBaseId: this.queryForm.id,
problemKnowledgeBaseId: this.$route.query.id,
praiseUserId: this.userInfo().id,
praiseStatus: praiseStatus,
id: this.queryForm.praiseEO ? this.queryForm.praiseEO.id : undefined
@@ -251,7 +252,7 @@
this.queryForm.collectCount = this.queryForm.collectCount - 1
}
let query = {
problemKnowledgeBaseId: this.queryForm.id,
problemKnowledgeBaseId: this.$route.query.id,
collectUserId: this.userInfo().id,
collectStatus: collectStatus,
id: this.queryForm.collectEO ? this.queryForm.collectEO.id : undefined
@@ -264,7 +265,7 @@
},
releaseData() {
let query = {
problemKnowledgeBaseId: '1bbe56abe27b410998365f20e6023e38'
problemKnowledgeBaseId: this.$route.query.id
}
getAction('/problemKnowledgeBase/problemKnowledgeBaseCommentEO/list', query).then((res) => {
if (res.success) {
@@ -328,7 +329,7 @@
sendClick() {
if (this.num == 1) {
let query = {
problemKnowledgeBaseId: this.queryForm.id,
problemKnowledgeBaseId: this.$route.query.id,
commentContent: this.sendValue,
commentUserId: this.userInfo().id
}
@@ -10,50 +10,55 @@
<van-collapse class="collapse" v-model="activeNames">
<van-collapse-item title="基本信息" name="1">
<div class="content-box-type">
<span class="content-box-left">项目名称</span>
<span class="content-box-text">Aries-G1.1-中国台湾-00</span>
<span class="content-box-left">{{$t('entryName')}}</span>
<span class="content-box-text">{{queryForm.projectName+'-'+queryForm.projectVersion}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">法规编号</span>
<span class="content-box-text">ISO 16750-4-2003</span>
<span class="content-box-left">{{$t('regulationNo')}}</span>
<span class="content-box-text">{{queryForm.serialNumber || '--'}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">标题</span>
<span class="content-box-text">机动车运行安全技术条件</span>
<span class="content-box-left">{{$t('title')}}</span>
<span class="content-box-text">{{queryForm.title || '--'}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">子标题</span>
<span class="content-box-text">机动车运行安全技新车型实施日期新车型实施日期新车型实施日期术条件</span>
<span class="content-box-left">{{$t('subtitle')}}</span>
<span class="content-box-text">{{queryForm.subtitle || '--'}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">适用增补件</span>
<span class="content-box-text">机动车运行安全技新</span>
<span class="content-box-left">{{$t('applicableSupplement')}}</span>
<span class="content-box-text">{{queryForm.applicableSupplement || '--'}}</span>
</div>
</van-collapse-item>
<van-collapse-item title="任务要求" name="2">
<div class="content-box-type">
<span class="content-box-left">发起人</span>
<span class="content-box-text">--</span>
<span class="content-box-left">{{$t('Sponsor')}}</span>
<span class="content-box-text">{{queryProject[queryData.Sponsor] || '--'}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">责任人</span>
<span class="content-box-text">--</span>
<span class="content-box-left">{{$t('personLiable')}}</span>
<span class="content-box-text">{{queryProject[queryData.personLiable] || '--'}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">交付日期</span>
<span class="content-box-text">2023-10-20</span>
<span class="content-box-left">{{$t('deliveryDate')}}</span>
<span class="content-box-text">{{queryProject[queryData.DueDate] || '--'}}</span>
</div>
<div class="content-box-type">
<span class="content-box-left">{{$t('typeOfDeliverables')}}</span>
<span class="content-box-text">{{queryProject[queryData.typeOfDeliverables] || '--'}}</span>
</div>
<div class="content-box-type-text">
交付物模板
{{$t('deliverableTemplate')}}
</div>
<div class="content-box-type-text-one">
线控底盘技术发展与标准化需求研究报告.pdf
</div>
<div class="content-box-type-text">
交付物说明
{{$t('descriptionDeliverables')}}
</div>
<div class="content-box-type-text-Two">
这里是交付物说明这里是交付物说明这里是交付物说明这里是交付物说明这里是交付物说明
{{queryProject[queryData.remarks] || '--'}}
</div>
</van-collapse-item>
<van-collapse-item title="流程历史" name="3">
@@ -179,27 +184,124 @@
</van-form>
</van-collapse-item>
</van-collapse>
<van-overlay :show="show">
<van-loading type="spinner">{{$t('loading')}}</van-loading>
</van-overlay>
</div>
</template>
<script>
import { getAction, postAction, deleteAction, downloadFile, putAction } from '@/api/manage'
import { mapGetters } from 'vuex'
export default {
name: 'phoneProcessManagement',
data() {
return {
activeNames: ['1', '2', '3', '4'],
form: {}
show: false,
form: {},
url: {
urlFrom: 'project/projectLibraryBase/queryById',
queryProjectLawsInventoryInfoById: 'project/projectLawsInventoryEO/queryProjectLawsInventoryInfoById',
queryTaskDetailByTaskIds: '/task/queryTaskDetailByTaskIds',
edit: '/project/projectTaskInventoryDetailEO/edit',
dreSubmit: '/project/projectTaskInventoryFeedbackEO/dreSubmit',
list: '/project/projectTaskInventoryFeedbackEO/list'
},
queryForm: {},
queryProject: {},
queryBy: {}
}
},
mounted() {
document.title = 'NIO GRP'
this.getData(this.$route.query)
},
methods: {
...mapGetters(['userInfo']),
iconClick() {
this.$router.go(-1)
},
onSubmit() {
},
getData(row) {
this.show = true
this.queryData = row
this.queryData.isDisplay = JSON.parse(this.queryData.isDisplay)
let _this = this
this.standardContentList = [
{
title: this.$t('deliveryDate'),
value: this.queryData.DueDate
},
{
title: this.$t('typeOfDeliverables'),
value: this.queryData.typeOfDeliverables
},
{
title: this.$t('deliverableTemplate'),
value: this.queryData.deliverableTemplate,
type: 2
},
{},
{
title: this.$t('descriptionDeliverables'),
value: this.queryData.remarks
}
]
if (row.taskIds) {
this.queryTaskDetailByTask(function() {
_this.queryProjectLawsInventoryInfo()
})
} else {
this.queryBy.projectLibraryId = row.projectLibraryId
this.queryBy.id = row.projectTaskInventoryId
this.queryProjectLawsInventoryInfo()
}
},
queryTaskDetailByTask(callback) {
this.loading = true
getAction(this.url.queryTaskDetailByTaskIds, { taskIds: this.queryData.taskIds }).then((res) => {
if (res instanceof String) {
this.queryBy = JSON.parse(res) || {}
callback()
} else {
this.queryBy = res || {}
callback()
}
})
},
queryProjectLawsInventoryInfo() {
let query = {
id: this.queryBy.id,
operatorType: 'taskAffirmQuery'
}
this.queryBy.approvalOpinion = ''
this.queryBy.approvalFile = ''
getAction(this.url.queryProjectLawsInventoryInfoById, query).then((res) => {
if (res.success) {
this.queryProject = res.result[0] || {}
this.getQueryForm()
} else {
this.queryProject = {}
}
})
},
getQueryForm() {
getAction(this.url.urlFrom, { id: this.queryBy.projectLibraryId }).then((res) => {
if (res.success) {
this.queryForm = res.result[0] || {}
if (this.queryProject) {
this.queryForm = { ...this.queryForm, ...this.queryProject }
}
this.show = false
} else {
this.queryForm = {}
}
})
}
}
}
@@ -223,6 +325,7 @@
z-index: 1000;
}
.icon {
font-size: 0.66rem;
width: 0.7rem;
@@ -294,7 +397,6 @@
}
.content-box-type-text {
display: inline-block;
font-size: 0.38rem;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
@@ -303,7 +405,6 @@
}
.content-box-type-text-one {
display: inline-block;
font-size: 0.38rem;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
@@ -328,6 +429,7 @@
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #040B29;
word-break: break-all;
}
::v-deep .van-collapse-item__content {
@@ -479,4 +581,23 @@
font-size: 0.42rem;
font-weight: 500;
}
::v-deep .van-loading {
color: #fff;
font-size: 0.36rem;
}
::v-deep .van-loading__text {
color: #fff;
font-size: 0.46rem;
}
::v-deep .van-overlay {
z-index: 1001;
text-align: center;
line-height: 30;
display: flex;
align-items: center;
justify-content: center;
}
</style>
+12 -3
View File
@@ -104,17 +104,26 @@
},
documentDetailsClick() {
this.$router.push({
path: '/phoneDocumentDetails'
path: '/phoneSearchList',
query: {
activeTab: 'documentLibrary'
}
})
},
processManagementClick() {
this.$router.push({
path: '/phoneProcessManagement'
path: '/phoneSearchList',
query: {
activeTab: 'monthlyReportRegulations'
}
})
},
phoneProblemKnowledgeBaseClick() {
this.$router.push({
path: '/phoneProblemKnowledgeBase'
path: '/phoneSearchList',
query: {
activeTab: 'problemKnowledgeBase'
}
})
},
getDocumentLibrary() {
+7 -1
View File
@@ -147,6 +147,9 @@
if (this.$route.query.searchValue) {
this.value = this.$route.query.searchValue
}
if (this.$route.query.activeTab) {
this.activeTab = this.$route.query.activeTab
}
},
methods: {
iconClick() {
@@ -165,7 +168,7 @@
this.finished = false
} else {
this.pageNo++
this.getSubscribe()
this.getList()
}
},
getList() {
@@ -185,6 +188,9 @@
}
postAction(url, params).then(res => {
if (res.success) {
if (this.pageNo == 1) {
this.list = []
}
if (res.result.records.length > 0 && this.pageNo > 1) {
this.list = this.list.concat(res.result.records)
} else if (res.result.records.length > 0 && this.pageNo == 1) {
+129 -45
View File
@@ -1,7 +1,7 @@
<template>
<div class="box">
<div class="content">
<van-tabs v-model="activeTab" :ellipsis="false">
<van-tabs v-model="activeTab" @change="activeChange" :ellipsis="false">
<van-tab name="regulatoryCertification" :title="$t('regulatoryCertificationProcess')"></van-tab>
<van-tab name="parametercollection" :title="$t('authenticationParameterCollection')"></van-tab>
</van-tabs>
@@ -12,7 +12,7 @@
{{$t('regulatoryCertificationProcessData')}}
</div>
<div class="regulatory-box">
<div class="content-box-data">
<div class="content-box-data" @click="regulationListIssuanceClick">
<div class="content-box-data-text">
{{$t('regulationListIssuance')}}
</div>
@@ -20,7 +20,7 @@
24
</div>
</div>
<div class="content-box-data">
<div class="content-box-data" @click="processClick(2)">
<div class="content-box-data-text">
{{$t('designTheComplianceProcess')}}
</div>
@@ -28,7 +28,7 @@
24
</div>
</div>
<div class="content-box-data">
<div class="content-box-data" @click="processClick(4)">
<div class="content-box-data-text">
{{$t('verifyComplianceProcess')}}
</div>
@@ -36,7 +36,7 @@
24
</div>
</div>
<div class="content-box-data">
<div class="content-box-data" @click="processClick(21)">
<div class="content-box-data-text">
{{$t('thePreHomeProcess')}}
</div>
@@ -44,7 +44,7 @@
24
</div>
</div>
<div class="content-box-data">
<div class="content-box-data" @click="regulationListIssuanceClick">
<div class="content-box-data-text">
{{$t('technicalAssessmentOfRegulations')}}
</div>
@@ -52,7 +52,7 @@
24
</div>
</div>
<div class="content-box-data">
<div class="content-box-data" @click="regulationListIssuanceClick">
<div class="content-box-data-text">
{{$t('legalOpinionCollection')}}
</div>
@@ -67,63 +67,71 @@
<div class="content-box-text">
{{$t('authenticationParameterCollectionData')}}
</div>
<div class="parame-box" v-for="item in 4">
<div class="parame-box-top">
<van-list
v-model="loading"
:finished="finished"
:finished-text="$t('noMore')"
:loading-text="$t('loading')"
@load="onLoad"
>
<div class="parame-box" @click="parameClick" v-for="(item,index) in dataSource" :key="index">
<div class="parame-box-top">
<span class="parame-box-top-text-left"
:class="{'parame-box-top-text-left-one':language == 'en-us'? true : false}">
{{$t('phoneRelatedItems')}}</span>
<span class="parame-box-top-text-right"
:class="{'parame-box-top-text-right-one':language == 'en-us'? true : false}">
Orion-G1.1-英国-00撒旦发射点
<span class="parame-box-top-text-right"
:class="{'parame-box-top-text-right-one':language == 'en-us'? true : false}">
{{item.projectName}}
</span>
</div>
<div class="parame-box-top">
</div>
<div class="parame-box-top">
<span class="parame-box-top-text-left"
:class="{'parame-box-top-text-left-one':language == 'en-us'? true : false}">
{{$t('listHeading')}}
</span>
<span class="parame-box-top-text-right"
:class="{'parame-box-top-text-right-one':language == 'en-us'? true : false}">
认证参数收集模板
<span class="parame-box-top-text-right"
:class="{'parame-box-top-text-right-one':language == 'en-us'? true : false}">
{{item.title}}
</span>
</div>
<div class="parame-box-top">
</div>
<div class="parame-box-top">
<span class="parame-box-top-text-left"
:class="{'parame-box-top-text-left-one':language == 'en-us'? true : false}">
{{$t('phoneVersionNumber')}}
</span>
<span class="parame-box-top-text-right"
:class="{'parame-box-top-text-right-one':language == 'en-us'? true : false}">
03
<span class="parame-box-top-text-right"
:class="{'parame-box-top-text-right-one':language == 'en-us'? true : false}">
{{item.version}}
</span>
</div>
<div class="parame-box-bottom">
<div class="parame-box-bottom-box">
<div class="parame-box-bottom-box-text-top">
待填写
</div>
<div class="parame-box-bottom-box-text-num">
15
</div>
</div>
<div class="parame-box-bottom-box">
<div class="parame-box-bottom-box-text-top">
待分配填写人
<div class="parame-box-bottom">
<div class="parame-box-bottom-box">
<div class="parame-box-bottom-box-text-top">
{{$t('completednum')}}
</div>
<div class="parame-box-bottom-box-text-num">
{{item.waitFillNum || '--'}}
</div>
</div>
<div class="parame-box-bottom-box-text-num">
15
<div class="parame-box-bottom-box">
<div class="parame-box-bottom-box-text-top">
{{$t('filledBy')}}
</div>
<div class="parame-box-bottom-box-text-num">
{{item.waitSdtNum || '--'}}
</div>
</div>
</div>
<div class="parame-box-bottom-box">
<div class="parame-box-bottom-box-text-top">
参数待发起
</div>
<div class="parame-box-bottom-box-text-num">
15
<div class="parame-box-bottom-box">
<div class="parame-box-bottom-box-text-top">
{{$t('parameterToBeInitiated')}}
</div>
<div class="parame-box-bottom-box-text-num">
{{item.waitCollectNum || '--'}}
</div>
</div>
</div>
</div>
</div>
</van-list>
</div>
</div>
@@ -137,13 +145,21 @@
</template>
<script>
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import { Toast } from 'vant'
export default {
name: 'phoneTaskData',
data() {
return {
active: 'taskData',
activeTab: 'regulatoryCertification',
language: localStorage.getItem('language')
language: localStorage.getItem('language'),
pageNo: 0,
pageSize: 10,
loading: false,
finished: false,
dataSource: []
}
},
mounted() {
@@ -164,6 +180,74 @@
path: '/phoneHome'
})
}
},
regulationListIssuanceClick() {
Toast(this.$t('pleaseProcessThePC'))
},
parameClick() {
Toast(this.$t('pleaseProcessThePC'))
},
processClick(num) {
this.$router.push({
path: '/phoneToDoCenter',
query: {
flowType: num
}
})
},
getToDoProcess() {
let query = {
pageNo: this.toDoProcessPageNo,
pageSize: this.toDoProcessPageSize
}
getAction('/todoCenter/projectProcess/todoTaskList', query).then((res) => {
if (res.success) {
this.toDoProcessList = res.result.records
} else {
this.toDoProcessList = []
}
})
},
activeChange() {
if (this.activeTab == 'regulatoryCertification') {
} else if (this.activeTab == 'parametercollection') {
this.loading = true
this.dataSource = []
this.finished = false
this.pageNo = 1
this.getList()
}
},
onLoad() {
if (this.finished) {
this.dataSource = []
this.finished = false
} else {
this.pageNo++
this.getList()
}
},
getList() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize
}
getAction('todoCenter/params/manifest/page', query).then((res) => {
if (res.success) {
if (res.result.records.length > 0 && this.pageNo > 1) {
this.dataSource = this.dataSource.concat(res.result.records)
} else if (res.result.records.length > 0 && this.pageNo == 1) {
this.dataSource = res.result.records
} else if (res.result.records.length == 0) {
this.finished = true
}
this.loading = false
} else {
this.dataSource = []
}
})
}
}
}
+124 -24
View File
@@ -29,7 +29,7 @@
@load="toDoProcessOnLoad"
>
<div class="content-box-content"
@click="toDoCenterClick"
@click="toDoCenterClick(item)"
v-for="(item,index) in toDoProcessList"
:key="index">
<div class="content-box-title-to">
@@ -65,7 +65,7 @@
:loading-text="$t('loading')"
@load="processDoneOnLoad"
>
<div class="content-box-content" @click="toDoCenterClick"
<div class="content-box-content" @click="toDoCenterClick(item)"
v-for="(item,index) in processDoneList"
:key="index">
<div class="content-box-title">
@@ -101,7 +101,7 @@
:loading-text="$t('loading')"
@load="sentProcessOnLoad"
>
<div class="content-box-content" @click="toDoCenterClick"
<div class="content-box-content" @click="toDoCenterClick(item)"
v-for="(item,index) in sentProcessList"
:key="index">
<div class="content-box-title">
@@ -139,13 +139,13 @@
:close-on-click-overlay="false"
:style="{ width: '80%' }">
<div class="popup-box">
<van-form class="formClass" @submit="onSubmit">
<van-form class="formClass">
<van-field name="checkboxGroup" class="textarea" :label="$t('ProcessType')">
<template #input>
<van-checkbox-group v-model="form.checkboxGroup">
<van-checkbox name="1" shape="square">{{$t('designComplianceProcess')}}</van-checkbox>
<van-checkbox name="2" shape="square">{{$t('validationComplianceProcess')}}</van-checkbox>
<van-checkbox name="3" shape="square">{{$t('preHomoFlow')}}</van-checkbox>
<van-checkbox-group v-model="form.flowType">
<van-checkbox name="2" shape="square">{{$t('designComplianceProcess')}}</van-checkbox>
<van-checkbox name="4" shape="square">{{$t('validationComplianceProcess')}}</van-checkbox>
<van-checkbox name="21" shape="square">{{$t('preHomoFlow')}}</van-checkbox>
</van-checkbox-group>
</template>
</van-field>
@@ -153,10 +153,10 @@
readonly
clickable
name="picker"
:value="value"
:value="form.value"
class="textarea"
:label="$t('cutoffTime')"
placeholder="点击选择"
:placeholder="$t('clickAndSelect')"
@click="showPicker = true"
/>
<van-popup v-model="showPicker" position="bottom">
@@ -174,13 +174,13 @@
{{$t('onlyMobilePhoneAreDisplayed')}}
</div>
</div>
<van-switch v-model="checked"/>
<van-switch v-model="form.checked"/>
</template>
</van-field>
</van-form>
<div class="button">
<van-button class="reset" type="primary">{{$t('phoneReset')}}</van-button>
<van-button class="primary" type="primary">{{$t('query')}}</van-button>
<van-button class="reset" type="primary" @click="resetClick">{{$t('phoneReset')}}</van-button>
<van-button class="primary" type="primary" @click="queryClick">{{$t('query')}}</van-button>
</div>
</div>
</van-popup>
@@ -196,14 +196,16 @@
return {
active: 'toDoCenter',
show: false,
checked: false,
date: '',
columns: ['近一个月', '近三个月', '近六个月', '近一年'],
showPicker: false,
value: '',
activeTab: '',
language: localStorage.getItem('language'),
form: {},
form: {
checked: true,
flowType: []
},
toDoProcessList: [],
toDoProcessLoading: false,
toDoProcessFinished: false,
@@ -212,7 +214,7 @@
processDoneList: [],
processDoneLoading: false,
processDoneFinished: false,
processDonePageNo: 0,
processDonePageNo: 1,
processDonePageSize: 10,
sentProcessList: [],
sentProcessLoading: false,
@@ -223,7 +225,13 @@
},
mounted() {
document.title = 'NIO GRP'
this.getToDoProcess()
if (this.$route.query.flowType) {
this.form.flowType = []
this.form.flowType.push(this.$route.query.flowType)
this.form = { ...this.form }
}
// this.toDoProcessPageNo = 1
// this.getToDoProcess()
},
methods: {
onChange(value) {
@@ -241,6 +249,53 @@
})
}
},
resetClick() {
this.form = {
checked: true
}
this.show = false
if (this.activeTab == 'toDoProcess') {
this.toDoProcessLoading = true
this.toDoProcessList = []
this.toDoProcessFinished = false
this.toDoProcessPageNo = 1
this.getToDoProcess()
} else if (this.activeTab == 'processDone') {
this.processDoneLoading = true
this.processDoneList = []
this.processDoneFinished = false
this.processDonePageNo = 1
this.getProcessDone()
} else if (this.activeTab == 'sentProcess') {
this.sentProcessLoading = true
this.sentProcessList = []
this.sentProcessFinished = false
this.sentProcessPageNo = 1
this.getSentProcess()
}
},
queryClick() {
this.show = false
if (this.activeTab == 'toDoProcess') {
this.toDoProcessLoading = true
this.toDoProcessList = []
this.toDoProcessFinished = false
this.toDoProcessPageNo = 1
this.getToDoProcess()
} else if (this.activeTab == 'processDone') {
this.processDoneLoading = true
this.processDoneList = []
this.processDoneFinished = false
this.processDonePageNo = 1
this.getProcessDone()
} else if (this.activeTab == 'sentProcess') {
this.sentProcessLoading = true
this.sentProcessList = []
this.sentProcessFinished = false
this.sentProcessPageNo = 1
this.getSentProcess()
}
},
activeChange() {
if (this.activeTab == 'toDoProcess') {
this.toDoProcessLoading = true
@@ -262,19 +317,58 @@
this.getSentProcess()
}
},
toDoCenterClick() {
toDoCenterClick(row) {
let query = {}
row.taskId = row.taskId + ''
if (row.taskId.length > 30) {
row.taskId = ''
}
if (row.flowType == '2') {
query = {
// taskIds: row.taskId,
actiProcInstId: row.actiProcInstId,
projectTaskInventoryId: row.projectLawsInventoryId,
projectLibraryId: row.projectLibraryId,
TaskKey: row.taskDefinitionKey,
isDisplay: true,
flowType: 2,
Sponsor: 'regulationOwnerName',
personLiable: 'designDutyIdName',
typeOfDeliverables: 'designDeliverableTypeName',
deliverableTemplate: 'designDeliverableTemplate',
DueDate: 'designDueDate',
remarks: 'designRemark'
}
} else if (row.flowType == '4') {
query = {
// taskIds: row.taskId,
actiProcInstId: row.actiProcInstId,
projectTaskInventoryId: row.projectLawsInventoryId,
projectLibraryId: row.projectLibraryId,
TaskKey: row.taskDefinitionKey,
isDisplay: true,
flowType: 4,
Sponsor: 'regulationOwnerName',
personLiable: 'verifyDutyIdName',
typeOfDeliverables: 'verifyDeliverableTypeName',
deliverableTemplate: 'verifyDeliverableTemplate',
DueDate: 'verifyDueDate',
remarks: 'verifyRemark'
}
} else if (row.flowType == '21') {
}
this.$router.push({
path: '/phoneHandlingPage'
path: '/phoneProcessManagement',
query: query
})
},
searchIconClick() {
this.show = true
},
onSubmit() {
},
onConfirm(value) {
this.value = value
this.form.value = value
this.showPicker = false
},
toDoProcessOnLoad(value) {
@@ -305,9 +399,14 @@
}
},
getToDoProcess() {
let form = JSON.parse(JSON.stringify(this.form))
if (form.flowType && form.flowType instanceof Array) {
form.flowType = form.flowType.join(',')
}
let query = {
pageNo: this.toDoProcessPageNo,
pageSize: this.toDoProcessPageSize
pageSize: this.toDoProcessPageSize,
...form
}
getAction('/todoCenter/projectProcess/todoTaskList', query).then((res) => {
if (res.success) {
@@ -491,6 +590,7 @@
font-size: 0.4rem;
word-break: break-all;
}
.content-box-title-to {
font-family: PingFang SC-Semibold, PingFang SC;
font-weight: 600;