合并分支 'dev_third_stage' 到 'master'

Dev third stage

查看合并请求 laws-nio/laws-weilai!115
This commit is contained in:
李雪涛
2022-07-31 10:42:50 +08:00
37 changed files with 1396 additions and 333 deletions
+1
View File
@@ -28,6 +28,7 @@
"jsencrypt": "^3.0.0-rc.1",
"lodash.get": "^4.4.2",
"lodash.pick": "^4.4.0",
"mammoth": "^1.4.21",
"md5": "^2.2.1",
"nprogress": "^0.2.0",
"tinymce": "^5.3.2",
@@ -21,7 +21,8 @@
{{ text }}
</span>
<div :slot="'titleName'+(index+1)" v-for="(item,index) in content">
<span style='padding-right: 20px'>{{ item.db_field_txt }} </span>
<span v-if='item.isLock == 1' style='padding-right: 20px'><a-icon type="lock" theme="twoTone" two-tone-color="#00B3BE" /></span>
<span style='padding-right: 10px;margin-left: -16px'>{{ item.db_field_txt }} </span>
<a-button @click='onClickSee(item)'>{{$t('See')}}</a-button>
</div>
@@ -94,7 +94,8 @@
//url传参严格按照当前命名
url: {
deleteBatch: '/report/lawsMonthlyReportWriteEO/deleteBatch',
list:'/report/lawsMonthlyReportWriteEO/page',
list: '/report/lawsMonthlyReportWriteEO/page',
exportData: '/report/lawsMonthlyReportWriteEO/exportMonthlyReport'
},
loading: false,
dataSource: [],
@@ -161,7 +162,7 @@
methods: {
dateChange(item) {
this.queryParam[item.db_field_name] = this.queryParam[item.db_field_name] ? moment(this.queryParam[item.db_field_name]).format('YYYY-MM') : ''
this.queryParam = {...this.queryParam}
this.queryParam = { ...this.queryParam }
},
searchQuery() {
this.pageNo = 1
@@ -170,7 +171,7 @@
searchReset() {
this.queryParam = {}
this.queryParam.month = moment(new Date()).format('YYYY-MM')
this.queryParam = {...this.queryParam}
this.queryParam = { ...this.queryParam }
this.pageNo = 1
this.getList()
},
@@ -219,7 +220,15 @@
this.$refs.fillTableRef.getData()
},
monthlyIntegrationAndExportClick() {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
let query = {
ids: selectedRowKeys.join(','),
...this.queryParam
}
downloadFile(this.url.exportData, this.$t('monthlyReportRegulations') + '.zip', query, this.Deselect)
},
Deselect() {
this.selectedRowKeys = []
},
addContentClick() {
this.$refs.fillAddRef.add()
@@ -323,6 +332,7 @@
height: 38px;
/*margin-top: 2px;*/
}
.text-operation {
margin-right: 8px;
}
@@ -147,6 +147,7 @@
return {
formInline: {},
rules: {},
loading: false,
gData: [
{
title: '0-0sdf dsfdsfdsfdsfds',
@@ -175,7 +176,10 @@
},
viewTheComparisonResultsClick() {
let newUrl = this.$router.resolve({
path: '/comparisonResults'
})
window.open(newUrl.href, '_blank')
},
addFullTextCommentClick() {
@@ -306,6 +310,7 @@
text-align: right;
padding: 0 32px;
box-sizing: border-box;
margin-bottom: 20px;
}
.detail-content-content-left {
@@ -257,7 +257,10 @@
window.open(newUrl.href, '_blank')
},
subscribe() {
let newUrl = this.$router.resolve({
path: '/documentDataComparison'
})
window.open(newUrl.href, '_blank')
},
edit() {
@@ -18,18 +18,22 @@
<div class="detail-text">
<iframe :src="detailUrlLeft"
ref="iframeLeft"
@load="detailUrlLeftLoad"
sandbox="allow-same-origin allow-scripts"
id="iframe-left"
class="detail-text-iframe" frameborder="0"></iframe>
</div>
<JLoading :loading="loadingLeft">{{$t('dataLoading')}}</JLoading>
</div>
<div class="detail-content-right">
<div class="detail-text-top">
{{$t('translatedText')}}
</div>
<div class="detail-text">
<iframe :src="detailUrlRight" class="detail-text-iframe" frameborder="0"></iframe>
<iframe :src="detailUrlRight" @load="detailUrlrightLoad" class="detail-text-iframe"
frameborder="0"></iframe>
</div>
<JLoading :loading="loadingRight">{{$t('dataLoading')}}</JLoading>
</div>
</div>
</div>
@@ -39,6 +43,10 @@
<script>
import { Base64 } from 'js-base64'
import mammoth from 'mammoth'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
export default {
name: 'documentTranslationResults',
@@ -46,6 +54,8 @@
return {
detailUrlLeft: '',
detailUrlRight: '',
loadingLeft: false,
loadingRight: false,
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
fileQuery: {}
}
@@ -53,13 +63,6 @@
mounted() {
this.fileQuery = this.$route.query
this.onlinePreview()
setTimeout(() => {
this.$nextTick(() => {
this.$refs.iframeLeft.contentWindow.document.body.style = 'background-color:#fff'
console.log(this.$refs.iframeLeft.contentWindow.document.body.style.backgroundColor)
})
}, 2000)
},
methods: {
Fallback() {
@@ -67,13 +70,57 @@
path: '/documentTranslation'
})
},
detailUrlLeftLoad() {
this.loadingLeft = false
},
detailUrlrightLoad() {
this.loadingRight = false
},
onlinePreview() {
let fileName = this.fileQuery.fileName
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
this.loadingLeft = true
this.loadingRight = true
// this.readExcelFromRemoteFileLeft(this.downLoadFileUrl + '/' + this.fileQuery.sourceFileId + fileSuffix)
// this.readExcelFromRemoteFileRight(this.downLoadFileUrl + '/' + this.fileQuery.targetFileId + fileSuffix)
this.detailUrlLeft = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + this.fileQuery.sourceFileId + fileSuffix)
this.detailUrlRight = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + this.fileQuery.targetFileId + fileSuffix)
},
readExcelFromRemoteFileLeft: function(url) {
var vm = this
var xhr = new XMLHttpRequest()
xhr.open('get', url, true)
xhr.responseType = 'arraybuffer'
xhr.onload = function() {
if (xhr.status == 200) {
mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) })
.then(function(resultObject) {
vm.$nextTick(() => {
vm.detailUrlLeft = resultObject.value
})
})
}
}
xhr.send()
},
readExcelFromRemoteFileRight: function(url) {
var vm = this
var xhr = new XMLHttpRequest()
xhr.open('get', url, true)
xhr.responseType = 'arraybuffer'
xhr.onload = function() {
if (xhr.status == 200) {
mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) })
.then(function(resultObject) {
vm.$nextTick(() => {
vm.detailUrlRight = resultObject.value
})
})
}
}
xhr.send()
}
}
}
@@ -126,9 +173,11 @@
padding: 24px 32px;
box-sizing: border-box;
overflow: auto;
position: relative;
}
.detail-content-right {
position: relative;
float: left;
width: calc(50% - 12px);
padding: 24px 32px;
@@ -41,7 +41,6 @@
<a-form-model-item class="itemModel" prop="fileDescription">
<a-input class="box-input add-input"
type="textarea"
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('fileDeclaration')"
v-model="formInline.fileDescription"/>
</a-form-model-item>
@@ -56,7 +55,7 @@
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-modal>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess" :disabled='disabled'/>
<!-- <div class="loading-box" v-if="spinning">-->
<!-- <div class="loading-content">-->
<!-- <a-icon class="loading" type="loading"/>-->
@@ -126,6 +125,7 @@ export default {
addModel(menuId) {
this.visible = true
this.title = this.$t('UploadFile')
this.disabled = false
this.menuId = menuId
this.formInline = {}
this.$nextTick(() => {
@@ -135,6 +135,7 @@ export default {
editModel(value) {
this.visible = true
this.title = this.$t('edit')
this.disabled = true
this.$nextTick(() => {
this.formInline = value
this.$refs['ruleForm'].clearValidate()
+50 -46
View File
@@ -82,7 +82,7 @@
<span>{{$t('uploadedBy')}}</span>
</div>
<a-input class="box-input" style='width: 264px' :placeholder="$t('PleaseEnter')+$t('uploadedBy')"
v-model="queryParams.uploadedBy"></a-input>
v-model="queryParams.createBy"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -90,13 +90,14 @@
<div class="title-text" :title="$t('uploadTime')">
<span>{{ $t('uploadTime') }}</span>
</div>
<!-- :placeholder="$t('PleaseSelect')+$t('uploadTime')"-->
<a-range-picker
style='width: 264px'
:placeholder="$t('PleaseSelect')+$t('uploadTime')"
@change="onChange"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="queryParams.uploadTime"
v-model="queryParams.time"
:disabled="false"/>
</div>
</a-col>
@@ -115,11 +116,11 @@
</div>
<div class="table-operator" style="overflow:hidden;margin-bottom: 20px">
<div style="float: right;margin-bottom: 0px;margin-left: 20px">
<div class="operator-text" @click="handleuploadFile()">
<div class="operator-text" @click="handleuploadFile()" v-if='authmanage'>
<a-icon type="import"/>
{{ $t('UploadFile') }}
</div>
<div class="operator-text" @click="handleDel()">
<div class="operator-text" @click="handleDel()" v-if='authmanage'>
<a-icon type="delete"/>
{{ $t('BatchDelete') }}
</div>
@@ -145,8 +146,8 @@
<span slot="operation" slot-scope="text,record">
<!-- <a class="text-operation" @click="handlelist(record)">{{$t('view')}}</a>-->
<a class="text-operation" @click="download(record)">{{$t('download')}}</a>
<a class="text-operation" @click="handleEdit(record)">{{$t('edit')}}</a>
<a class="text-operation" @click="batchDel(record)">{{$t('delete')}}</a>
<a class="text-operation" @click="handleEdit(record)" v-if='authmanage'>{{$t('edit')}}</a>
<a class="text-operation" @click="batchDel(record)" v-if='authmanage'>{{$t('delete')}}</a>
</span>
</a-table>
</div>
@@ -188,20 +189,20 @@
<a-form-model-item :label="$t('Foldername')" prop="folderName">
<a-input class="box-input add-input" v-model="form.folderName" :placeholder="$t('PleaseEnter')+$t('Foldername')"/>
</a-form-model-item>
<a-form-model-item :label="$t('Administrativeprivileges')" prop="authManage">
<a-form-model-item :label="$t('Administrativeprivileges')" prop="authManageIdsName">
<PersonnelSelection class="box-input add-input"
:personneQuery="form"
:query="{db_field_name:'authManageIds',db_field_txt:$t('Administrativeprivileges')}"
@change="PersonnelSelectionChange"
v-model="form.authManage"/>
v-model="form.authManageIdsName"/>
</a-form-model-item>
<a-form-model-item :label="$t('Checkthepermissions')" prop="authView">
<a-form-model-item :label="$t('Checkthepermissions')" prop="authViewIdsName">
<PersonnelSelection
class="box-input add-input"
:personneQuery="form"
:query="{db_field_name:'authViewIds',db_field_txt:$t('Checkthepermissions')}"
@change="PersonnelSelectionChange"
v-model="form.authView"/>
v-model="form.authViewIdsName"/>
</a-form-model-item>
<a-form-model-item :label="$t('Folderorder')" prop="orderId">
<a-input-number v-model="form.orderId" :min="1" :max="99999" class="box-input add-input"
@@ -285,10 +286,10 @@ export default {
{ required: true, message: this.$t('PleaseEnter') + this.$t('Foldername'), trigger: 'blur' },
{ min: 1, max: 50, message: this.$t('cantExeed') + '50' + this.$t('characters'), trigger: 'blur' }
],
authManage: [
authManageIdsName: [
{ required: true, message: this.$t('PleaseSelect') + this.$t('Administrativeprivileges'), trigger: 'change' },
],
authView: [
authViewIdsName: [
{ required: true, message: this.$t('PleaseSelect') + this.$t('Checkthepermissions'), trigger: 'change' },
],
orderId: [
@@ -327,7 +328,7 @@ export default {
{
title: this.$t('uploadedBy'),
align: 'center',
dataIndex: 'updateBy',
dataIndex: 'createBy',
},
// {
// title: this.$t('category'),
@@ -337,7 +338,7 @@ export default {
{
title: this.$t('uploadTime'),
align: 'center',
dataIndex: 'updateTime',
dataIndex: 'createTime',
width: 250
},
{
@@ -358,6 +359,7 @@ export default {
uploadMenuId: '',
selectedKeys: [],
deleteNode: false,
authmanage:false,
fullWidth: '',
parameter: {},
widthBrown: '',
@@ -383,7 +385,7 @@ export default {
// this.infoId = this.$route.query.infoId
// console.log('info', this.$route.query)
this.loadMenuData()
this.loadData()
// this.loadData()
this.generateList(this.gData)
},
methods: {
@@ -396,6 +398,7 @@ export default {
PersonnelSelectionChange(value, id) {
this.form[value] = id
this.form = { ...this.form }
console.log(this.form)
},
//关闭条款内容弹框
handleCancel() {
@@ -459,6 +462,12 @@ export default {
// this.data = this.toTree(res.result)
this.data = res.result
this.menuId = this.data[0].key
console.log(this.menuId)
let queryParam = {
supFolder: this.menuId
}
this.loadData(JSON.parse(JSON.stringify(queryParam)))
this.gData = [...this.data]
Object.assign(this, {
expandedKeys: this.expandedKeys,
@@ -510,11 +519,11 @@ export default {
this.NodeTreeItem = {
pageX: x,
pageY: y,
authManage: node._props.dataRef.authManage,
authManageIdsName: node._props.dataRef.authManageIdsName,
authViewIds: node._props.dataRef.authViewIds,
key: node._props.dataRef.key,
authManageIds: node._props.dataRef.authManageIds,
authView: node._props.dataRef.authView,
authViewIdsName: node._props.dataRef.authViewIdsName,
title: node._props.dataRef.title,
folderName: node._props.dataRef.folderName,
orderId: node._props.dataRef.orderId,
@@ -580,8 +589,8 @@ export default {
this.form.id = this.nodeItem.key
this.form.authManageIds = this.nodeItem.authManageIds
this.form.authViewIds = this.nodeItem.authViewIds
this.form.authManage = this.nodeItem.authManage
this.form.authView = this.nodeItem.authView
this.form.authManageIdsName = this.nodeItem.authManageIdsName
this.form.authViewIdsName = this.nodeItem.authViewIdsName
this.form.folderName = this.nodeItem.folderName
this.form.orderId = this.nodeItem.orderId
this.menuRightVisible = true
@@ -594,7 +603,7 @@ export default {
async () => {
deleteAction(`extRepo/extRepoFolder/delete`, { id: this.nodeItem.key }).then(res => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$message.success(res.message)
this.loadMenuData()
let queryParam = {
supFolder: this.menuId
@@ -604,7 +613,7 @@ export default {
this.searchQuery(JSON.parse(JSON.stringify(queryParam)))
// eventBUs.$emit('searchReset')
} else {
this.$message.warning(this.$t('operationFailed'))
this.$message.warning(res.message)
}
})
}
@@ -638,7 +647,7 @@ export default {
postAction(`extRepo/extRepoFolder/add`, params).then(res => {
if (res.success) {
this.menuRightVisible = false
this.$message.success(this.$t('OperationSuccessful'))
this.$message.success(res.message)
// this.onExpand(expandId)
this.form = {}
this.expandedKeys.push(this.nodeItem.id)
@@ -652,7 +661,7 @@ export default {
this.searchQuery(JSON.parse(JSON.stringify(queryParam)))
// eventBUs.$emit('searchReset')
} else {
this.$message.warning(this.$t('operationFailed'))
this.$message.warning(res.message)
}
}).finally(() => {
this.flag = false
@@ -698,6 +707,7 @@ export default {
},
//获取列表数据
loadData(item) {
this.queryParams.supFolder = this.menuId
let params = {
...this.queryParams,
...item,
@@ -706,6 +716,7 @@ export default {
getAction(this.url.list, params).then(res => {
if (res.success) {
this.dataSource = res.result.pageList.records || []
this.authmanage =res.result.auth_manage
this.total = res.result.pageList.total
this.loading = false
}
@@ -714,6 +725,9 @@ export default {
//搜索
searchQuery(item) {
this.pageNo = 1
if(this.queryParams.time){
this.queryParams.time = this.queryParams.time.join(',')
}
this.loadData(item)
},
//清空
@@ -781,30 +795,13 @@ export default {
this.parameter.info_id = this.infoId
this.parameter.menu_id = this.menuId
},
//导出
handleExportManage() {
if (JSON.stringify(this.parameter) == '{}') {
this.parameter.info_id = this.infoId
this.parameter.menu_id = this.menuId
}
// console.log('menuId',this.menuId)
let dateName = moment(new Date()).format('YYYY-MM-DD HH-mm-ss')
let name = this.$route.query.infoNumber + ' ' + dateName + '.zip'
let query = {
exportName: this.$route.query.infoNumber + ' ' + dateName,
idList: this.selectedRowKeys.join(','),
parameter: this.parameter
}
downloadFile('split/sarFileSplitItems/exportSplitInfoZip', name, query, this.selectClear)
},
onChange(value,dateString){
if (this.queryParams.uploadTime && this.queryParams.uploadTime.length > 0) {
if (this.queryParams.time && this.queryParams.time.length > 0) {
let dateOne = moment(dateString[0]).format('YYYY-MM-DD')
let dateTwo = moment(dateString[1]).format('YYYY-MM-DD')
this.queryParams.uploadTime = [dateOne, dateTwo]
this.queryParams.time = [dateOne, dateTwo]
} else {
this.queryParams.uploadTime = []
this.queryParams.time = []
// this.queryParamOne[item + '_name'] = []
}
},
@@ -822,6 +819,13 @@ export default {
handleEdit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
//下载
download(item){
let query = {
id: item.fileKey
}
downloadFile('/sys/common/downLoadFile', item.fileName, query, this.Deselect)
},
//删除
batchDel(val) {
console.log(this.menuId)
@@ -834,7 +838,7 @@ export default {
}
deleteAction('com.jero.modules.extRepo/extRepoData/delete', { id: val.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.$message.success(res.message)
_this.loadData(JSON.parse(JSON.stringify(queryParam)))
} else {
@@ -858,7 +862,7 @@ export default {
}
deleteAction('com.jero.modules.extRepo/extRepoData/deleteBatch', { ids: idList.join(',') }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.$message.success(res.message)
_this.selectedRowKeys = []
_this.loadData(JSON.parse(JSON.stringify(queryParam)))
@@ -48,8 +48,8 @@
</a>
</span>
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="handlecody(record)">{{$t('Exporthistory')}}</a>
<a class="text-operation" @click="deleteLib(record)">{{$t('See')}}</a>
<a class="text-operation" @click="handlecody(record)" v-has="'params:report:history'">{{$t('Exporthistory')}}</a>
<a class="text-operation" @click="deleteLib(record)" v-has="'report:detail:list'">{{$t('See')}}</a>
</span>
</a-table>
</div>
@@ -81,11 +81,11 @@
</div>
</div>
<div class="table-operator">
<div @click="ConventionalExport" class="operator-text" v-has="'params:template:add'">
<div @click="ConventionalExport" class="operator-text" v-has="'report:detail:export:normal'">
<!-- <a-icon type="plus"/>-->
{{$t('ConventionalExport')}}
</div>
<div @click="CustomExport" class="operator-text" v-has="'params:template:delete'">
<div @click="CustomExport" class="operator-text" v-has="'report:detail:export:custom'">
<!-- <a-icon type="delete"/>-->
{{$t('CustomExport')}}
</div>
@@ -22,11 +22,11 @@
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:template:add'">
<div @click="handleAdd" class="operator-text" v-has="'report:exportTemplate:add'">
<a-icon type="plus"/>
{{$t('newlyAdded')}}
</div>
<div @click="handleDel" class="operator-text" v-has="'params:template:delete'">
<div @click="handleDel" class="operator-text" v-has="'report:exportTemplate:deleteBatch'">
<a-icon type="delete"/>
{{$t('BatchDelete')}}
</div>
@@ -47,8 +47,8 @@
{{ text && text.length > 100 ? text.slice(0, 99) + '...' : text }}
</span>
<span slot="operation" slot-scope="text,record">
<a class="text-operation" v-has="'params:template:edit'" @click="edit(record)">{{$t('edit')}}</a>
<a class="text-operation" v-has="'params:template:delete'" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
<a class="text-operation" v-has="'report:exportTemplate:edit'" @click="edit(record)">{{$t('edit')}}</a>
<a class="text-operation" v-has="'report:exportTemplate:delete'" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
</span>
</a-table>
</div>
@@ -1102,6 +1102,7 @@
_this.$message.success(this.$t('OperationSuccessful'))
this.areaVisibleFreeze = false
this.$refs.CollectionTabel.getTableList()
this.$refs.CollectionTabel.getHeader()
} else {
this.textLoading = false
_this.$message.warning(this.$t('operationFailed'))