# Conflicts:
#	package.json
This commit is contained in:
zhangyanduan
2022-06-17 09:06:31 +08:00
25 changed files with 424 additions and 167 deletions
+31 -3
View File
@@ -20,6 +20,7 @@
"jquery": "^3.5.1",
"js-base64": "^2.6.2",
"moment": "^2.29.1",
"qs": "latest",
"sortablejs": "^1.14.0",
"v-charts": "^1.19.0",
"vant": "^2.12.36",
@@ -27,6 +28,7 @@
"vue": "^2.6.11",
"vue-clipboard2": "^0.3.1",
"vue-contextmenujs": "^1.3.13",
"vue-custom-scrollbar": "^1.4.4",
"vue-i18n": "^8.22.4",
"vue-router": "^3.2.0",
"vuex": "^3.4.0"
@@ -12870,6 +12872,11 @@
"node": ">=0.12"
}
},
"node_modules/perfect-scrollbar": {
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz",
"integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g=="
},
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -13528,7 +13535,6 @@
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
"dev": true,
"engines": {
"node": ">=0.6"
}
@@ -15896,6 +15902,15 @@
"resolved": "https://registry.npm.taobao.org/vue-contextmenujs/download/vue-contextmenujs-1.3.13.tgz",
"integrity": "sha1-O9rgI8e9QgleeNpCWAACUNUKuO8="
},
"node_modules/vue-custom-scrollbar": {
"version": "1.4.4",
"resolved": "https://registry.npmmirror.com/vue-custom-scrollbar/-/vue-custom-scrollbar-1.4.4.tgz",
"integrity": "sha512-GKXEmLgUpH0Z+l4Y1TChgLpcKWXqdOOelfssuQakhPy/vvA4b5tqbWdvitCu1+zJlv+5vHa8BrUhlz1gJuZHgQ==",
"dependencies": {
"perfect-scrollbar": "^1.5.3",
"vue": "^2.6.11"
}
},
"node_modules/vue-hot-reload-api": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
@@ -27628,6 +27643,11 @@
"sha.js": "^2.4.8"
}
},
"perfect-scrollbar": {
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz",
"integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g=="
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -28179,8 +28199,7 @@
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
"dev": true
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
"query-string": {
"version": "4.3.4",
@@ -30191,6 +30210,15 @@
"resolved": "https://registry.npm.taobao.org/vue-contextmenujs/download/vue-contextmenujs-1.3.13.tgz",
"integrity": "sha1-O9rgI8e9QgleeNpCWAACUNUKuO8="
},
"vue-custom-scrollbar": {
"version": "1.4.4",
"resolved": "https://registry.npmmirror.com/vue-custom-scrollbar/-/vue-custom-scrollbar-1.4.4.tgz",
"integrity": "sha512-GKXEmLgUpH0Z+l4Y1TChgLpcKWXqdOOelfssuQakhPy/vvA4b5tqbWdvitCu1+zJlv+5vHa8BrUhlz1gJuZHgQ==",
"requires": {
"perfect-scrollbar": "^1.5.3",
"vue": "^2.6.11"
}
},
"vue-hot-reload-api": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+2 -1
View File
@@ -20,6 +20,7 @@
"jquery": "^3.5.1",
"js-base64": "^2.6.2",
"moment": "^2.29.1",
"qs": "latest",
"sortablejs": "^1.14.0",
"v-charts": "^1.19.0",
"vant": "^2.12.36",
@@ -27,10 +28,10 @@
"vue": "^2.6.11",
"vue-clipboard2": "^0.3.1",
"vue-contextmenujs": "^1.3.13",
"vue-custom-scrollbar": "^1.4.4",
"vue-i18n": "^8.22.4",
"vue-router": "^3.2.0",
"vuex": "^3.4.0",
"qs": "latest",
"increase-memory-limit": "^1.0.3",
"cross-env": "^5.0.5"
},
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

