[update] 修改自测bug,完善问答库页面

This commit is contained in:
lideqin
2023-09-25 15:51:34 +08:00
parent aa892bb50b
commit 0b193de9e0
16 changed files with 318 additions and 158 deletions
+14 -8
View File
@@ -5,13 +5,19 @@ module.exports = {
}, },
// 问答库 // 问答库
questionAnswer: { questionAnswer: {
classify: '分类', classify: 'Classify',
title: '标题', title: 'Title',
quiz: '提问', quiz: 'Quiz',
questionDesc: '问题描述', questionDesc: 'Problem Description',
attach: '附件', attach: 'Attachment',
quizTime: '提问时间', quizTime: 'Question Time',
answer: '回答', answer: 'answer',
poster: '发帖人' poster: 'Poster',
answerNum: 'replies',
top: '【top】',
cancelTop: 'untop',
setTop: 'Set To Top',
answerQuestion: 'reply to a question',
word: 'word'
} }
} }
+7 -1
View File
@@ -12,6 +12,12 @@ module.exports = {
attach: '附件', attach: '附件',
quizTime: '提问时间', quizTime: '提问时间',
answer: '回答', answer: '回答',
poster: '发帖人' poster: '发帖人',
answerNum: '个回复',
top: '【置顶】',
cancelTop: '取消置顶',
setTop: '设置为置顶',
answerQuestion: '回复问题',
word: '字'
} }
} }
+1 -1
View File
@@ -197,7 +197,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
</a> </a>
<a-button icon="search" type="primary" @click="searchQuery" style="margin-left: 8px" v-has="searchHas">{{ $t('query') }}</a-button> <a-button icon="search" type="primary" @click="searchQuery" style="margin-left: 8px" v-has="searchHas">{{ $t('query') }}</a-button>
<a-button icon="reload" style="margin-left: 8px" @click="searchReset">{{ $t('reset') }}</a-button> <a-button icon="reload" type="primary" ghost style="margin-left: 8px" @click="searchReset">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
</a-form> </a-form>
@@ -8,7 +8,7 @@
{{this.$t('standardSelect.standardSelection')}} {{this.$t('standardSelect.standardSelection')}}
</a-button> </a-button>
</div> </div>
<standard-model-selection-modal ref="standardSelectionModal" v-bind="$attrs" :value="value" @input="modalInput" @nameChange="modalNameChange"></standard-model-selection-modal> <standard-model-selection-modal ref="standardSelectionModal" v-bind="$attrs" :value="value" @change="modalInput" @nameChange="modalNameChange"></standard-model-selection-modal>
</div> </div>
</template> </template>
@@ -39,10 +39,10 @@ export default {
}, },
// 输入框输入监听 // 输入框输入监听
indexClick (event) { indexClick (event) {
this.$emit('input', event.target.value) this.$emit('change', event.target.value)
}, },
modalInput (value) { modalInput (value) {
this.$emit('input', value) this.$emit('change', value)
}, },
modalNameChange (value) { modalNameChange (value) {
this.$emit('nameChange', value) this.$emit('nameChange', value)
@@ -50,7 +50,7 @@ export default {
}, },
model: { model: {
prop: 'value', prop: 'value',
event: 'input' event: 'change'
} }
} }
</script> </script>
@@ -15,6 +15,7 @@
<a-col :sm="8"> <a-col :sm="8">
<a-form-item :label="$t('standardSelect.source')" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item :label="$t('standardSelect.source')" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag style="width: 100%" v-model="queryParam.source" <j-dict-select-tag style="width: 100%" v-model="queryParam.source"
:disabled="disabledSourceSearch"
:placeholder="$t('pleaseSelect')+$t('standardSelect.source')" :placeholder="$t('pleaseSelect')+$t('standardSelect.source')"
:triggerChange="false" dictCode="standard_source"/> :triggerChange="false" dictCode="standard_source"/>
</a-form-item> </a-form-item>
@@ -66,6 +67,10 @@ export default {
value: { value: {
type: String, type: String,
default: '' default: ''
},
disabledSourceSearch: {
type: Boolean,
default: false
} }
}, },
data () { data () {
@@ -132,10 +137,11 @@ export default {
}, },
methods: { methods: {
open () { open () {
this.source ? this.queryParam.source = this.source : this.queryParam = {}
this.visible = true this.visible = true
this.queryParam = {} this.$nextTick(() => {
this.replacePage() this.source ? this.queryParam.source = this.source : this.queryParam = {}
this.replacePage()
})
}, },
// 获取表格数据 // 获取表格数据
replacePage () { replacePage () {
@@ -181,7 +187,7 @@ export default {
serialNumber.push(res.standardNumber) serialNumber.push(res.standardNumber)
serialNameArr.push(res.standardName) serialNameArr.push(res.standardName)
}) })
this.$emit('input', serialNumber.join(',')) this.$emit('change', serialNumber.join(','))
this.$emit('nameChange', serialNameArr.join(',')) this.$emit('nameChange', serialNameArr.join(','))
this.visible = false this.visible = false
} else { } else {
+43
View File
@@ -324,6 +324,49 @@ export const JeroListMixin = {
modalLoading.destroy() modalLoading.destroy()
}) })
}, },
// 带文件导出
handleFileExport (fileName) {
if (!fileName || typeof fileName !== 'string') {
fileName = '导出文件'
}
const param = this.getQueryParams()
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
param.selections = this.selectedRowKeys.join(',')
}
console.log('导出参数', param)
// 加一个大的提示
const modalLoading = this.$info({
title: '提示',
content: <span>正在导出,请稍候 <a-spin size="small" /></span>,
keyboard: false
})
// 把知道了这个按钮去掉
this.$nextTick(() => {
document.getElementsByClassName('ant-modal-confirm-btns')[0].style = 'display:none'
})
downFile(this.url.exportZipUrl, param).then((data) => {
if (!data) {
this.$message.warning('文件下载失败')
return
}
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(new Blob([data]), fileName + '.zip')
} else {
const url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName + '.zip')
document.body.appendChild(link)
link.click()
document.body.removeChild(link) // 下载完成移除元素
window.URL.revokeObjectURL(url) // 释放掉blob对象
}
}).finally(() => {
// 销毁这个提示
modalLoading.destroy()
})
},
/* 导入 */ /* 导入 */
handleImportExcel (info) { handleImportExcel (info) {
// 加一个大的提示 // 加一个大的提示
@@ -37,7 +37,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a> </a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'businessSupport:questionAnswer:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'businessSupport:questionAnswer:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -155,7 +155,7 @@ export default {
title: this.$t('title'), title: this.$t('title'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'title', dataIndex: 'titleSlot',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
@@ -195,9 +195,16 @@ export default {
} }
], ],
url: { url: {
list: '' list: '',
delete: ''
}, },
userInfo: {} userInfo: {},
dataSource: [
{
id: 1,
// createBy: 'e9ca23d68d884d4ebb19d07889727dae'
}
]
} }
}, },
mounted () { mounted () {
@@ -208,9 +215,6 @@ export default {
handleQuiz () { handleQuiz () {
this.$refs.quizModal.title = this.$t('businessSupport.questionAnswer.quiz') this.$refs.quizModal.title = this.$t('businessSupport.questionAnswer.quiz')
this.$refs.quizModal.open() this.$refs.quizModal.open()
// this.$router.push({
// path: '/businessSupport/questionDetail'
// })
}, },
// 点击相关材料 // 点击相关材料
handleAttachClick (record) { handleAttachClick (record) {
@@ -236,6 +240,26 @@ export default {
// 其余可预览文件仍使用KKFile进行预览 // 其余可预览文件仍使用KKFile进行预览
const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}`
window.open(url) window.open(url)
},
// 查看
handleDetail (record) {
this.$router.push({
path: '/businessSupport/questionDetail',
query: {
id: record.id,
canAnswer: 0
}
})
},
// 回答
handleAnswer (record) {
this.$router.push({
path: '/businessSupport/questionDetail',
query: {
id: record.id,
canAnswer: 1
}
})
} }
} }
} }
@@ -10,58 +10,76 @@
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form :form="form"> <a-form :form="form">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('businessSupport.questionAnswer.classify')"> <a-row :gutter="24">
<a-select :placeholder="$t('pleaseSelect') + $t('businessSupport.questionAnswer.classify')" <a-col :span="12">
allowClear <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('businessSupport.questionAnswer.classify')">
v-decorator.trim="[ 'level', validatorRules.level]"> <a-select :placeholder="$t('pleaseSelect') + $t('businessSupport.questionAnswer.classify')"
<a-select-option :value="null" :key="-1">请选择</a-select-option> allowClear
<a-select-option :value="1">国内标准</a-select-option> v-decorator.trim="[ 'level', validatorRules.level]">
<a-select-option :value="2">海外标准</a-select-option> <a-select-option :value="null" :key="-1">请选择</a-select-option>
<a-select-option :value="3">企业标准</a-select-option> <a-select-option value="1">国内标准</a-select-option>
<a-select-option :value="4">其他问题</a-select-option> <a-select-option value="2">海外标准</a-select-option>
</a-select> <a-select-option value="3">企业标准</a-select-option>
</a-form-item> <a-select-option value="4">其他问题</a-select-option>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardNumber')"> </a-select>
<standard-model-selection </a-form-item>
v-decorator.trim="[ 'standardNumber', validatorRules.standardNumber]" </a-col>
:placeholder="$t('pleaseEnterOrSelect') + $t('standardNumber')" <a-col :span="12" v-if="['1', '2', '3'].includes(form.getFieldValue('level'))">
@nameChange="standardNameChange" <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardNumber')">
/> <standard-model-selection
</a-form-item> v-decorator.trim="[ 'standardNumber', validatorRules.standardNumber]"
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardName')"> :placeholder="$t('pleaseEnterOrSelect') + $t('standardNumber')"
<a-input disabled :placeholder="$t('pleaseEnter') + $t('standardName')" :source="form.getFieldValue('level')"
v-decorator.trim="[ 'standardName', validatorRules.standardName]"/> :disabledSourceSearch="true"
</a-form-item> @nameChange="standardNameChange"
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('title')"> />
<a-input v-decorator.trim="[ 'title', validatorRules.title]" </a-form-item>
:placeholder="$t('pleaseEnter') + $t('title')"/> </a-col>
</a-form-item> <a-col :span="12" v-if="['1', '2', '3'].includes(form.getFieldValue('level'))">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('project')"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardName')">
<a-select :placeholder="$t('pleaseSelect') + $t('project')" <a-input disabled :placeholder="$t('pleaseEnter') + $t('standardName')"
allowClear v-decorator.trim="[ 'standardName', validatorRules.standardName]"/>
v-decorator.trim="[ 'project', validatorRules.project]"> </a-form-item>
<a-select-option :value="null" :key="-1">请选择</a-select-option> </a-col>
<a-select-option v-for="item in projectList" :value="item.id" :key="item.id">{{ item.projectName }}</a-select-option> <a-col :span="12">
</a-select> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('title')">
</a-form-item> <a-input v-decorator.trim="[ 'title', validatorRules.title]"
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('businessSupport.questionAnswer.quizTime')"> :placeholder="$t('pleaseEnter') + $t('title')"/>
<a-date-picker </a-form-item>
v-decorator.trim="[ 'quizTime', validatorRules.quizTime]" </a-col>
format="YYYY-MM-DD HH:mm:ss" <a-col :span="12">
value-format="YYYY-MM-DD HH:mm:ss" <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('project')">
showTime <a-select :placeholder="$t('pleaseSelect') + $t('project')"
></a-date-picker> allowClear
</a-form-item> v-decorator.trim="[ 'project', validatorRules.project]">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('businessSupport.questionAnswer.questionDesc')"> <a-select-option :value="null" :key="-1">请选择</a-select-option>
<a-textarea <a-select-option v-for="item in projectList" :value="item.id" :key="item.id">{{ item.projectName }}</a-select-option>
v-decorator.trim="[ 'questionDesc', validatorRules.questionDesc]" </a-select>
:placeholder="$t('pleaseEnter')+$t('businessSupport.questionAnswer.questionDesc')" </a-form-item>
:maxLength="500" </a-col>
:rows="4" /> <a-col :span="12">
<j-upload v-decorator.trim="[ 'attach', validatorRules.attach]" <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('businessSupport.questionAnswer.quizTime')">
isDownload> <a-date-picker
</j-upload> v-decorator.trim="[ 'quizTime', validatorRules.quizTime]"
</a-form-item> format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
showTime
></a-date-picker>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.questionDesc')">
<a-textarea
v-decorator.trim="[ 'questionDesc', validatorRules.questionDesc]"
:placeholder="$t('pleaseEnter')+$t('businessSupport.questionAnswer.questionDesc')"
:maxLength="500"
:rows="4" />
<j-upload v-decorator.trim="[ 'attach', validatorRules.attach]"
isDownload>
</j-upload>
</a-form-item>
</a-col>
</a-row>
</a-form> </a-form>
</a-spin> </a-spin>
@@ -91,7 +109,15 @@ export default {
}, },
wrapperCol: { wrapperCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 16 } sm: { span: 18 }
},
longLabelCol: {
xs: { span: 24 },
sm: { span: 3 }
},
longWrapperCol: {
xs: { span: 24 },
sm: { span: 20 }
}, },
validatorRules: { validatorRules: {
classify: { classify: {
@@ -1,62 +1,79 @@
<template> <template>
<div class="answer-page"> <div class="detail-page">
<div class="answer-page-title">{{ model.title }}</div> <div class="detail-page-title">{{ model.title }}</div>
<div class="answer-page-second-title"> <div class="detail-page-second-title">
{{ $t('businessSupport.questionAnswer.poster') + ':' + model.orgCodeTxt + ' ' + model.poster }} {{ $t('businessSupport.questionAnswer.poster') + ':' + model.orgCodeTxt + ' ' + model.poster }}
</div> </div>
<a-divider dashed/> <div class="detail-page-part">
<div class="base-info-wrapper"> <div class="detail-page-part-form">
<a-row :gutter="24"> <!-- 标准号/标准名称 -->
<a-col :span="4" class="base-info-title">{{ $t('standardNumOrName') }}</a-col> <div class="detail-page-part-form-item-large">
<a-col :span="20" class="base-info-value"><a>{{ model.standardNumber + ' ' + model.standardName }}</a></a-col> <label>{{ $t('standardNumOrName') }}</label>
</a-row> <span>{{ model.standardNumber && model.standardName ? model.standardNumber + ' ' + model.standardName : global.emptyLine }}</span>
<a-row :gutter="24"> </div>
<a-col :span="4" class="base-info-title">{{ $t('project') }}</a-col> <!-- 项目 -->
<a-col :span="20" class="base-info-value">{{ model.project }}</a-col> <div class="detail-page-part-form-item-large">
</a-row> <label>{{ $t('project') }}</label>
<a-row :gutter="24"> <span>{{ model.project || global.emptyLine }}</span>
<a-col :span="4" class="base-info-title">{{ $t('businessSupport.questionAnswer.attach') }}</a-col> </div>
<a-col :span="20" class="base-info-value"><a>{{ model.attach }}</a></a-col> <!-- 附件 -->
</a-row> <div class="detail-page-part-form-item-large-file">
<label>{{ $t('businessSupport.questionAnswer.attach') }}</label>
<span>{{ model.attach || global.emptyLine }}</span>
</div>
</div>
</div> </div>
<a-divider dashed/>
<!-- 问题描述部分 --> <!-- 问题描述部分 -->
<div class="question-desc-wrapper"> <div class="question-desc-wrapper">
<p>{{ model.questionDesc }}</p> <p class="question-desc">{{ model.questionDesc }}</p>
<p class="right-bottom-p"> <p class="right-bottom-p">
<span class="time-span">{{ model.quizTime }}</span> <span class="time-span">{{ model.quizTime }}</span>
<span class="right-bottom-p-span">{{ answerArr.length }}个回复</span> <span class="right-bottom-p-span">{{ answerArr.length + $t('businessSupport.questionAnswer.answerNum')}}</span>
</p> </p>
</div> </div>
<!-- 历史回答数据 --> <!-- 历史回答数据 -->
<div v-for="(item, index) in answerArr" :key="index" class="answer-wrapper"> <div v-for="(item, index) in answerArr" :key="index" class="answer-wrapper">
<div class="left-user-info"> <div class="left-user-info">
<a-avatar shape="square" :src="getAvatarView(item.avatar)" icon="user"/> <a-avatar shape="square" :size="56" :src="getAvatarView(item.avatar)" icon="user"/>
<p>{{ item.realname }}</p> <p>{{ item.realname }}</p>
<p>{{ item.orgCodeTxt }}</p> <p>{{ item.orgCodeTxt }}</p>
</div> </div>
<div class="right-answer-wrapper"> <div class="right-answer-wrapper">
<p v-if="item.isTop" class="top-p">【置顶】</p> <!-- 是否是置顶 -->
<p v-if="item.isTop" class="top-p">{{ $t('businessSupport.questionAnswer.top') }}</p>
<!-- 回答描述 -->
<p :class="!item.isTop ? 'no-top-desc' : ''">{{ item.answerDesc }}</p> <p :class="!item.isTop ? 'no-top-desc' : ''">{{ item.answerDesc }}</p>
<p class="right-bottom-p"> <p class="right-bottom-p">
<span>{{ item.answerTime }}</span> <span>{{ item.answerTime }}</span>
<a class="right-bottom-p-a" v-if="item.isTop">取消置顶</a> <!-- 置顶评论的操作按钮 -->
<a class="right-bottom-p-a" v-else>设置为置顶</a> <template v-if="item.isTop">
<a class="right-bottom-p-a">删除</a> <!-- 取消置顶 -->
<a class="right-bottom-p-a">{{ $t('businessSupport.questionAnswer.cancelTop') }}</a>
<!-- 删除 : 发帖人、评论人、有置顶权限的用户可以删除 ?? -->
<a class="right-bottom-p-a">{{ $t('delete') }}</a>
</template>
<!-- 非置顶评论 -->
<template v-else>
<!-- 设置为置顶 -->
<a class="right-bottom-p-a">{{ $t('businessSupport.questionAnswer.setTop') }}</a>
<!-- 删除 : 发帖人、评论人、有置顶权限的用户可以删除,置顶的评论不允许删除,取消置顶后允许删除 ?? -->
<a class="right-bottom-p-a">{{ $t('delete') }}</a>
</template>
</p> </p>
</div> </div>
</div v-for="(item, index) in answerArr" :key="index"> </div>
<!-- 回答区域 --> <!-- 回答区域 -->
<div class="answer-wrapper"> <div v-if="canAnswer === 1" class="answer-wrapper">
<div class="left-user-info"> <div class="left-user-info">
<a-avatar shape="square" :src="getAvatarView(currentUser.avatar)" icon="user"/> <a-avatar shape="square" :size="56" :src="getAvatarView(currentUser.avatar)" icon="user"/>
<p>{{ currentUser.realname }}</p> <p>{{ currentUser.realname }}</p>
<p>{{ currentUser.orgCodeTxt }}</p> <p>{{ currentUser.orgCodeTxt }}</p>
</div> </div>
<div class="right-answer-form-wrapper"> <div class="right-answer-form-wrapper">
<p>回复问题</p> <p>{{ $t('businessSupport.questionAnswer.answerQuestion') }}</p>
<a-textarea v-model="answerDesc"></a-textarea> <a-textarea v-model="answerDesc" :autoSize="{minRows: 4}" :maxLength="2000"></a-textarea>
<a-button class="submit-btn" type="primary">提交</a-button> <p class="answer-desc-num">{{ answerDesc.length }}/2000{{ $t('businessSupport.questionAnswer.word') }}</p>
<a-button class="submit-btn" type="primary" @click="submit">{{ $t('submit') }}</a-button>
</div> </div>
</div> </div>
</div> </div>
@@ -112,12 +129,14 @@ export default {
realname: '', realname: '',
orgCodeTxt: '' orgCodeTxt: ''
}, },
answerDesc: '' answerDesc: '',
canAnswer: false
} }
}, },
mounted () { mounted () {
const userInfo = Vue.ls.get(USER_INFO) const userInfo = Vue.ls.get(USER_INFO)
this.currentUser = Object.assign({}, userInfo) this.currentUser = Object.assign({}, userInfo)
this.canAnswer = Number(this.$route.query.canAnswer)
}, },
methods: { methods: {
getAvatarView (avatar) { getAvatarView (avatar) {
@@ -128,47 +147,71 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.answer-page {
padding: 24px;
}
.answer-page-title { // 二级标题
font-size: 20px; .detail-page-second-title {
font-family: PingFang SC-Medium, PingFang SC, sans-serif;
color: #1D2129;
font-weight: 600;
text-align: center;
margin-bottom: 24px;
}
.answer-page-second-title {
font-size: 16px; font-size: 16px;
text-align: center; text-align: center;
font-weight: 550; font-weight: 550;
margin-bottom: 20px;
} }
.base-info-wrapper { .detail-page-part-form-item-large {
font-size: 16px; width: 100%;
font-family: PingFang SC-Medium, PingFang SC, sans-serif; display: flex;
.base-info-title { margin: 0 16px 16px 0;
font-weight: 530;
label {
width: 20%;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
font-weight: 400;
color: #86909C;
}
span {
white-space: pre-wrap;
word-break: break-all;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
color: #1D2129; color: #1D2129;
} }
.base-info-value { }
color: #1D2129; .detail-page-part-form-item-large-file {
width: 100%;
display: flex;
margin: 0 16px 16px 0;
label {
width: 20%;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
font-weight: 400;
color: #86909C;
}
a {
white-space: pre-wrap;
word-break: break-all;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
} }
} }
// 问题描述部分 // 问题描述部分
.question-desc-wrapper { .question-desc-wrapper {
position: relative; border-radius: 8px;
padding-bottom: 40px; border: 1px solid #E5E6EB;
margin-bottom: 20px;
padding: 20px;
.question-desc {
font-size: 16px;
}
} }
// 历史回答数据 // 历史回答数据
.answer-wrapper { .answer-wrapper {
width: 100%; border-radius: 8px;
//height: 100%; border: 1px solid #E5E6EB;
border: 1px solid #1D2129; margin-bottom: 20px;
display: flex; display: flex;
//flex: 1;
.left-user-info { .left-user-info {
width: 300px; width: 300px;
display: flex; display: flex;
@@ -176,19 +219,26 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: rgb(247, 248, 250); background: rgb(247, 248, 250);
padding: 20px 0 5px 0;
} }
.right-answer-wrapper { .right-answer-wrapper {
position: relative; width: 100%;
padding: 20px 10px 40px 10px; padding: 20px 10px 20px 10px;
box-sizing: border-box; box-sizing: border-box;
} }
.right-answer-form-wrapper { .right-answer-form-wrapper {
padding: 20px; padding: 20px 10px;
width: 100%; width: 100%;
box-sizing: border-box;
.submit-btn { .submit-btn {
margin-top: 20px; margin-top: 20px;
} }
} }
.answer-desc-num {
text-align: right;
margin-top: 5px;
margin-bottom: 0;
}
.top-p { .top-p {
color: #D52C26; color: #D52C26;
} }
@@ -199,11 +249,9 @@ export default {
// 右下角的时间和按钮区域 // 右下角的时间和按钮区域
.right-bottom-p { .right-bottom-p {
height: 20px; height: 20px;
display: flex; text-align: right;
width: auto; padding-right: 8px;
position: absolute; margin-bottom: 0;
right: 10px;
bottom: 0;
.time-span { .time-span {
color: #86909C; color: #86909C;
} }
@@ -67,7 +67,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a> </a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:check:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:check:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -198,7 +198,7 @@ export default {
title: this.$t('serialNumber'), title: this.$t('serialNumber'),
dataIndex: '', dataIndex: '',
key: 'rowIndex', key: 'rowIndex',
width: 60, width: 80,
align: 'center', align: 'center',
customRender: function (t, r, index) { customRender: function (t, r, index) {
return parseInt(index) + 1 return parseInt(index) + 1
@@ -300,7 +300,7 @@ export default {
list: '/enterprise/inspect/page', list: '/enterprise/inspect/page',
exportXlsUrl: '/enterprise/inspect/exportData', exportXlsUrl: '/enterprise/inspect/exportData',
exportPostponeDataUrl: '/enterprise/inspect/exportDataWithDelay', // 导出延期数据 exportPostponeDataUrl: '/enterprise/inspect/exportDataWithDelay', // 导出延期数据
exportRectificationPlanUrl: '' // 导出整改计划 exportRectificationPlanUrl: '/enterprise/inspect/exportDataRectifyPlan' // 导出整改计划
}, },
operationList: [ operationList: [
{ {
@@ -119,7 +119,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a> </a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:plan:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:plan:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -38,7 +38,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a> </a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:publicize:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:publicize:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -177,7 +177,8 @@ export default {
], ],
url: { url: {
list: '/enterprise/declare/page', list: '/enterprise/declare/page',
exportXlsUrl: '/enterprise/declare/exportData' exportXlsUrl: '/enterprise/declare/exportData',
exportZipUrl: '/enterprise/declare/exportDataWithFile'
} }
} }
}, },
@@ -27,7 +27,7 @@
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons"> <div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search" v-has="'enterpriseStandardLibrary:reviewMeeting:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'enterpriseStandardLibrary:reviewMeeting:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -100,7 +100,7 @@ export default {
title: this.$t('serialNumber'), title: this.$t('serialNumber'),
dataIndex: '', dataIndex: '',
key: 'rowIndex', key: 'rowIndex',
width: 60, width: 80,
align: 'center', align: 'center',
customRender: function (t, r, index) { customRender: function (t, r, index) {
return parseInt(index) + 1 return parseInt(index) + 1
@@ -43,7 +43,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a> </a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:recheckPlan:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'enterpriseStandardLibrary:recheckPlan:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -110,7 +110,7 @@ export default {
title: this.$t('serialNumber'), title: this.$t('serialNumber'),
dataIndex: '', dataIndex: '',
key: 'rowIndex', key: 'rowIndex',
width: 60, width: 80,
align: 'center', align: 'center',
customRender: function (t, r, index) { customRender: function (t, r, index) {
return parseInt(index) + 1 return parseInt(index) + 1
@@ -23,9 +23,9 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<div style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search" v-has="'sys:friendshipLink:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'sys:friendshipLink:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
@@ -88,7 +88,7 @@ export default {
dataIndex: '', dataIndex: '',
key: 'rowIndex', key: 'rowIndex',
align: 'center', align: 'center',
width: 60, width: 80,
customRender: function (t, r, index) { customRender: function (t, r, index) {
return parseInt(index) + 1 return parseInt(index) + 1
} }
@@ -96,7 +96,7 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a> </a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'sys:innerWorkingGroup:search'">{{ $t('query') }}</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'sys:innerWorkingGroup:search'">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button> <a-button type="primary" ghost @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>