+3 -2
View File
@@ -14,13 +14,14 @@
}
.el-drawer__body{
height: 100%;
overflow-y: auto;
//overflow-y: auto;
display: flex;
flex-direction: column;
// 底部带 提交、取消按钮
.demo-drawer-content{
padding: 0 19px;
//height: calc(~'100% - 50px');
height: 85%;
overflow-y: auto;
flex: auto;
display: flex;
@@ -98,7 +99,7 @@
//bottom: 0;
//left: 0;
padding: 0 20px;
height: 50px;
height: 13%;
line-height: 50px;
border-top: 1px solid #e8e8e8;
text-align: right;
+1 -1
View File
@@ -63,7 +63,7 @@ service.interceptors.response.use(
// ignored
}
}
if(res.data && res.data.respCode != undefined && res.data.respCode === 'LE505'){
if(res.data && res.data.respCode !== undefined && res.data.respCode === 'LE505'){
if (isMobile()) {
localStorage.removeItem('token')
return router.push('/phoneIndex')
+7 -1
View File
@@ -179,7 +179,13 @@ router.beforeEach(function (to, from, next) {
}
}
}else {
next()
// 区分手机端首页 单独逻辑处理 token 为空 跳回验证页面重新验证
if(fromName === 'databaseSearch' || fromName === 'standDynamics' ||
fromName === 'domesticStand' || fromName === 'domesticDetails'){
next('/loginVerifyPhone')
}else {
next()
}
}
} else {
if (toName.slice(0,5) !== 'phone') {
@@ -72,6 +72,14 @@
v-btn-permission="'c8605037fd040fd480b052d6e9dd8d13'"
>清空</el-button>
</el-form-item>
<el-form-item label="" class="search-item btn-box">
<el-button class="common-button-default"
@click="exportStandard()"
size="mini"
v-btn-permission="''"
title="导出1年内的操作日志">导出
</el-button>
</el-form-item>
</el-form>
</div>
</div>
@@ -118,14 +126,32 @@
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<!--导出文件改名字模态框-->
<el-dialog :visible.sync="exportModelFlag" class="export-dialog" title="导出文件" width="300px">
<el-form :inline="true" class="label-input-form search-area">
<el-form-item label="导出名称" class="search-item">
<el-input v-model="exportName" placeholder="请输入导出文件名称" :maxlength="30" clearable label="导出名称"/>
</el-form-item>
</el-form>
<span slot="footer" class="demo-drawer-footer">
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="cancal">取消</el-button>
<el-button size="mini" type="primary" class="common-button-primary" icon="el-icon-check"
:loading="exportLoading"
@click="exportTestItem">提交</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {interfaceUrl} from '@/sysConfig'
export default {
name: "OperationLog",
data () {
return {
dataLoading: false,
exportModelFlag: false,
exportLoading: false,
exportName: '',
total: 0,
data: [],
typeList: [],
@@ -150,6 +176,20 @@
}
},
methods: {
// 导出取消按钮关闭模态、置空
cancal() {
this.exportModelFlag = false
},
exportTestItem() {
this.exportLoading = true
this.searchForm.exportType = ""
this.searchForm.exportName = this.exportName
this.searchForm.userId = this.$store.getters.userInfo.userId
const exportJson = JSON.stringify(this.searchForm);
window.open(interfaceUrl + 'sysLog/sys-log/exportSysLogExcelVOExcelData?exportJson='+exportJson)
this.$message.success('导出信息成功')
this.exportLoading = false
},
checkedRole (data) {
this.searchForm.account = data[0].id
this.searchForm.accountName = data[0].name
@@ -195,6 +235,10 @@
this.searchForm.content = ''
this.getData()
},
exportStandard() {
this.exportName = ''
this.exportModelFlag = true
},
},
mounted () {
this.getData()
@@ -66,23 +66,23 @@
<div class="el-upload__text">点击或拖拽上传文件</div>
</el-upload>
</el-dialog>
<!-- 选择回答人-->
<Role-tree
is-title="选择回答人"
:is-visible.sync="roleFlag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
<script>
export default {
name: "answerItem",
props: {
list: {
type: Array,
required: false
},
},
data(){
return{
roleFlag: false,
nodeList: [],
mergeSelectList: [],
// 上传地址
actionPath: 'api/att/attFile/uploadNew',
importModalshowflagtemp: false,
@@ -102,21 +102,25 @@ export default {
methods:{
//提交
handleSubmit(){
this.$emit('emitInsState',false)
let asdId = sessionStorage.getItem('queId')
this.form.fileList = this.fileList
this.form.askId = asdId
this.$http.postData('lawss/Reply/insertReply',{ ...this.form },{
_this: this
}, res => {
if(res.ok){
this.form.reply = ''
this.fileList = []
this.$emit('emitInsState',true)
//此处需要调用父组件中的方法,将问题列表进行刷新操作
}
}, e => {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$emit('emitInsState',false)
let asdId = sessionStorage.getItem('queId')
this.form.fileList = this.fileList
this.form.askId = asdId
this.$http.postData('lawss/Reply/insertReply',{ ...this.form },{
_this: this
}, res => {
if(res.respCode === '200'){
this.form.reply = ''
this.fileList = []
this.$emit('emitInsState',true)
//此处需要调用父组件中的方法,将问题列表进行刷新操作
}
}, e => {
})
}
})
},
//上传文件
@@ -169,43 +173,40 @@ export default {
}
})
},
checkedRole(data){
let asdId = sessionStorage.getItem('queId')
this.$http.postData('lawss/AskUser/insertAskUser',{
asdId: asdId,
usid: data[0].id,
},{
_this: this
}, res => {
if(res.ok){
this.$message.success('邀请成功')
}
}, e => {
})
},
//问题归档
queArchive(){
let list = []
let mergeList = JSON.parse(sessionStorage.getItem('mergeList'))
for (let i = 0; i < mergeList.length; i++) {
list.push(mergeList[i])
this.mergeSelectList = this.mergeSelectList.filter ( item => item.state !== 'yes' && item.checked);
for (let i = 0; i < this.mergeSelectList.length; i++) {
if(this.mergeSelectList[i].checked){
list.push(this.mergeSelectList[i].id)
}
}
if(this.mergeSelectList && this.mergeSelectList.length > 0){
this.$emit('emitInsState',false)
let listId = list.join(',')
this.$http.post('lawss/Reply/updateReply', {
id: listId,
},{
_this: this
}, res => {
if(res.respCode === '200'){
this.$emit('emitInsState',true)
}
}, e => {
})
}else {
this.$message.warning('请选择归档内容')
}
let listId = list.join(',')
this.$http.post('lawss/Reply/updateReply', {
id: listId,
},{
_this: this
}, res => {
}, e => {
})
},
//邀请
invitation(){
this.roleFlag = true
this.$emit('roleFlagBoo',true)
},
},
mounted () {
this.mergeSelectList = this.list
},
};
</script>
@@ -24,7 +24,7 @@
</div>
</div>
<div style="float: right; margin-top: 20px">
<el-checkbox v-if="answer.checkedShow" @change="answerChang" v-model="answer.checked">归档</el-checkbox>
<el-checkbox v-if="answer.checkedShow" @change="answerChang" :disabled="answer.state && answer.state === 'yes'" v-model="answer.checked">归档</el-checkbox>
</div>
</div>
<!-- <div class="footer-box">-->
@@ -7,7 +7,7 @@
<span>{{stand.standardEncdoing}}</span>
</div>
</div>
<div class="row">
<div class="row" v-if="stand.classification !== 'OTHER'">
<div class="item">
<span :title="stand.standardEncdoing + stand.standardName">{{stand.standardName}}</span>
</div>
+80 -43
View File
@@ -63,8 +63,8 @@
</template>
<div v-if="!questionsList || questionsList.length === 0">
<div style="padding: 20px;">
暂无数据
</div>
暂无数据
</div>
</div>
<div style="height: 100%" v-else>
<el-tabs
@@ -80,7 +80,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -138,7 +138,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -196,7 +196,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -254,7 +254,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -334,8 +334,8 @@
</template>
<loading :loading="dataLoading">正在加载数据</loading>
</div>
<div class="info-answer" >
<answer-item @emitInsState="emitInsState"></answer-item>
<div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item :key="aiKey" :list="answerList" @roleFlagBoo="roleFlagBooFunc" @emitInsState="emitInsState"></answer-item>
</div>
</el-tab-pane>
</template>
@@ -395,7 +395,7 @@
</template>
<loading :loading="dataLoading">正在加载数据</loading>
</div>
<div class="info-answer" >
<div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item>
</div>
</el-tab-pane>
@@ -456,7 +456,7 @@
</template>
<loading :loading="dataLoading">正在加载数据</loading>
</div>
<div class="info-answer" >
<div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item>
</div>
</el-tab-pane>
@@ -519,7 +519,7 @@
</template>
<loading :loading="dataLoading">正在加载数据</loading>
</div>
<div class="info-answer" >
<div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item>
</div>
</el-tab-pane>
@@ -582,7 +582,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -640,7 +640,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -698,7 +698,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -756,7 +756,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -1210,6 +1210,13 @@
</div>
</div>
</el-drawer>
<!-- 选择回答人-->
<Role-tree
is-title="选择回答人"
:is-visible.sync="roleFlag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template>
@@ -1239,7 +1246,10 @@ export default {
},
data(){
return{
aiKey:1,
dataLoading: true,
roleFlag: false,
nodeList: [],
mergeList: [],
historyList: [], //相似历史问题
handleSelectForm: {
@@ -1322,13 +1332,8 @@ export default {
immediate: true,
deep: true,
handler(val) {
this.mergeList = []
val.forEach(item =>{
if(item.checked){
this.mergeList.push(item.id)
}
})
sessionStorage.setItem('mergeList', JSON.stringify(this.mergeList))
this.aiKey++
// sessionStorage.setItem('mergeList', JSON.stringify(this.mergeList))
}
},
'questionForm.problemDescription':{
@@ -1337,8 +1342,26 @@ export default {
}
},
methods:{
checkedRole(data){
if(data[0].id){
let asdId = sessionStorage.getItem('queId')
this.$http.postData('lawss/AskUser/insertAskUser',{
asdId: asdId,
usid: data[0].id,
},{
_this: this
}, res => {
}, e => {
})
}
},
roleFlagBooFunc(boo){
if(boo){
this.roleFlag = true
}
},
emitInsState(state){
console.log(state)
if(state){
this.questionClick()
}else {
@@ -1611,6 +1634,11 @@ export default {
if(res.data.length){
res.data.forEach(item => {
item.checkedShow = true
if(item.state && item.state === 'yes'){
item.checked = true
}else {
item.checked = false
}
})
}
this.answerList = res.data
@@ -1699,6 +1727,7 @@ export default {
_this: this,
}, res => {
this.standList = res.data
this.questionClick()
})
},
//查询订阅标准
@@ -1710,6 +1739,7 @@ export default {
_this: this
}, res => {
this.standList = res.data
this.questionClick()
}, e =>{
})
@@ -1720,6 +1750,7 @@ export default {
_this: this
}, res =>{
this.standList = res.data
this.questionClick()
}, e => {
})
@@ -1796,32 +1827,38 @@ export default {
this.questionForm.standardName = this.questionForm.pubQue
this.questionForm.standardEncdoing = this.questionForm.pubQue
}
if(this.questionForm.standardId){
this.questionForm.fileList = this.fileList
this.$refs['queForm'].validate((valid) => {
if(valid){
this.$http.postData('lawss/AskQuestions/insertAskQuestions',{ ...this.questionForm },
{
_this: this
}, res => {
console.log(res);
this.dialogVisible = false
}, e => {
})
}else{
return this.$message.warning('请输入问题')
}
})
}else{
this.$message.warning('请选择至少一条标准')
if(!this.questionForm.standardId){
this.$message.warning('请选择至少一条标准')
return
}
this.questionForm.fileList = this.fileList
this.$refs['queForm'].validate((valid) => {
if(valid){
this.$http.postData('lawss/AskQuestions/insertAskQuestions',{ ...this.questionForm },
{
_this: this
}, res => {
this.dialogVisible = false
this.activeName = "myQue"
this.activeType = this.standType
this.searchBtn()
}, e => {
})
}else{
return this.$message.warning('请输入问题')
}
})
},
},
};
</script>
<style lang="less" scoped>
/deep/ .contentClass{
height: calc(~ '100% - 40px') !important;
overflow: auto !important;
}
#my-questions{
height: 100%;
display: flex;
@@ -1839,7 +1876,7 @@ export default {
overflow-y: auto;
padding: 0;
.el-tab-pane {
height: 98%;
height: 100%;
}
}
}
+3
View File
@@ -237,6 +237,7 @@ export default {
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
.standTitle{
.title{
font-size: 3.4vw;
color: #333333;
font-weight: 600;
height: auto;
@@ -247,6 +248,7 @@ export default {
}
}
.standContent{
font-size: 3.4vw;
color: #555555;
font-weight: 450;
margin-top: 5px;
@@ -256,6 +258,7 @@ export default {
line-height: 35px;
}
.standSubTime{
font-size: 3.4vw;
padding-left: 10px;
height: 35px;
line-height: 35px;
+26 -9
View File
@@ -1,6 +1,6 @@
<!--国内标准法规详情页-->
<template>
<div class="other-standard-details v-class" :class="{'hidden': !isMoreAwayBtn}">
<div class="other-standard-details v-class" :style="'width:' + (500) + 'px;'+'height:' + (screenHeight) + 'px'">
<!--title 标题-->
<div class="details-header">
<span v-if="sarStandardsInfoEO.standYear === null">{{ sarStandardsInfoEO.standSortShow || '' }} {{
@@ -58,10 +58,10 @@
<label style="float: left">{{ child.attrName }}</label>
<template v-if="child.value && child.value.length > 0">
<!-- 单个文件时-->
<div style="position: relative;margin-left: 214px; line-height: 32px">
<div style="position: relative;margin-left: 19em; line-height: 32px">
<div v-for="(file, fileIndex) in child1Func(child.value)" style="display: flex;">
<span v-if="child.value && child.value.length > 0 && child.value.length === 1" style="display: flex; align-items: center;">
<a style="font-size: 16px;color: #409EFF;cursor: pointer;display: inline-block"
<a style="font-size:0.2rem;color: #409EFF;cursor: pointer;display: inline-block"
@click="openFileInPdf(file.id, file.oldFileName)" target="_blank"
:title="file.oldFileName">{{ file.oldFileName | ellipsis50}}</a>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
@@ -69,7 +69,7 @@
<!-- 多个文件时-->
<div v-else-if="child.value && child.value.length > 0">
<span style="display: flex; align-items: center;">
<a style="font-size: 16px;color: #409EFF;cursor: pointer"
<a style="ffont-size:0.2rem;color: #409EFF;cursor: pointer"
@click="openFileInPdf(file.id, file.oldFileName)" target="_blank"
:title="file.oldFileName">{{ file.oldFileName | ellipsis50}}</a>
</span>
@@ -172,7 +172,7 @@
}}</span>
</p>
<p class="half">
<label style=" margin-right: 84px;">是否纳入认证清单</label><span>{{
<label style=" margin-right: 11em;">是否纳入认证清单</label><span>{{
sarStandardsInfoEO.isRelateAccess ? (sarStandardsInfoEO.isRelateAccess === '1' ? '是' : '否') : '-'
}}</span>
</p>
@@ -1516,6 +1516,8 @@ export default {
},
data() {
return {
screenWidth: document.body.offsetWidth - 141,
screenHeight: document.documentElement.clientHeight,
externalStatus:'',
handleList: [],
CycxOptions: [],
@@ -3439,6 +3441,18 @@ export default {
})
},*/
async mounted() {
const that = this
window.onresize = () => {
return (() => {
window.screenWidth = document.body.offsetWidth
that.$store.commit('width', window.screenWidth)
that.screenWidth = window.screenWidth - 141
window.screenHeight = document.documentElement.clientHeight
that.$store.commit('height', window.screenHeight)
that.screenHeight = window.screenHeight
that.objs.bodyWidth = window.screenWidth
})()
}
let external = localStorage.getItem("external");
if(external !== undefined && external !== null){
this.externalStatus = external
@@ -3740,6 +3754,7 @@ export default {
overflow: auto;
height: 100%;
background: #FFFFFF;
overflow: auto;
.itemsTextBox {
min-height: 300px;
@@ -3846,7 +3861,7 @@ export default {
.details-header {
padding: 34px 0;
font-size: 20px;
font-size: 0.3rem;
font-weight: bold;
color: #555555;
text-align: center;
@@ -3869,7 +3884,7 @@ export default {
border-bottom: 1px solid #E5E5E5;
.modular-header-title {
font-size: 18px;
font-size: 0.25rem;
font-weight: bold;
color: #3B424C;
@@ -3946,7 +3961,7 @@ export default {
.basic-information-content {
color: #333333;
font-size: 16px;
font-size: 0.2rem;
/*font-weight: 400;*/
.standard-text {
@@ -3998,7 +4013,7 @@ export default {
width: 213px;
height: 43px;
line-height: 43px;
font-size: 16px;
font-size: 0.2rem;
color: #333333;
vertical-align: top;
overflow: hidden;
@@ -4010,6 +4025,7 @@ export default {
line-height: 32px;
display: inline-block;
width: calc(~'100% - 225px');
font-size: 0.2rem;
//min-height: 50px;
//line-height: 50px;
//font-size: 16px;
@@ -4021,6 +4037,7 @@ export default {
}
.modular-content-p-flies {
font-size: 0.2rem;
line-height: 32px;
//position: relative;
display: inline-block;
+14 -12
View File
@@ -29,16 +29,16 @@
</div>
<div class="standContent">
<div class="standState">{{item.standName}}</div>
<div class="standSubTime">标准性质:
<span v-if="natureMap[item.standNature] === '强制性' "
style="color: #F56C6C; padding-left: 5px;">
{{ natureMap[item.standNature] }}
</span>
<span v-if="natureMap[item.standNature] === '推荐性' "
style="color: #E57800; padding-left: 5px;">
{{ natureMap[item.standNature] }}
</span>
</div>
<!-- <div class="standSubTime">标准性质:-->
<!-- <span v-if="natureMap[item.standNature] === '强制性' "-->
<!-- style="color: #F56C6C; padding-left: 5px;">-->
<!-- {{ natureMap[item.standNature] }}-->
<!-- </span>-->
<!-- <span v-if="natureMap[item.standNature] === '推荐性' "-->
<!-- style="color: #E57800; padding-left: 5px;">-->
<!-- {{ natureMap[item.standNature] }}-->
<!-- </span>-->
<!-- </div>-->
<div class="standSubTime" v-if="titleType === 'POLICY'">标准状态:
<span v-if="lawsMap[item.lawsTextState] === '作废' || lawsMap[item.lawsTextState] === '被代替'"
style="color: #F56C6C; padding-left: 5px;">
@@ -57,7 +57,7 @@
style="color: #F56C6C; padding-left: 5px;">
{{ textStatusMap[item.textStatus] }}
</span>
<span v-else-if="textStatusMap[item.textStatus] === '参考' || textStatusMap[item.textStatus] === '现行有效'"
<span v-else-if="textStatusMap[item.textStatus] === '参考'"
style="color: #98E165; padding-left: 5px;">
{{ textStatusMap[item.textStatus] }}
</span>
@@ -525,7 +525,6 @@ export default {
#domestic-stand{
width: 100%;
height: 100%;
overflow: auto;
margin: 0;
padding: 0;
background: #F6F6F6;
@@ -574,6 +573,7 @@ export default {
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
.standTitle{
.title{
font-size: 3.4vw;
color: #333333;
font-weight: 600;
height: auto;
@@ -584,6 +584,7 @@ export default {
}
}
.standContent{
font-size: 3.4vw;
color: #333333;
font-weight: 500;
margin-top: 5px;
@@ -599,6 +600,7 @@ export default {
}
}
.content-time{
font-size: 3.4vw;
width: 100%;
height: 35px;
margin-top: 5px;
+67 -26
View File
@@ -1,5 +1,6 @@
<template>
<div id="phone-home">
<div id="phone-home" :style="'height:' + (screenHeight) + 'px'">
<!-- 内容 -->
<div class="search-top">
<div class="top-title">
</div>
@@ -7,10 +8,10 @@
</div>
<div class="search-head">
<van-search
v-model="searchKey"
show-action
placeholder="请输入搜索关键词"
@search="onSearch"
v-model="searchKey"
show-action
placeholder="请输入搜索关键词"
@search="onSearch"
>
<template #action>
<div @click="onSearch">搜索</div>
@@ -39,11 +40,23 @@
</template>
<script>
import vueCustomScrollbar from 'vue-custom-scrollbar'
export default {
name: "phoneHome",
components: {
vueCustomScrollbar
},
data() {
return {
settings: {
suppressScrollY: false,
suppressScrollX: false,
wheelPropagation: false
},
searchKey: "",
screenWidth: document.body.offsetWidth - 141,
screenHeight: document.documentElement.clientHeight,
};
},
methods: {
@@ -70,37 +83,60 @@ export default {
})
}
},
}
},
mounted() {
const that = this
window.onresize = () => {
return (() => {
window.screenWidth = document.body.offsetWidth
that.$store.commit('width', window.screenWidth)
that.screenWidth = window.screenWidth - 141
window.screenHeight = document.documentElement.clientHeight
that.$store.commit('height', window.screenHeight)
that.screenHeight = window.screenHeight
that.objs.bodyWidth = window.screenWidth
})()
}
},
};
</script>
<style lang="less" scoped>
/deep/ .scroll-area {
position: relative;
margin: auto;
width: 100%;
height: 100%;
}
#phone-home {
width: 100%;
height: 100%;
background: #F6F6F6;
overflow: auto;
.van-search .van-cell {
padding: 10px;
}
.search-top{
height: 200px;
width: 100%;
background: url("../../assets/images/phone/homeTop.png");
background-size:100% 100%;
height: 4rem;
width: 100vw;
background: url("../../assets/images/phone/homeTop.png") no-repeat center;
background-size:100vw 40vh;
position: relative;
.top-title{
position: absolute;
top: 15px;
left: 15px;
width: 30%;
height: 5%;
width: 23vw;
height: 0.8rem;
background: url("../../assets/images/phone/phoneTitle.png") no-repeat;
background-size: 100% 100%;
}
.home-title{
color: #FFFFFF;
position: absolute;
top: 12%;
left: 25%
top: 1.5rem;
left: 17.3vw;
}
}
.search-head{
@@ -112,6 +148,7 @@ export default {
flex-wrap: wrap;
background: #F6F6F6;
.content-top {
position: relative;
width: 47%;
height: 150px;
line-height: 230px;
@@ -123,34 +160,38 @@ export default {
}
.content-box{
display: inline-block;
width: 50px;
height: 50px;
width: 1rem;
height: 1rem;
position: absolute;
background-size: 100% 100%;
}
.content-box{
top: 39%;
left: 20%;
.content-box1{
top: 0.7rem;
margin-left: 1.4em;
/*left: 16.3vw;*/
background: url("../../assets/images/phone/domesticStand.png");
}
.content-box2{
top: 39%;
left: 65%;
top: 0.7rem;
margin-left: 1.4em;
/*left: 16.3vw;*/
background: url("../../assets/images/phone/overseasStand.png");
}
.content-box3{
top: 58%;
left: 20%;
top: 0.7rem;
margin-left: 0.9em;
/*left: 16.3vw;*/
background: url("../../assets/images/phone/policyStand.png");
}
.content-box4{
top: 58%;
left: 65%;
top: 0.7rem;
margin-left: 0.9em;
/*left: 16.3vw;*/
background: url("../../assets/images/phone/dynamicsStand.png");
}
.content-span{
color: #000000;
font-size: 16px;
font-size: 0.3rem;
font-weight: 500;
}
}
+3
View File
@@ -268,6 +268,7 @@ export default {
.standTitle {
.title {
font-size: 3.4vw;
color: #333333;
font-weight: 600;
height: auto;
@@ -279,6 +280,7 @@ export default {
}
.standContent {
font-size: 3.4vw;
color: #555555;
font-weight: 450;
margin-top: 5px;
@@ -290,6 +292,7 @@ export default {
}
.standSubTime {
font-size: 3.4vw;
padding-left: 10px;
height: 35px;
line-height: 35px;
@@ -6117,7 +6117,7 @@ export default {
display: inline-block;
width: 15px;
height: 15px;
background: url('~@/assets/images/shangqi/img/none-file.png');
background: url('~@/assets/images/shangqi/img/none-file-new.png');
background-size: 100% 100%;
}
@@ -5325,7 +5325,7 @@ export default {
display: inline-block;
width: 15px;
height: 15px;
background: url('~@/assets/images/shangqi/img/none-file.png');
background: url('~@/assets/images/shangqi/img/none-file-new.png');
background-size: 100% 100%;
}
@@ -4489,7 +4489,7 @@
display: inline-block;
width: 15px;
height: 15px;
background:url('~@/assets/images/shangqi/img/none-file.png');
background: url('~@/assets/images/shangqi/img/none-file-new.png');
background-size:100% 100%;
}
/deep/ .is-show{
@@ -5400,7 +5400,7 @@ export default {
display: inline-block;
width: 15px;
height: 15px;
background: url('~@/assets/images/shangqi/img/none-file.png');
background: url('~@/assets/images/shangqi/img/none-file-new.png');
background-size: 100% 100%;
}
@@ -5,17 +5,17 @@
<div>
<el-button class="dybtn" size="mini" type="primary" @click.stop="subscribe">订阅</el-button>
</div>
<div>
<div class="divWhiteSpace">
<div class="row">
<div class="item">
<div class="item1">
<div>提问
<span>{{question.problemDescription}}</span>
</div>
</div>
</div>
<div class="row">
<div class="row" >
<div class="item">
<div>{{question.answerer}}
<div>{{question.questioner}}
<span>{{question.questionTime}}</span>
</div>
</div>
@@ -67,16 +67,33 @@ export default {
.dybtn{
float: right;
}
.divWhiteSpace{
width: 80%;
}
.row {
line-height: 1.8;
}
.item {
display: inline-block;
width: 200px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.item1 {
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-break: break-word;
word-wrap: break-word;
white-space: -moz-pre-wrap;
white-space: -hp-pre-wrap;
white-space: -o-pre-wrap;
white-space: -pre-wrap;
white-space: pre;
white-space: pre-wrap;
white-space: pre-line;
}
}
/deep/ .el-button--mini {
padding: 5px;
@@ -7,7 +7,7 @@
<span>{{stand.standardEncdoing}}</span>
</div>
</div>
<div class="row">
<div class="row" v-if="stand.classification !== 'OTHER'">
<div class="item">
<span :title="stand.standardEncdoing + stand.standardName">{{stand.standardName}}</span>
</div>
@@ -71,7 +71,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -128,7 +128,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -185,7 +185,7 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
@@ -242,8 +242,8 @@
<template slot="label">
<questions-item :question="question"></questions-item>
</template>
<div>
<template v-for="(item, index) in answerList">
<div class="contentClass">
<template v-for="(item, index) in answerList">
<div class="clearfix">
<div class="answer-box" >
<question-item-info :answer="item"></question-item-info>
@@ -791,7 +791,7 @@ export default {
this.activeName = this.$route.query.standType
this.standSearch()
}else{
switch (this.$route.query.standType){
switch (this.standType){
case 'INLAND':
this.standSearch2()
break
@@ -1048,6 +1048,7 @@ export default {
pubQue : '',//公共问题
classification: 'INLAND', //标准类型
problemDescription: '', //问题
questioner: this.$store.getters.userInfo.userId, //提问人
standardEncdoing: '', //标准编号
standardName: '', //标准名称
standardId:'', //标准id
@@ -1213,8 +1214,27 @@ export default {
{
_this: this
}, res => {
console.log(res);
this.dialogVisible = false
switch (this.standType){
case 'INLAND':
this.standSearch2()
break
case 'FOREIGN':
this.activeName = 'FOREIGN'
this.questionSerach.classification = 'FOREIGN'
this.standSearch2()
break
case 'BUSINESS_STAND':
this.activeName = 'BUSINESS_STAND'
this.questionSerach.classification = 'BUSINESS_STAND'
this.standSearch2()
break
case 'OTHER':
this.activeName = 'OTHER'
this.questionSerach.classification = 'OTHER'
this.standSearch2()
break
}
}, e => {
})
@@ -1231,6 +1251,10 @@ export default {
</script>
<style lang="less" scoped>
/deep/ .contentClass{
height: calc(~ '100% - 20px');
overflow: auto;
}
#my-questions{
height: 100%;
display: flex;
@@ -1245,6 +1269,7 @@ export default {
margin-right: 0;
}
/deep/.el-tabs__content {
overflow-y: auto;
padding: 0;
.el-tab-pane {
height: 100%;
@@ -1295,6 +1320,15 @@ export default {
background: #F5F7FA;
float: right;
margin: 20px 10px 0 80px;
word-break: break-word; /* 文本行的任意字内断开 */
word-wrap: break-word; /* IE */
white-space: -moz-pre-wrap; /* Mozilla */
white-space: -hp-pre-wrap; /* HP printers */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
}
.info-answer{
height: 200px;
@@ -2765,9 +2765,18 @@
background-color: #E6A23C !important;
}
/deep/ .greenEsClass{
background-color: #98E165 !important;
}
/deep/ .redEsClass{
background-color: #F56C6C !important;
}
/deep/ .greenClass{
color: #98E165 !important;
}
/deep/ .yellowClass{
color: #E6A23C !important;
}
+14 -1
View File
@@ -6555,6 +6555,11 @@
"safe-buffer" "^5.0.1"
"sha.js" "^2.4.8"
"perfect-scrollbar@^1.5.3":
"integrity" "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g=="
"resolved" "https://registry.npmmirror.com/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz"
"version" "1.5.5"
"performance-now@^2.1.0":
"integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
"resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
@@ -7140,7 +7145,7 @@
"resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
"version" "6.5.2"
"qs@6.7.0":
"qs@6.7.0", "qs@latest":
"integrity" "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
"resolved" "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
"version" "6.7.0"
@@ -8715,6 +8720,14 @@
"resolved" "https://registry.npm.taobao.org/vue-contextmenujs/download/vue-contextmenujs-1.3.13.tgz"
"version" "1.3.13"
"vue-custom-scrollbar@^1.4.4":
"integrity" "sha512-GKXEmLgUpH0Z+l4Y1TChgLpcKWXqdOOelfssuQakhPy/vvA4b5tqbWdvitCu1+zJlv+5vHa8BrUhlz1gJuZHgQ=="
"resolved" "https://registry.npmmirror.com/vue-custom-scrollbar/-/vue-custom-scrollbar-1.4.4.tgz"
"version" "1.4.4"
dependencies:
"perfect-scrollbar" "^1.5.3"
"vue" "^2.6.11"
"vue-hot-reload-api@^2.3.0":
"integrity" "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog=="
"resolved" "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz"