Merge branch 'hi-ucs-dev' into release
This commit is contained in:
commit
6736a8d434
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-04-11 10:11:40
|
* @Date: 2022-04-11 10:11:40
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-29 09:54:59
|
* @LastEditTime: 2022-12-29 17:34:35
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -39,7 +39,8 @@
|
||||||
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl;
|
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl;
|
||||||
window.SITE_CONFIG['apiURL'] = _global.config.apiURL;
|
window.SITE_CONFIG['apiURL'] = _global.config.apiURL;
|
||||||
// WebSocket地址
|
// WebSocket地址
|
||||||
window.SITE_CONFIG['socketURL'] =_global.config.socketURL;
|
// window.SITE_CONFIG['socketURL'] =_global.config.socketURL;
|
||||||
|
window.SITE_CONFIG['websocketURL'] = _global.config.websocketURL
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 554 B |
Binary file not shown.
After Width: | Height: | Size: 267 B |
Binary file not shown.
After Width: | Height: | Size: 523 B |
Binary file not shown.
After Width: | Height: | Size: 532 B |
|
@ -118,6 +118,7 @@ t.model.description = '描述'
|
||||||
|
|
||||||
t.process = {}
|
t.process = {}
|
||||||
t.process.name = '名称'
|
t.process.name = '名称'
|
||||||
|
t.process.userName = '申请人'
|
||||||
t.process.key = '标识'
|
t.process.key = '标识'
|
||||||
t.process.deployFile = '部署流程文件'
|
t.process.deployFile = '部署流程文件'
|
||||||
t.process.id = '流程ID'
|
t.process.id = '流程ID'
|
||||||
|
|
|
@ -105,8 +105,9 @@ import { messages } from '@/i18n'
|
||||||
import screenfull from 'screenfull'
|
import screenfull from 'screenfull'
|
||||||
import UpdatePassword from './main-navbar-update-password'
|
import UpdatePassword from './main-navbar-update-password'
|
||||||
import { clearLoginInfo } from '@/utils'
|
import { clearLoginInfo } from '@/utils'
|
||||||
// import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
// var socket = null
|
import bus from '@/views/bus.js'
|
||||||
|
var socket = null
|
||||||
export default {
|
export default {
|
||||||
inject: ['refresh'],
|
inject: ['refresh'],
|
||||||
data () {
|
data () {
|
||||||
|
@ -120,29 +121,32 @@ export default {
|
||||||
UpdatePassword
|
UpdatePassword
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
// var vue = this
|
const that = this
|
||||||
// socket = new WebSocket(`${window.SITE_CONFIG['socketURL']}?token=${Cookies.get('token')}`)
|
socket = new WebSocket(`${window.SITE_CONFIG.websocketURL}?token=${Cookies.get('ucsToken')}`)
|
||||||
// socket.onopen = function () {}
|
socket.onopen = function () {}
|
||||||
// socket.onerror = function () {
|
socket.onerror = function () {}
|
||||||
// vue.$notify.error({
|
socket.onmessage = function (res) {
|
||||||
// title: vue.$t('notice.disconnect'),
|
switch (that.$route.name) {
|
||||||
// message: vue.$t('notice.disconnectMessage')
|
case 'myAgent-CompetencyApplication':
|
||||||
// })
|
bus.$emit('competencyApplicationInit')
|
||||||
// }
|
break
|
||||||
// socket.onmessage = function (evt) {
|
case 'myAgent-AbilityResourceShelf':
|
||||||
// const result = JSON.parse(evt.data)
|
bus.$emit('abilityResourceShelfInit')
|
||||||
|
break
|
||||||
// // 如果是有新文本通知,则提示有新通知
|
case 'myAgent-ApplicationforCompetencyRequirements':
|
||||||
// if (result.type === 0) {
|
bus.$emit('applicationforRequirementsInit')
|
||||||
// vue.messageTip = true
|
break
|
||||||
// vue.$notify({
|
case 'myAgent-AbilityResourcesRemoved':
|
||||||
// title: vue.$t('notice.new'),
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
// message: result.msg,
|
break
|
||||||
// type: 'info',
|
case 'myAgent-CommentModeration':
|
||||||
// duration: 5000
|
bus.$emit('commentInit')
|
||||||
// })
|
break
|
||||||
// }
|
case 'activiti-RoomExamineAdmin':
|
||||||
// }
|
bus.$emit('roomExamineAdminInit')
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 未读通知数
|
// 未读通知数
|
||||||
this.getUnReadCount()
|
this.getUnReadCount()
|
||||||
|
|
|
@ -0,0 +1,561 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog custom-class="customClass" :visible.sync="areaVisibleCopy" :title="modalTypeText[modalType]"
|
||||||
|
@close="closeModal" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 挂载和修改 -->
|
||||||
|
<div class="right">
|
||||||
|
<el-form :model="dataForm" :rules="rules" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()"
|
||||||
|
:label-width="$i18n.locale === 'en-US' ? '120px' : '100px'">
|
||||||
|
<!-- 基本信息 -->
|
||||||
|
<div class="scrollBox" id="anchor1">
|
||||||
|
|
||||||
|
<div class="baseInner">
|
||||||
|
<el-form-item label="所属区市:" prop="unit">
|
||||||
|
<el-select v-model="dataForm.area" placeholder="请选择">
|
||||||
|
<el-option v-for="item in areas" :key="item.data" :label="item.name"
|
||||||
|
:value="item.name"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="赋能领域:" prop="unit">
|
||||||
|
<el-select v-model="dataForm.applicationArea" placeholder="请选择">
|
||||||
|
<el-option v-for="item in sceneAreas" :key="item.data" :label="item.dict_label"
|
||||||
|
:value="item.dict_value"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="场景名称:" prop="name">
|
||||||
|
<el-input v-model="dataForm.name" placeholder="请输入名称" style="width:90%"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场景描述:" prop="description">
|
||||||
|
<el-input type="textarea" :rows="3" v-model="dataForm.description" placeholder="请输入描述"
|
||||||
|
style="width:90%">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="场景入口:">
|
||||||
|
<el-input v-model="dataForm.sceneUrl" placeholder="请输入场景入口" style="width:90%"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场景图片:">
|
||||||
|
<el-upload ref="editUpload" class="upload-demo" :action="fileUploadUrl"
|
||||||
|
:on-success="eidtHandleAvatarSuccess" :before-upload="editBeforeAvatarUpload" :limit="1"
|
||||||
|
:file-list="[]" :on-remove="editUploadRemoveFile" :on-exceed="handleExceed" list-type="picture">
|
||||||
|
<div slot="tip" class="el-upload__tip">只能上传图片文件</div>
|
||||||
|
<div class="button-new">
|
||||||
|
<div>点击上传</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<template slot="footer">
|
||||||
|
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
|
||||||
|
<el-button @click="closeModal">{{ $t("cancel") }}</el-button>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import debounce from 'lodash/debounce'
|
||||||
|
import qs from 'qs'
|
||||||
|
import Cookies from 'js-cookie'
|
||||||
|
import upload from '@/views/modules/components/upload'
|
||||||
|
|
||||||
|
// 模态框标题
|
||||||
|
export const modalTypeText = {
|
||||||
|
add: '场景挂接',
|
||||||
|
update: '场景修改'
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
upload
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
dataForm: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.dataForm = newVal
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true
|
||||||
|
},
|
||||||
|
areaVisible: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.getSceneArea()
|
||||||
|
this.getArea()
|
||||||
|
this.areaVisibleCopy = newVal
|
||||||
|
if (this.modalType == 'add' && newVal) {
|
||||||
|
this.getDetail(this.dataForm)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
modalType: {
|
||||||
|
type: String,
|
||||||
|
default: 'add'
|
||||||
|
},
|
||||||
|
areaVisible: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
areas:[],//所属区市
|
||||||
|
sceneAreas:[],
|
||||||
|
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
|
||||||
|
dataForm: {
|
||||||
|
district: 1,//0市级,1基层
|
||||||
|
area: '',//所属区市
|
||||||
|
infrastructureCount: null,
|
||||||
|
dataSourceCount: null,
|
||||||
|
componentCount: null,
|
||||||
|
name: '',
|
||||||
|
applicationArea: '',//赋能领域
|
||||||
|
description: '',
|
||||||
|
sceneUrl: '',
|
||||||
|
fuseAttrList: [
|
||||||
|
{
|
||||||
|
attrType: '构建步骤',
|
||||||
|
attrValue: [{ question: '', answer: [{ 'answer': '' }, { 'answer': '' }] }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '基础设施',
|
||||||
|
attrValue: [{ name: '', type: '', dept: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '组件服务',
|
||||||
|
attrValue: [{ name: '', type: '', dept: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '数据资源',
|
||||||
|
attrValue: [{ name: '', type: '', dept: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '场景痛点',
|
||||||
|
attrValue: [{ description: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '解决方案',
|
||||||
|
attrValue: [{ description: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '服务图片',
|
||||||
|
attrValue: ''
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入名称',
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
description: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入描述',
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
areaVisibleCopy: this.areaVisible,
|
||||||
|
displayInfo: {
|
||||||
|
name: '名称',
|
||||||
|
description: '描述'
|
||||||
|
},
|
||||||
|
modalTypeText: modalTypeText,
|
||||||
|
|
||||||
|
abilityListObj: {},
|
||||||
|
imgData: [],
|
||||||
|
// 限定图片
|
||||||
|
handleExceed() {
|
||||||
|
this.$message({ type: 'error', message: '最多支持一张图片上传' })
|
||||||
|
},
|
||||||
|
imageUrl: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
//获取所属区市
|
||||||
|
getArea(){
|
||||||
|
const params = {
|
||||||
|
pid: '250000'
|
||||||
|
}
|
||||||
|
this.$http
|
||||||
|
.get('/sys/region/list/', {
|
||||||
|
params
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.areas = res.data.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//获取赋能场景
|
||||||
|
getSceneArea() {
|
||||||
|
const params = {
|
||||||
|
topCategoryName: '应用资源'
|
||||||
|
}
|
||||||
|
this.$http
|
||||||
|
.get('/category/getAllFilterCriteriaByTopCategory/', {
|
||||||
|
params
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.sceneAreas = res.data.data[0].typeList
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
clearForm() {
|
||||||
|
this.$refs.dataForm && this.$refs.dataForm.resetFields()
|
||||||
|
},
|
||||||
|
closeModal() {
|
||||||
|
this.$emit('closeModal')
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 表单提交
|
||||||
|
dataFormSubmitHandle: debounce(
|
||||||
|
function () {
|
||||||
|
|
||||||
|
this.$refs.dataForm.validate((valid) => {
|
||||||
|
if (!valid) {
|
||||||
|
this.$message.error('请检查表单是否填写完整')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const methodsObj = {
|
||||||
|
add: 'post',
|
||||||
|
update: 'put'
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (this.imageUrl == '') {
|
||||||
|
// this.$message.error('请上传图片!')
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
this.dataForm.fuseAttrList.find(v => v.attrType == '服务图片').attrValue = this.imageUrl || ''
|
||||||
|
const _obj = Object.assign({}, this.dataForm, {
|
||||||
|
type: '赋能场景'
|
||||||
|
})
|
||||||
|
|
||||||
|
this.dataForm.fuseAttrList.forEach(item => {
|
||||||
|
if(item.attrType!=='服务图片'){
|
||||||
|
item.attrValue = JSON.stringify(item.attrValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
this.$http
|
||||||
|
[methodsObj[this.modalType]]('/fuse', _obj)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.$refs.dataForm && this.$refs.dataForm.resetFields()
|
||||||
|
this.$emit('refreshDataList')
|
||||||
|
this.$emit('closeModal')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message.error(err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
1000,
|
||||||
|
{ leading: true, trailing: false }
|
||||||
|
),
|
||||||
|
// 详情
|
||||||
|
getDetail(data) {
|
||||||
|
this.dataForm = data
|
||||||
|
},
|
||||||
|
handleAvatarSuccess(res, file) {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
this.imageUrl = res.data
|
||||||
|
},
|
||||||
|
beforeAvatarUpload(file) {
|
||||||
|
const isImage =
|
||||||
|
file.type === 'image/jpeg' ||
|
||||||
|
file.type === 'image/jpg' ||
|
||||||
|
file.type === 'image/png'
|
||||||
|
if (!isImage) {
|
||||||
|
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||||
|
}
|
||||||
|
return isImage
|
||||||
|
},
|
||||||
|
addUploadRemoveFile(file, fileList) {
|
||||||
|
this.$refs.addUpload.clearFiles()
|
||||||
|
this.imageUrl = ''
|
||||||
|
},
|
||||||
|
editBeforeAvatarUpload(file) {
|
||||||
|
const isImage =
|
||||||
|
file.type === 'image/jpeg' ||
|
||||||
|
file.type === 'image/jpg' ||
|
||||||
|
file.type === 'image/png'
|
||||||
|
|
||||||
|
if (!isImage) {
|
||||||
|
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||||
|
}
|
||||||
|
return isImage
|
||||||
|
},
|
||||||
|
editUploadRemoveFile(file, fileList) {
|
||||||
|
this.$refs.editUpload.clearFiles()
|
||||||
|
this.imageUrl = ''
|
||||||
|
},
|
||||||
|
eidtHandleAvatarSuccess(res, file) {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
this.imageUrl = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
this.clearForm()
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.fixed {
|
||||||
|
position: sticky;
|
||||||
|
z-index: 10012;
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -9.56rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-new {
|
||||||
|
height: 90px;
|
||||||
|
width: 128px;
|
||||||
|
border: 1px dashed rgba(198, 198, 198, 0.5);
|
||||||
|
border-radius: 2px;
|
||||||
|
background: #e9eff8;
|
||||||
|
color: #666666;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-new div {
|
||||||
|
background: url('~@/assets/img/uploadAdd.png') no-repeat;
|
||||||
|
color: #666666;
|
||||||
|
background-position: center;
|
||||||
|
text-align: center;
|
||||||
|
height: 90px;
|
||||||
|
padding-top: 41px;
|
||||||
|
background-position-y: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.right {
|
||||||
|
width: 770px;
|
||||||
|
margin-left: 100px;
|
||||||
|
margin-top: 24px;
|
||||||
|
|
||||||
|
|
||||||
|
.info-inner {
|
||||||
|
|
||||||
|
margin-left: 10px;
|
||||||
|
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseInfo {
|
||||||
|
|
||||||
|
border-radius: 2px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseTitle {
|
||||||
|
padding-left: 20px;
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 32px;
|
||||||
|
background: url("~@/assets/img/biaoti.png") no-repeat;
|
||||||
|
background-position-y: 2px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseInner {
|
||||||
|
background: rgba(244, 245, 248, 0.8);
|
||||||
|
padding: 24px 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseInner1 {
|
||||||
|
background: rgba(244, 245, 248, 0.8);
|
||||||
|
padding: 24px 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__header {
|
||||||
|
background: #0058e1;
|
||||||
|
// height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__title {
|
||||||
|
line-height: 18px;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__body {
|
||||||
|
padding: 0px;
|
||||||
|
height: 580px;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-input ::v-deep .el-input__inner {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detial-form ::v-deep {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__label {
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__content {
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-checkbox-button__inner {
|
||||||
|
width: 130px;
|
||||||
|
margin: 0 10px 5px;
|
||||||
|
border-left: unset !important;
|
||||||
|
border-radius: unset !important;
|
||||||
|
border: 1px solid #dcdfe6 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.mod-sys__menu {
|
||||||
|
|
||||||
|
.menu-list,
|
||||||
|
.icon-list {
|
||||||
|
|
||||||
|
.el-input__inner,
|
||||||
|
.el-input__suffix {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-icon-popover {
|
||||||
|
width: 458px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-icon-inner {
|
||||||
|
width: 478px;
|
||||||
|
max-height: 258px;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-icon-list {
|
||||||
|
width: 458px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
|
||||||
|
>.el-button {
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px 0 0 8px;
|
||||||
|
|
||||||
|
>span {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.previewImg {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
text-align: right;
|
||||||
|
vertical-align: middle;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 40px;
|
||||||
|
padding: 0 12px 0 0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
line-height: 32px;
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin-left: 132px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
height: 100px;
|
||||||
|
width: 100px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -0,0 +1,839 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog custom-class="customClass" :visible.sync="cityVisibleCopy" :title="modalTypeText[modalType]"
|
||||||
|
@close="closeModal" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||||
|
<div class="left">
|
||||||
|
<div class="left-process">
|
||||||
|
<!-- <el-steps direction="vertical" :active="activeStep">
|
||||||
|
<el-step :key=index v-for="(item, index) in steps" :title=item @click.native="handleStep(index)"></el-step>
|
||||||
|
</el-steps> -->
|
||||||
|
<div class="li1" v-for="(item, index) in steps" :key="index" @click="handleStep(item, index)">
|
||||||
|
<div v-if="index == activeStepIndex">
|
||||||
|
<div class="node node1">{{ item.name }}</div>
|
||||||
|
<div class="borderLeft borderLeft1"></div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div class="node">{{ item.name }}</div>
|
||||||
|
<div class="borderLeft"></div>
|
||||||
|
</div>
|
||||||
|
<div class="advice"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 挂载和修改 -->
|
||||||
|
<div class="right">
|
||||||
|
<el-form :model="dataForm" :rules="rules" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()"
|
||||||
|
:label-width="$i18n.locale === 'en-US' ? '120px' : '100px'">
|
||||||
|
<!-- 基本信息 -->
|
||||||
|
<div class="scrollBox" id="anchor1">
|
||||||
|
<div class="baseTitle">
|
||||||
|
基本信息
|
||||||
|
</div>
|
||||||
|
<div class="baseInner">
|
||||||
|
<el-form-item label="赋能领域:" prop="unit">
|
||||||
|
<el-select v-model="dataForm.applicationArea" placeholder="请选择">
|
||||||
|
<el-option v-for="item in sceneAreas" :key="item.data" :label="item.dict_label"
|
||||||
|
:value="item.dict_value"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="场景名称:" prop="name">
|
||||||
|
<el-input v-model="dataForm.name" placeholder="请输入名称" style="width:90%"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场景描述:" prop="description">
|
||||||
|
<el-input type="textarea" :rows="3" v-model="dataForm.description" placeholder="请输入描述"
|
||||||
|
style="width:90%">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="场景入口:">
|
||||||
|
<el-input v-model="dataForm.sceneUrl" placeholder="请输入场景入口" style="width:90%"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场景图片:">
|
||||||
|
<el-upload ref="editUpload" class="upload-demo" :action="fileUploadUrl"
|
||||||
|
:on-success="eidtHandleAvatarSuccess" :before-upload="editBeforeAvatarUpload" :limit="1"
|
||||||
|
:file-list="[]" :on-remove="editUploadRemoveFile" :on-exceed="handleExceed" list-type="picture">
|
||||||
|
<div slot="tip" class="el-upload__tip">只能上传图片文件</div>
|
||||||
|
<div class="button-new">
|
||||||
|
<div>点击上传</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 场景痛点 -->
|
||||||
|
<div class="scrollBox" id="anchor2">
|
||||||
|
<div class="baseTitle">
|
||||||
|
场景痛点
|
||||||
|
</div>
|
||||||
|
<div class="baseInner">
|
||||||
|
<scene-one-input :dataForm="dataForm" title="场景痛点" @update="updateDataForm" ref="scenePainDom"
|
||||||
|
:keyTextObj="painKeyTextObj"></scene-one-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 解决方案 -->
|
||||||
|
<div class="scrollBox" id="anchor3">
|
||||||
|
<div class="baseTitle">
|
||||||
|
解决方案
|
||||||
|
</div>
|
||||||
|
<div class="baseInner">
|
||||||
|
<scene-one-input :dataForm="dataForm" title="解决方案" @update="updateDataForm" ref="solutionDom"
|
||||||
|
:keyTextObj="solutionKeyTextObj"></scene-one-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 使用能力 -->
|
||||||
|
<div class="scrollBox" id="anchor4">
|
||||||
|
<div class="baseTitle">
|
||||||
|
使用能力
|
||||||
|
</div>
|
||||||
|
<div class="baseInner1">
|
||||||
|
<div class="info-inner">
|
||||||
|
<ability-add :dataForm="dataForm" @update="updateDataForm" @updateCount="updateCount" ref="abilityAdd1"
|
||||||
|
title="基础设施" :typeList="baseTypeList"></ability-add>
|
||||||
|
</div>
|
||||||
|
<div style="border-bottom: 1px dashed #d3d3d3;margin-bottom: 23px;"></div>
|
||||||
|
<div class="info-inner">
|
||||||
|
<ability-add :dataForm="dataForm" @update="updateDataForm" @updateCount="updateCount" ref="abilityAdd2"
|
||||||
|
title="组件服务" :typeList="componetTypeList"></ability-add>
|
||||||
|
</div>
|
||||||
|
<div style="border-bottom: 1px dashed #d3d3d3;margin-bottom: 23px;"></div>
|
||||||
|
<div class="info-inner">
|
||||||
|
<ability-add :dataForm="dataForm" @update="updateDataForm" @updateCount="updateCount" ref="abilityAdd3"
|
||||||
|
title="数据资源" :typeList="dataTypeList"></ability-add>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <InfrastructureModal v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="基础设施"
|
||||||
|
:modalType="modalType" ref="jcssDom"></InfrastructureModal>
|
||||||
|
<el-form-item label="基础设施总数" >
|
||||||
|
<el-input v-model="dataForm.infrastructureCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="数据资源" ref="sjzyDom"
|
||||||
|
:getDataParams="getListParams['数据资源']"></combine-ability>
|
||||||
|
<el-form-item label="数据资源总数" >
|
||||||
|
<el-input v-model="dataForm.dataSourceCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="组件服务" ref="zjfwDom"
|
||||||
|
:getDataParams="getListParams['组件服务']"></combine-ability>
|
||||||
|
<el-form-item label="组件服务总数" >
|
||||||
|
<el-input v-model="dataForm.componentCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||||
|
</el-form-item> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 构建步骤 -->
|
||||||
|
<div class="scrollBox" id="anchor5">
|
||||||
|
<div class="baseTitle">
|
||||||
|
构建步骤
|
||||||
|
</div>
|
||||||
|
<div class="baseInner1">
|
||||||
|
<scene-use-step :dataForm="dataForm" @update="updateDataForm" ref="sceneUseUpDom">
|
||||||
|
</scene-use-step>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<template slot="footer">
|
||||||
|
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
|
||||||
|
<el-button @click="closeModal">{{ $t("cancel") }}</el-button>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import debounce from 'lodash/debounce'
|
||||||
|
import qs from 'qs'
|
||||||
|
import SceneUseStep from './components/scene-use-step.vue'
|
||||||
|
import SceneOneInput from './components/scene-one-input.vue'
|
||||||
|
import AbilityAdd from './components/ability-add.vue'
|
||||||
|
import CombineAbility from '../components/combine-ability.vue'
|
||||||
|
import CommonQuestion from '../components/common-question.vue'
|
||||||
|
import InfrastructureModal from './components/infrastructure-modal.vue'
|
||||||
|
import Cookies from 'js-cookie'
|
||||||
|
import upload from '@/views/modules/components/upload'
|
||||||
|
|
||||||
|
|
||||||
|
export const getDescJson = (text) => {
|
||||||
|
return {
|
||||||
|
descObj: {
|
||||||
|
text: `${text}描述`,
|
||||||
|
key: 'description'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模态框标题
|
||||||
|
export const modalTypeText = {
|
||||||
|
add: '场景挂接',
|
||||||
|
update: '场景修改'
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
SceneUseStep,
|
||||||
|
CombineAbility,
|
||||||
|
SceneOneInput,
|
||||||
|
upload,
|
||||||
|
CommonQuestion,
|
||||||
|
InfrastructureModal,
|
||||||
|
AbilityAdd
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
dataForm: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.dataForm = newVal
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true
|
||||||
|
},
|
||||||
|
cityVisible: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.getSceneArea()
|
||||||
|
this.cityVisibleCopy = newVal
|
||||||
|
if (this.modalType == 'add' && newVal) {
|
||||||
|
// localStorage.setItem('InfrastructureSearchData', JSON.stringify({}))
|
||||||
|
this.getDetail(this.dataForm)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
modalType: {
|
||||||
|
type: String,
|
||||||
|
default: 'add'
|
||||||
|
},
|
||||||
|
cityVisible: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
domArr: [],
|
||||||
|
scrollTop: 0,
|
||||||
|
selectNow: '',
|
||||||
|
activeStepIndex: 0,//选择的步骤
|
||||||
|
activeStepIndexs: 0,
|
||||||
|
baseTypeList: [{ value: '视频资源', label: '视频资源' }, { value: '云资源', label: '云资源' }, { value: '其他', label: '其他' }],
|
||||||
|
componetTypeList: [{ value: '智能算法', label: '智能算法' }, { value: ' 图层服务', label: ' 图层服务' },
|
||||||
|
{ value: '开发组件', label: '开发组件' }, { value: '业务组件', label: '业务组件' }],
|
||||||
|
dataTypeList: [{ value: '数据', label: '数据' }],
|
||||||
|
sceneAreas: [],//赋能领域
|
||||||
|
|
||||||
|
steps: [{ 'name': '基本信息', 'id': "anchor1" },
|
||||||
|
{ 'name': '场景痛点', 'id': "anchor2" },
|
||||||
|
{ 'name': '解决方案', 'id': "anchor3" },
|
||||||
|
{ 'name': '使用能力', 'id': "anchor4" },
|
||||||
|
{ 'name': '构建步骤', 'id': "anchor5" }],
|
||||||
|
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
|
||||||
|
|
||||||
|
painKeyTextObj: getDescJson('痛点'),
|
||||||
|
solutionKeyTextObj: getDescJson('方案'),
|
||||||
|
dataForm: {
|
||||||
|
district: 0,//市级
|
||||||
|
area: '',//所属区市
|
||||||
|
infrastructureCount: null,
|
||||||
|
dataSourceCount: null,
|
||||||
|
componentCount: null,
|
||||||
|
name: '',
|
||||||
|
applicationArea: '',//赋能领域
|
||||||
|
description: '',
|
||||||
|
sceneUrl: '',
|
||||||
|
fuseAttrList: [
|
||||||
|
{
|
||||||
|
attrType: '构建步骤',
|
||||||
|
attrValue: [{ question: '', answer: [{ 'answer': '' }, { 'answer': '' }] }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '基础设施',
|
||||||
|
attrValue: [{ name: '', type: '', dept: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '组件服务',
|
||||||
|
attrValue: [{ name: '', type: '', dept: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '数据资源',
|
||||||
|
attrValue: [{ name: '', type: '', dept: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '场景痛点',
|
||||||
|
attrValue: [{ description: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '解决方案',
|
||||||
|
attrValue: [{ description: '' }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attrType: '服务图片',
|
||||||
|
attrValue: ''
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入名称',
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
description: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入描述',
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
checkList: ['基本信息', '场景痛点', '解决方案', '使用能力', '构建步骤'],
|
||||||
|
cityVisibleCopy: this.cityVisible,
|
||||||
|
displayInfo: {
|
||||||
|
name: '名称',
|
||||||
|
description: '描述'
|
||||||
|
},
|
||||||
|
modalTypeText: modalTypeText,
|
||||||
|
refsParseArray: {
|
||||||
|
sceneUseUpDom: '构建步骤',
|
||||||
|
moreAbilityDom: '更多能力',
|
||||||
|
scenePainDom: '场景痛点',
|
||||||
|
solutionDom: '解决方案',
|
||||||
|
abilityAdd1: '基础设施',
|
||||||
|
abilityAdd2: '组件服务',
|
||||||
|
abilityAdd3: '数据资源'
|
||||||
|
},
|
||||||
|
|
||||||
|
abilityListObj: {},
|
||||||
|
imgData: [],
|
||||||
|
// 限定图片
|
||||||
|
handleExceed() {
|
||||||
|
this.$message({ type: 'error', message: '最多支持一张图片上传' })
|
||||||
|
},
|
||||||
|
imageUrl: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
handleStep(item, index) {
|
||||||
|
this.activeStepIndex = index
|
||||||
|
this.selectNow = item.id // 设置选中的锚点为当前点击的
|
||||||
|
let top = document.querySelector('#' + item.id).offsetTop - 100
|
||||||
|
document.querySelectorAll(".customClass .el-dialog__body")[0].scrollTop = top
|
||||||
|
|
||||||
|
},
|
||||||
|
//获取赋能场景
|
||||||
|
getSceneArea() {
|
||||||
|
const params = {
|
||||||
|
topCategoryName: '应用资源'
|
||||||
|
}
|
||||||
|
this.$http
|
||||||
|
.get('/category/getAllFilterCriteriaByTopCategory/', {
|
||||||
|
params
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.sceneAreas = res.data.data[0].typeList
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
clearForm() {
|
||||||
|
this.$refs.dataForm && this.$refs.dataForm.resetFields()
|
||||||
|
},
|
||||||
|
closeModal() {
|
||||||
|
this.$emit('closeModal')
|
||||||
|
},
|
||||||
|
// 更新表单
|
||||||
|
updateDataForm(data) {
|
||||||
|
this.dataForm.fuseAttrList.map(v => {
|
||||||
|
if (v.attrType === data.title) {
|
||||||
|
v.attrValue = data.list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
//更新数量
|
||||||
|
updateCount(data) {
|
||||||
|
if (data.title === '基础设施') {
|
||||||
|
this.dataForm.infrastructureCount = data.count
|
||||||
|
}
|
||||||
|
if (data.title === '组件服务') {
|
||||||
|
this.dataForm.componentCount = data.count
|
||||||
|
}
|
||||||
|
if (data.title === '数据资源') {
|
||||||
|
this.dataForm.dataSourceCount = data.count
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// 表单提交
|
||||||
|
dataFormSubmitHandle: debounce(
|
||||||
|
function () {
|
||||||
|
|
||||||
|
this.$refs.dataForm.validate((valid) => {
|
||||||
|
if (!valid) {
|
||||||
|
this.$message.error('请检查表单是否填写完整')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const methodsObj = {
|
||||||
|
add: 'post',
|
||||||
|
update: 'put'
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (this.imageUrl == '') {
|
||||||
|
// this.$message.error('请上传图片!')
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
this.dataForm.fuseAttrList.find(v => v.attrType == '服务图片').attrValue = this.imageUrl || ''
|
||||||
|
const _obj = Object.assign({}, this.dataForm, {
|
||||||
|
type: '赋能场景'
|
||||||
|
})
|
||||||
|
this.dataForm.fuseAttrList.forEach(item => {
|
||||||
|
if(item.attrType!=='服务图片'){
|
||||||
|
item.attrValue = JSON.stringify(item.attrValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
this.$http
|
||||||
|
[methodsObj[this.modalType]]('/fuse', _obj)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.$refs.dataForm && this.$refs.dataForm.resetFields()
|
||||||
|
this.$emit('refreshDataList')
|
||||||
|
this.$emit('closeModal')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message.error(err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
1000,
|
||||||
|
{ leading: true, trailing: false }
|
||||||
|
),
|
||||||
|
// 详情
|
||||||
|
getDetail(data) {
|
||||||
|
this.dataForm = data
|
||||||
|
this.$nextTick(() => {
|
||||||
|
for (const key in this.refsParseArray) {
|
||||||
|
this.$refs[key] && this.$refs[key].getDataInfo && this.$refs[key].getDataInfo(data)
|
||||||
|
}
|
||||||
|
const _imgObj = data.fuseAttrList.find(v => v.attrType == '服务图片') || {}
|
||||||
|
this.imageUrl = _imgObj.attrValue
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
handleAvatarSuccess(res, file) {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
this.imageUrl = res.data
|
||||||
|
},
|
||||||
|
beforeAvatarUpload(file) {
|
||||||
|
const isImage =
|
||||||
|
file.type === 'image/jpeg' ||
|
||||||
|
file.type === 'image/jpg' ||
|
||||||
|
file.type === 'image/png'
|
||||||
|
if (!isImage) {
|
||||||
|
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||||
|
}
|
||||||
|
return isImage
|
||||||
|
},
|
||||||
|
addUploadRemoveFile(file, fileList) {
|
||||||
|
this.$refs.addUpload.clearFiles()
|
||||||
|
this.imageUrl = ''
|
||||||
|
},
|
||||||
|
editBeforeAvatarUpload(file) {
|
||||||
|
const isImage =
|
||||||
|
file.type === 'image/jpeg' ||
|
||||||
|
file.type === 'image/jpg' ||
|
||||||
|
file.type === 'image/png'
|
||||||
|
|
||||||
|
if (!isImage) {
|
||||||
|
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||||
|
}
|
||||||
|
return isImage
|
||||||
|
},
|
||||||
|
editUploadRemoveFile(file, fileList) {
|
||||||
|
this.$refs.editUpload.clearFiles()
|
||||||
|
this.imageUrl = ''
|
||||||
|
},
|
||||||
|
eidtHandleAvatarSuccess(res, file) {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
this.imageUrl = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
const that = this;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
document.querySelector(".el-dialog__body").onscroll = function () {
|
||||||
|
|
||||||
|
let top = document.querySelectorAll(".customClass .el-dialog__body")[0].scrollTop - 100
|
||||||
|
|
||||||
|
if (top < document.querySelector('#anchor1').offsetTop - 100) {
|
||||||
|
that.activeStepIndexs = 0
|
||||||
|
}
|
||||||
|
else if (top < document.querySelector('#anchor2').offsetTop - 100) {
|
||||||
|
that.activeStepIndexs = 1
|
||||||
|
}
|
||||||
|
else if (top < document.querySelector('#anchor3').offsetTop - 100) {
|
||||||
|
that.activeStepIndexs = 2
|
||||||
|
}
|
||||||
|
else if (top < document.querySelector('#anchor4').offsetTop - 100) {
|
||||||
|
that.activeStepIndexs = 3
|
||||||
|
}
|
||||||
|
else if (top < document.querySelector('#anchor5').offsetTop - 100) {
|
||||||
|
that.activeStepIndexs = 4
|
||||||
|
} else {
|
||||||
|
that.activeStepIndexs = 0
|
||||||
|
}
|
||||||
|
if (that.activeStepIndex !== that.activeStepIndexs) {
|
||||||
|
that.activeStepIndex = that.activeStepIndexs;
|
||||||
|
that.$forceUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
this.clearForm()
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.fixed {
|
||||||
|
position: sticky;
|
||||||
|
z-index: 10012;
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -9.56rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-new {
|
||||||
|
height: 90px;
|
||||||
|
width: 128px;
|
||||||
|
border: 1px dashed rgba(198, 198, 198, 0.5);
|
||||||
|
border-radius: 2px;
|
||||||
|
background: #e9eff8;
|
||||||
|
color: #666666;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-new div {
|
||||||
|
background: url('~@/assets/img/uploadAdd.png') no-repeat;
|
||||||
|
color: #666666;
|
||||||
|
background-position: center;
|
||||||
|
text-align: center;
|
||||||
|
height: 90px;
|
||||||
|
padding-top: 41px;
|
||||||
|
background-position-y: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
width: 135px;
|
||||||
|
height: 650px;
|
||||||
|
position: fixed;
|
||||||
|
background: rgba(244, 245, 248, 0.8);
|
||||||
|
|
||||||
|
.left-process {
|
||||||
|
height: 300px;
|
||||||
|
position: fixed;
|
||||||
|
padding-left: 18px;
|
||||||
|
padding-top: 24px;
|
||||||
|
|
||||||
|
.li1 {
|
||||||
|
list-style: none;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-left: 20px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.borderLeft {
|
||||||
|
width: 1px;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #1160e2;
|
||||||
|
position: absolute;
|
||||||
|
top: 11.225px;
|
||||||
|
bottom: 0;
|
||||||
|
left: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.borderLeft1 {
|
||||||
|
background-color: #1160e2;
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node::before {
|
||||||
|
z-index: 1;
|
||||||
|
content: "";
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #1160e2;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
color: #fff;
|
||||||
|
position: absolute;
|
||||||
|
border-radius: 50%;
|
||||||
|
left: 0;
|
||||||
|
top: 11.225px;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.node {
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 22.5px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #212121;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node1 {
|
||||||
|
color: #0058e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node1::before {
|
||||||
|
width: 16px;
|
||||||
|
|
||||||
|
height: 16px;
|
||||||
|
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
|
border: 4px solid #1160e2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.advice {
|
||||||
|
font-size: 10px;
|
||||||
|
color: #1160e2;
|
||||||
|
padding-bottom: 46px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.li1:last-child .borderLeft {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
width: 770px;
|
||||||
|
margin-left: 157px;
|
||||||
|
margin-top: -5px;
|
||||||
|
|
||||||
|
|
||||||
|
.info-inner {
|
||||||
|
|
||||||
|
margin-left: 10px;
|
||||||
|
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseInfo {
|
||||||
|
|
||||||
|
border-radius: 2px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseTitle {
|
||||||
|
padding-left: 20px;
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 32px;
|
||||||
|
background: url("~@/assets/img/biaoti.png") no-repeat;
|
||||||
|
background-position-y: 2px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseInner {
|
||||||
|
background: rgba(244, 245, 248, 0.8);
|
||||||
|
padding: 24px 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseInner1 {
|
||||||
|
background: rgba(244, 245, 248, 0.8);
|
||||||
|
padding: 24px 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__header {
|
||||||
|
background: #0058e1;
|
||||||
|
// height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__title {
|
||||||
|
line-height: 18px;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__body {
|
||||||
|
padding: 0px;
|
||||||
|
height: 580px;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-input ::v-deep .el-input__inner {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detial-form ::v-deep {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__label {
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__content {
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-checkbox-button__inner {
|
||||||
|
width: 130px;
|
||||||
|
margin: 0 10px 5px;
|
||||||
|
border-left: unset !important;
|
||||||
|
border-radius: unset !important;
|
||||||
|
border: 1px solid #dcdfe6 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.mod-sys__menu {
|
||||||
|
|
||||||
|
.menu-list,
|
||||||
|
.icon-list {
|
||||||
|
|
||||||
|
.el-input__inner,
|
||||||
|
.el-input__suffix {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-icon-popover {
|
||||||
|
width: 458px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-icon-inner {
|
||||||
|
width: 478px;
|
||||||
|
max-height: 258px;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-icon-list {
|
||||||
|
width: 458px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
|
||||||
|
>.el-button {
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px 0 0 8px;
|
||||||
|
|
||||||
|
>span {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.previewImg {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
text-align: right;
|
||||||
|
vertical-align: middle;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 40px;
|
||||||
|
padding: 0 12px 0 0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
line-height: 32px;
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin-left: 132px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
height: 100px;
|
||||||
|
width: 100px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -0,0 +1,239 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="info-title">{{ title }}</div>
|
||||||
|
|
||||||
|
<el-form :inline="true">
|
||||||
|
<el-form-item label="使用总数">
|
||||||
|
<el-input
|
||||||
|
v-model="count"
|
||||||
|
onkeyup="value=value.replace(/[^\d]/g,0)"
|
||||||
|
placeholder="请输入总数"
|
||||||
|
style="width: 320px"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<div class="submit">
|
||||||
|
<a-button type="primary" @click="addBaseInfo">
|
||||||
|
<img
|
||||||
|
style="height: 12px; width: 12px; margin-top: -2px"
|
||||||
|
src="~@/assets/img/jiahao.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<span style="margin-left: 4px">添加实例数据</span>
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div style="margin-bottom: 20px">
|
||||||
|
<el-table v-if="dataInfo.length > 0" :data="dataInfo" border>
|
||||||
|
<el-table-column label="序号" width="55">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.$index + 1 > 9 ? scope.$index + 1 : "0" + (scope.$index + 1)
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="数据名称" width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.name"
|
||||||
|
placeholder="请输入数据名称"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="类型" width="200">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-select :ref="scope.row.id" v-model="scope.row.type">
|
||||||
|
<el-option
|
||||||
|
v-for="item in typeList"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
:key="item.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="来源部门" width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.dept"
|
||||||
|
placeholder="请输入来源部门"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span
|
||||||
|
style="color: #0058e1"
|
||||||
|
@click="handleDelete(scope.$index, scope.row)"
|
||||||
|
>删除</span
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
dataForm: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
typeList: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dataInfo: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.dataInfo = newVal;
|
||||||
|
this.$emit("update", {
|
||||||
|
title: this.title,
|
||||||
|
list: newVal,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
count: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.count = newVal;
|
||||||
|
this.$emit("updateCount", {
|
||||||
|
title: this.title,
|
||||||
|
count: newVal,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
count: "",
|
||||||
|
dataInfo: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
addBaseInfo() {
|
||||||
|
let data = {
|
||||||
|
name: "",
|
||||||
|
type: "",
|
||||||
|
dept: "",
|
||||||
|
};
|
||||||
|
this.dataInfo.push(data);
|
||||||
|
},
|
||||||
|
handleDelete(row) {
|
||||||
|
this.dataInfo.splice(row, 1);
|
||||||
|
},
|
||||||
|
getDataInfo(dataForm) {
|
||||||
|
let arr = [];
|
||||||
|
if (dataForm && (dataForm.id || dataForm.id === 0)) {
|
||||||
|
if (this.title === "基础设施") {
|
||||||
|
this.count = dataForm.infrastructureCount;
|
||||||
|
}
|
||||||
|
if (this.title === "组件服务") {
|
||||||
|
this.count = dataForm.componentCount;
|
||||||
|
}
|
||||||
|
if (this.title === "数据资源") {
|
||||||
|
this.count = dataForm.dataSourceCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
let fuseAttrList = dataForm.fuseAttrList || [];
|
||||||
|
let obj = fuseAttrList.find((v) => v.attrType === this.title) || {};
|
||||||
|
let attrValue = JSON.parse(obj.attrValue || "[]");
|
||||||
|
if (attrValue.length > 0) {
|
||||||
|
attrValue.map((v) => {
|
||||||
|
arr.push(v);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
arr = [];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
arr = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dataInfo = arr;
|
||||||
|
},
|
||||||
|
// 新增
|
||||||
|
addItem() {
|
||||||
|
let index = this.dataInfo.length - 1;
|
||||||
|
if (this.dataInfo[index][this.keyTextObj.descObj.key] === "") {
|
||||||
|
return this.$message.warning("请填写完整信息!");
|
||||||
|
}
|
||||||
|
this.dataInfo.push({
|
||||||
|
[this.keyTextObj.descObj.key]: "",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
deleteItem(index) {
|
||||||
|
this.$confirm("确认是否删除?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.$message({
|
||||||
|
type: "success",
|
||||||
|
message: "删除成功!",
|
||||||
|
});
|
||||||
|
this.dataInfo.splice(index, 1);
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .el-table thead {
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-table th {
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #e3e4e5 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit {
|
||||||
|
font-size: 0.14rem;
|
||||||
|
margin-left: 8px;
|
||||||
|
|
||||||
|
.ant-btn {
|
||||||
|
width: 128px;
|
||||||
|
height: 32px;
|
||||||
|
text-align: center;
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
border: 1px solid #0558e1;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-btn:hover {
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-btn:active {
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-btn {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,20 +1,39 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="question-box">
|
<div class="question-box">
|
||||||
<div class="title">
|
<!-- <div class="title">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</div>
|
</div> -->
|
||||||
<div v-for="(item, index) in dataInfo" :key="index">
|
<div v-for="(item, index) in dataInfo" :key="index">
|
||||||
<el-form-item :label="keyTextObj.descObj.text">
|
<el-form-item :label=keyTextObj.descObj.text+(index+1)>
|
||||||
<el-input type="textarea" :rows="2" v-model="item[keyTextObj.descObj.key]"
|
<el-input type="textarea" :rows="2" v-model="item[keyTextObj.descObj.key]"
|
||||||
:placeholder="`请输入${keyTextObj.descObj.text}`" style="width:90%">
|
:placeholder="`请输入${keyTextObj.descObj.text}`" style="width:90%">
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-button style="margin-left:10px" @click="deleteItem(index)" type="danger" size="small"
|
<!-- <icon class="el-icon-remove" style="color:red;margin-left: 2px;"
|
||||||
v-if="dataInfo.length > 1">删除
|
@click="deleteItem(index)" type="danger" size="small"
|
||||||
</el-button>
|
v-if="dataInfo.length > 1"></icon> -->
|
||||||
|
<img
|
||||||
|
style="color:red;margin-left: 6px;"
|
||||||
|
@click="deleteItem(index)" type="danger" size="small"
|
||||||
|
v-if="dataInfo.length > 1"
|
||||||
|
src="~@/assets/img/deleteRed.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<!-- <el-button style="margin-left:10px" >删除
|
||||||
|
</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-button class="add-btn" size="small" v-if="index == dataInfo.length - 1" @click="addItem" type="primary">
|
<!-- <el-button class="add-btn" icon="el-icon-circle-plus-outline" size="small" v-if="index == dataInfo.length - 1" @click="addItem" type="primary">
|
||||||
添加
|
添加
|
||||||
</el-button>
|
</el-button> -->
|
||||||
|
<div class="submit">
|
||||||
|
<a-button type="primary" v-if="index == dataInfo.length - 1" @click="addItem" >
|
||||||
|
<img
|
||||||
|
style="height: 12px; width: 12px;margin-top: -2px;"
|
||||||
|
src="~@/assets/img/jiahao.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<span style="margin-left: 4px">添加{{keyTextObj.descObj.text}}</span>
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -115,6 +134,31 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.submit {
|
||||||
|
font-size: 0.14rem;
|
||||||
|
margin-left: 100px;
|
||||||
|
.ant-btn {
|
||||||
|
width: 386px;
|
||||||
|
height: 32px;
|
||||||
|
text-align: center;
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
border: 1px solid #0558e1;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.ant-btn:hover{
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
.ant-btn:active{
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.question-box {
|
.question-box {
|
||||||
.title {
|
.title {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
|
@ -1,14 +1,102 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="question-box">
|
<div>
|
||||||
<div class="title">
|
|
||||||
能力使用步骤
|
|
||||||
</div>
|
|
||||||
<div v-for="(item, index) in dataInfo" :key="index">
|
<div v-for="(item, index) in dataInfo" :key="index">
|
||||||
<el-form-item label="标题" prop="question">
|
<div class="question-box">
|
||||||
|
<span>步骤标题{{ index + 1 }}: </span>
|
||||||
|
<el-input
|
||||||
|
v-model="item.question"
|
||||||
|
placeholder="请输入标题"
|
||||||
|
style="width: 200px"
|
||||||
|
:disabled="disabledType"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
<img
|
||||||
|
style="color: red; margin-left: 6px"
|
||||||
|
@click="deleteItem(index)"
|
||||||
|
type="danger"
|
||||||
|
size="small"
|
||||||
|
v-if="!disabledType && dataInfo.length > 1"
|
||||||
|
src="~@/assets/img/deleteRed.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="question-box1">
|
||||||
|
<div
|
||||||
|
class="question-box-right"
|
||||||
|
v-for="(itemson, index) in item.answer"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<span>步骤小节: </span>
|
||||||
|
<el-input
|
||||||
|
v-if="index != item.answer.length - 1"
|
||||||
|
v-model="itemson.answer"
|
||||||
|
placeholder="请输入步骤小节"
|
||||||
|
style="width: 200px"
|
||||||
|
:disabled="disabledType"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
<div v-else style="display: inline">
|
||||||
|
<el-input
|
||||||
|
v-model="itemson.answer"
|
||||||
|
placeholder="请输入步骤小节"
|
||||||
|
style="width: 200px"
|
||||||
|
:disabled="disabledType"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
<div class="submit1">
|
||||||
|
<a-button type="primary" @click="addAnswerItem(item.answer)">
|
||||||
|
<img
|
||||||
|
style="height: 12px; width: 12px; margin-top: -2px"
|
||||||
|
src="~@/assets/img/jiahao.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<span style="margin-left: 4px">添加小节</span>
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <a-button type="primary" v-if="!disabledType && index == dataInfo.length - 1"
|
||||||
|
@click="addItem">
|
||||||
|
<img
|
||||||
|
style="height: 12px; width: 12px;margin-top: -2px;"
|
||||||
|
src="~@/assets/img/jiahao.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<span style="margin-left: 4px">添加小节</span>
|
||||||
|
</a-button> -->
|
||||||
|
<!-- <div class="question-box-right">
|
||||||
|
<span>步骤小节: </span>
|
||||||
|
<el-input v-model="itemson.answer" placeholder="请输入步骤小节" style="width:200px"
|
||||||
|
:disabled="disabledType">
|
||||||
|
</el-input>
|
||||||
|
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="submit">
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
v-if="!disabledType && index == dataInfo.length - 1"
|
||||||
|
@click="addItem"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
style="height: 12px; width: 12px; margin-top: -2px"
|
||||||
|
src="~@/assets/img/jiahao.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<span style="margin-left: 4px">添加步骤</span>
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <div class="question-box">
|
||||||
|
|
||||||
|
<div v-for="(item, index) in dataInfo" :key="index">
|
||||||
|
<el-form-item label="步骤标题" prop="question">
|
||||||
<el-input v-model="item.question" placeholder="请输入标题" style="width:90%" :disabled="disabledType">
|
<el-input v-model="item.question" placeholder="请输入标题" style="width:90%" :disabled="disabledType">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="解释说明" prop="question">
|
<el-form-item label="步骤" prop="question">
|
||||||
<el-input type="textarea" :rows="3" v-model="item.answer" placeholder="请输入解释说明" style="width:90%"
|
<el-input type="textarea" :rows="3" v-model="item.answer" placeholder="请输入解释说明" style="width:90%"
|
||||||
:disabled="disabledType">
|
:disabled="disabledType">
|
||||||
</el-input>
|
</el-input>
|
||||||
|
@ -19,16 +107,15 @@
|
||||||
<el-button class="add-btn" size="small" v-if="!disabledType && index == dataInfo.length - 1"
|
<el-button class="add-btn" size="small" v-if="!disabledType && index == dataInfo.length - 1"
|
||||||
@click="addItem" type="primary">添加
|
@click="addItem" type="primary">添加
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="step-box">
|
<!-- <div class="step-box">
|
||||||
<el-steps :active="2">
|
<el-steps :active="2">
|
||||||
<el-step status="finish" :title="item.question || `标题${index + 1}`" v-for="(item, index) in dataInfo"
|
<el-step status="finish" :title="item.question || `标题${index + 1}`" v-for="(item, index) in dataInfo"
|
||||||
:key="index">
|
:key="index">
|
||||||
</el-step>
|
</el-step>
|
||||||
</el-steps>
|
</el-steps>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -36,27 +123,27 @@ export default {
|
||||||
props: {
|
props: {
|
||||||
dataForm: {
|
dataForm: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => { }
|
default: () => {},
|
||||||
},
|
},
|
||||||
// 是否可编辑
|
// 是否可编辑
|
||||||
disabledType: {
|
disabledType: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dataInfo: []
|
dataInfo: [],
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
dataInfo: {
|
dataInfo: {
|
||||||
handler(newVal) {
|
handler(newVal) {
|
||||||
this.dataInfo = newVal;
|
this.dataInfo = newVal;
|
||||||
this.$emit('update', {
|
this.$emit("update", {
|
||||||
title: '使用步骤',
|
title: "构建步骤",
|
||||||
list: newVal
|
list: newVal,
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
@ -64,70 +151,128 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getDataInfo(dataForm) {
|
getDataInfo(dataForm) {
|
||||||
let arr = []
|
let arr = [];
|
||||||
let fuseAttrList = dataForm.fuseAttrList || [];
|
let fuseAttrList = dataForm.fuseAttrList || [];
|
||||||
let obj = fuseAttrList.find(v => v.attrType === '使用步骤') || {}
|
let obj = fuseAttrList.find((v) => v.attrType === "构建步骤") || {};
|
||||||
let attrValue = JSON.parse(obj.attrValue || "[]")
|
let attrValue = obj.attrValue || [];
|
||||||
|
|
||||||
if (attrValue.length > 0) {
|
if (attrValue.length > 0) {
|
||||||
attrValue.map(v => {
|
attrValue = JSON.parse(attrValue);
|
||||||
|
|
||||||
|
attrValue.map((v) => {
|
||||||
arr.push({
|
arr.push({
|
||||||
question: v.question,
|
question: v.question,
|
||||||
answer: v.answer,
|
answer: v.answer,
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
} else {
|
} else {
|
||||||
arr = []
|
arr = [];
|
||||||
arr.push({
|
arr.push({
|
||||||
question: "",
|
question: "",
|
||||||
answer: "",
|
answer: [{ answer: "" }, { answer: "" }],
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
this.dataInfo = arr;
|
this.dataInfo = arr;
|
||||||
},
|
},
|
||||||
// 新增
|
// 新增
|
||||||
addItem() {
|
addItem() {
|
||||||
let index = this.dataInfo.length - 1;
|
let index = this.dataInfo.length - 1;
|
||||||
if (this.dataInfo[index].question === '' || this.dataInfo[index].answer === '') {
|
if (this.dataInfo[index].answer === "") {
|
||||||
return this.$message.warning('请填写完整信息!')
|
return this.$message.warning("请填写完整信息!");
|
||||||
}
|
}
|
||||||
if (this.dataInfo.length >= 6) {
|
if (this.dataInfo.length >= 6) {
|
||||||
return this.$message.warning('最多添加6个使用步骤!')
|
return this.$message.warning("最多添加6个使用步骤!");
|
||||||
}
|
}
|
||||||
this.dataInfo.push({
|
this.dataInfo.push({
|
||||||
question: "",
|
question: "",
|
||||||
answer: "",
|
answer: [{ answer: "" }, { answer: "" }],
|
||||||
})
|
});
|
||||||
|
},
|
||||||
|
addAnswerItem(itemson) {
|
||||||
|
itemson.push({});
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
deleteItem(index) {
|
deleteItem(index) {
|
||||||
this.$confirm('确认是否删除?', '提示', {
|
this.$confirm("确认是否删除?", "提示", {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: "取消",
|
||||||
type: 'warning'
|
type: "warning",
|
||||||
}).then(() => {
|
})
|
||||||
|
.then(() => {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'success',
|
type: "success",
|
||||||
message: '删除成功!'
|
message: "删除成功!",
|
||||||
});
|
});
|
||||||
this.dataInfo.splice(index, 1)
|
this.dataInfo.splice(index, 1);
|
||||||
}).catch(() => {
|
})
|
||||||
});
|
.catch(() => {});
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.question-box {
|
.submit1 {
|
||||||
margin-bottom: 20px;
|
display: inline;
|
||||||
margin-top: 40px;
|
font-size: 0.14rem;
|
||||||
|
margin-left: 8px;
|
||||||
.title {
|
.ant-btn {
|
||||||
|
width: 94px;
|
||||||
|
height: 32px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-weight: 600;
|
background: #fff;
|
||||||
font-size: 18px;
|
color: #0558e1;
|
||||||
margin-bottom: 10px;
|
border: 1px solid #0558e1;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
.ant-btn:hover {
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
.ant-btn:active {
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submit {
|
||||||
|
font-size: 0.14rem;
|
||||||
|
margin-left: 180px;
|
||||||
|
.ant-btn {
|
||||||
|
width: 370px;
|
||||||
|
height: 32px;
|
||||||
|
text-align: center;
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
border: 1px solid #0558e1;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.ant-btn:hover {
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
.ant-btn:active {
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.question-box {
|
||||||
|
float: left;
|
||||||
|
width: 42%;
|
||||||
|
}
|
||||||
|
.question-box1 {
|
||||||
|
float: left;
|
||||||
|
width: 56%;
|
||||||
|
border-left: 1px solid #dfdfdf;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.question-box-right {
|
||||||
|
margin-left: 24px;
|
||||||
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.step-box {
|
.step-box {
|
||||||
|
|
|
@ -1,6 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<el-card shadow="never" class="aui-card--fill">
|
<el-card shadow="never" class="aui-card--fill">
|
||||||
<div class="mod-ability__bsabilityai">
|
<div class="mod-ability__bsabilityai">
|
||||||
|
<div class="second-title">
|
||||||
|
<div
|
||||||
|
|
||||||
|
:class="[choose === 0 ? 'departmentStyle' : 'departmentStyle1']"
|
||||||
|
@click="handleChose(0)"
|
||||||
|
>
|
||||||
|
市级领域场景
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
:class="[choose === 1 ? 'departmentStyle' : 'departmentStyle1']"
|
||||||
|
@click="handleChose(1)"
|
||||||
|
>
|
||||||
|
基层场景
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<el-form :inline="true" :model="dataForm">
|
<el-form :inline="true" :model="dataForm">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input v-model="dataForm.name" placeholder="名称" clearable></el-input>
|
<el-input v-model="dataForm.name" placeholder="名称" clearable></el-input>
|
||||||
|
@ -40,21 +55,36 @@
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
|
|
||||||
<!-- 弹窗, 新增 / 修改 -->
|
<!-- 弹窗, 新增 / 修改 -->
|
||||||
<add-update-scene v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="query" @closeModal="closeModal"
|
<!-- <add-update-scene v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="query" @closeModal="closeModal"
|
||||||
:addOrUpdateVisible="addOrUpdateVisible" :modalType="modalType">
|
:addOrUpdateVisible="addOrUpdateVisible" :modalType="modalType">
|
||||||
</add-update-scene>
|
</add-update-scene> -->
|
||||||
|
<!-- 市级挂接 -->
|
||||||
|
<city-add v-if="cityVisible" ref="cityAdd" @refreshDataList="query" @closeModal="closeModal"
|
||||||
|
:cityVisible="cityVisible" :modalType="modalType">
|
||||||
|
</city-add>
|
||||||
|
<!--基层挂架-->
|
||||||
|
<area-add v-if="areaVisible" ref="areaAdd" @refreshDataList="query" @closeModal="closeModal"
|
||||||
|
:areaVisible="areaVisible" :modalType="modalType">
|
||||||
|
</area-add>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import mixinViewModule from "@/mixins/view-module";
|
import mixinViewModule from "@/mixins/view-module";
|
||||||
import AddUpdateScene from "./add-update-scene";
|
|
||||||
|
|
||||||
|
import cityAdd from "./city-add";
|
||||||
|
import areaAdd from "./area-add";
|
||||||
export default {
|
export default {
|
||||||
mixins: [mixinViewModule],
|
mixins: [mixinViewModule],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
//市级挂接
|
||||||
|
cityVisible:false,
|
||||||
|
//基层挂接
|
||||||
|
areaVisible:false,
|
||||||
|
//tab切换
|
||||||
|
choose: 0,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
childName: '',
|
childName: '',
|
||||||
mixinViewModuleOptions: {
|
mixinViewModuleOptions: {
|
||||||
|
@ -69,20 +99,27 @@ export default {
|
||||||
name: "",
|
name: "",
|
||||||
order: 'desc',
|
order: 'desc',
|
||||||
orderField: 'create_date',
|
orderField: 'create_date',
|
||||||
type: '赋能场景'
|
type: '赋能场景',
|
||||||
|
district: 0//0市级 1基层
|
||||||
|
|
||||||
},
|
},
|
||||||
qp: false,
|
qp: false,
|
||||||
modalType: 'add',
|
modalType: 'add',
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
AddUpdateScene,
|
areaAdd,
|
||||||
|
cityAdd
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener("resize", this.a);
|
window.addEventListener("resize", this.a);
|
||||||
this.fullScreen();
|
this.fullScreen();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleChose(index) {
|
||||||
|
this.choose = index;
|
||||||
|
this.searchData()
|
||||||
|
},
|
||||||
deleteRow(id) {
|
deleteRow(id) {
|
||||||
this.$confirm('确认是否删除?', '提示', {
|
this.$confirm('确认是否删除?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
|
@ -112,6 +149,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
searchData() {
|
searchData() {
|
||||||
|
this.dataForm.district=this.choose
|
||||||
this.query()
|
this.query()
|
||||||
},
|
},
|
||||||
// 重置
|
// 重置
|
||||||
|
@ -121,20 +159,36 @@ export default {
|
||||||
},
|
},
|
||||||
// 修改
|
// 修改
|
||||||
handleUpdate(val) {
|
handleUpdate(val) {
|
||||||
this.addOrUpdateVisible = true;
|
if(this.choose==0){
|
||||||
|
this.cityVisible=true
|
||||||
|
}else{
|
||||||
|
this.areaVisible=true
|
||||||
|
}
|
||||||
|
|
||||||
this.modalType = 'update';
|
this.modalType = 'update';
|
||||||
const cloneVal = JSON.parse(JSON.stringify(val))
|
const cloneVal = JSON.parse(JSON.stringify(val))
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.addOrUpdate.getDetail(cloneVal)
|
if(this.choose==0){
|
||||||
|
this.$refs.cityAdd.getDetail(cloneVal)
|
||||||
|
}else{
|
||||||
|
this.$refs.areaAdd.getDetail(cloneVal)
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 挂接
|
// 挂接
|
||||||
addServe() {
|
addServe() {
|
||||||
this.addOrUpdateVisible = true
|
//this.addOrUpdateVisible = true
|
||||||
this.modalType = 'add';
|
this.modalType = 'add';
|
||||||
|
if(this.choose===0){
|
||||||
|
this.cityVisible=true
|
||||||
|
}else{
|
||||||
|
this.areaVisible=true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
closeModal() {
|
closeModal() {
|
||||||
this.addOrUpdateVisible = false;
|
this.cityVisible = false;
|
||||||
|
this.areaVisible=false;
|
||||||
},
|
},
|
||||||
// 详情
|
// 详情
|
||||||
showDetail(val) {
|
showDetail(val) {
|
||||||
|
@ -164,6 +218,32 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.second-title {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
background: rgb(0,0,0,0.03);
|
||||||
|
border-bottom: 1px solid #d9d9d9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.departmentStyle {
|
||||||
|
float: left;
|
||||||
|
width: 100px;
|
||||||
|
color: #0058e1;
|
||||||
|
background-color: #fff;
|
||||||
|
border-right: 1px solid #d9d9d9;
|
||||||
|
border-left: 1px solid #d9d9d9;
|
||||||
|
border-top: 1px solid #d9d9d9;
|
||||||
|
}
|
||||||
|
.departmentStyle1 {
|
||||||
|
|
||||||
|
float: left;
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
.el-tooltip__popper {
|
.el-tooltip__popper {
|
||||||
max-width: 50%;
|
max-width: 50%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,7 +230,7 @@
|
||||||
:close-on-press-escape="false"
|
:close-on-press-escape="false"
|
||||||
:destroy-on-close="true"
|
:destroy-on-close="true"
|
||||||
:before-close="clear"
|
:before-close="clear"
|
||||||
width="50%"
|
width="60%"
|
||||||
>
|
>
|
||||||
<putOnTheShelf
|
<putOnTheShelf
|
||||||
ref="putOnTheShelf"
|
ref="putOnTheShelf"
|
||||||
|
@ -271,6 +271,7 @@ export default {
|
||||||
radio: '',
|
radio: '',
|
||||||
showPutOnTheShelfFlag: false,
|
showPutOnTheShelfFlag: false,
|
||||||
showPutOnTheShelfFlag2: false,
|
showPutOnTheShelfFlag2: false,
|
||||||
|
// routePath: '',
|
||||||
submitFrom: {
|
submitFrom: {
|
||||||
type: '组件服务',
|
type: '组件服务',
|
||||||
deptId: '',
|
deptId: '',
|
||||||
|
@ -328,7 +329,6 @@ export default {
|
||||||
this.dataForm.name = ''
|
this.dataForm.name = ''
|
||||||
this.dataForm.type = '组件服务'
|
this.dataForm.type = '组件服务'
|
||||||
this.$http.get('/sys/user/info').then(res => {
|
this.$http.get('/sys/user/info').then(res => {
|
||||||
console.log('res', res.data.data, !res.data.data.superAdmin, this.$store.state.user.roleIdList)
|
|
||||||
this.superAdmin = res.data.data.superAdmin
|
this.superAdmin = res.data.data.superAdmin
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -340,7 +340,6 @@ export default {
|
||||||
// 置顶
|
// 置顶
|
||||||
toppingCapacity (item) {
|
toppingCapacity (item) {
|
||||||
this.$http.put('/resource/pin_top/' + item.id).then(res => {
|
this.$http.put('/resource/pin_top/' + item.id).then(res => {
|
||||||
console.log('置顶', res.data.code)
|
|
||||||
if (res.data.code == 0) {
|
if (res.data.code == 0) {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: '置顶成功',
|
message: '置顶成功',
|
||||||
|
@ -420,7 +419,6 @@ export default {
|
||||||
})
|
})
|
||||||
this.dataList[index].infoList2 = dataListSinforList
|
this.dataList[index].infoList2 = dataListSinforList
|
||||||
})
|
})
|
||||||
console.log('this.dataList', this.dataList)
|
|
||||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||||
? res.data.total
|
? res.data.total
|
||||||
: 0
|
: 0
|
||||||
|
@ -443,7 +441,7 @@ export default {
|
||||||
},
|
},
|
||||||
showDetail (val) {
|
showDetail (val) {
|
||||||
console.log(val)
|
console.log(val)
|
||||||
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
|
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id + '&&hiddenBackFlag=true')
|
||||||
// this.addOrUpdateHandle(id)
|
// this.addOrUpdateHandle(id)
|
||||||
// this.addOrUpdateVisible = true
|
// this.addOrUpdateVisible = true
|
||||||
// this.disabled = false
|
// this.disabled = false
|
||||||
|
@ -490,7 +488,6 @@ export default {
|
||||||
this.uuidTwo = this.uuid(13, 16)
|
this.uuidTwo = this.uuid(13, 16)
|
||||||
this.uuidSnum = this.uuidOne + this.uuidTwo
|
this.uuidSnum = this.uuidOne + this.uuidTwo
|
||||||
this.uuidSnum = this.uuidSnum.replace(/\s+/g, '')
|
this.uuidSnum = this.uuidSnum.replace(/\s+/g, '')
|
||||||
console.log('this.uuidOne', this.uuidSnum)
|
|
||||||
},
|
},
|
||||||
showDocument (val) {
|
showDocument (val) {
|
||||||
// 第一步:创建文档
|
// 第一步:创建文档
|
||||||
|
@ -629,6 +626,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 新上架
|
// 新上架
|
||||||
clear () {
|
clear () {
|
||||||
|
// this.$router.push(this.routePath)
|
||||||
console.log('清空----------------------------------------')
|
console.log('清空----------------------------------------')
|
||||||
this.notFilled = []
|
this.notFilled = []
|
||||||
this.showPutOnTheShelfFlag = false
|
this.showPutOnTheShelfFlag = false
|
||||||
|
@ -659,6 +657,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
showPutOnTheShelfVue () {
|
showPutOnTheShelfVue () {
|
||||||
|
// this.routePath = this.$route.path
|
||||||
this.showPutOnTheShelfFlag = false
|
this.showPutOnTheShelfFlag = false
|
||||||
this.showPutOnTheShelfFlag2 = true
|
this.showPutOnTheShelfFlag2 = true
|
||||||
this.submitFrom.infoList[0].attrValue = this.radio
|
this.submitFrom.infoList[0].attrValue = this.radio
|
||||||
|
@ -667,7 +666,6 @@ export default {
|
||||||
)[0].children
|
)[0].children
|
||||||
},
|
},
|
||||||
changeInfoList (obj) {
|
changeInfoList (obj) {
|
||||||
console.log(obj, this.submitFrom)
|
|
||||||
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||||
(item) => item.attrType !== obj.attrType
|
(item) => item.attrType !== obj.attrType
|
||||||
)
|
)
|
||||||
|
@ -691,14 +689,12 @@ export default {
|
||||||
},
|
},
|
||||||
// 完全删除
|
// 完全删除
|
||||||
deleteCompletely (row) {
|
deleteCompletely (row) {
|
||||||
console.log('完全删除===', row)
|
|
||||||
this.$confirm('确认是否删除?', '提示', {
|
this.$confirm('确认是否删除?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$http.post('/resource/delResBySuAd?id=' + row.id).then(res => {
|
this.$http.post('/resource/delResBySuAd?id=' + row.id).then(res => {
|
||||||
console.log('删除结果', res.data)
|
|
||||||
if (res.data.code == 0) {
|
if (res.data.code == 0) {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
|
@ -715,7 +711,6 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
submitData () {
|
submitData () {
|
||||||
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
|
|
||||||
const arr = []
|
const arr = []
|
||||||
this.putOnTheShelfList.map((item) => {
|
this.putOnTheShelfList.map((item) => {
|
||||||
item.children.map((child) => {
|
item.children.map((child) => {
|
||||||
|
@ -824,6 +819,7 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
this.submitFrom.infoList = this.submitFrom.infoList.sort(
|
this.submitFrom.infoList = this.submitFrom.infoList.sort(
|
||||||
(a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType)
|
(a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType)
|
||||||
)
|
)
|
||||||
|
@ -872,7 +868,6 @@ export default {
|
||||||
if ((this.radio === '业务组件' || this.radio === '开发组件') && (!this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0].attrValue)) {
|
if ((this.radio === '业务组件' || this.radio === '开发组件') && (!this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '组件地址')[0].attrValue)) {
|
||||||
this.notFilled.push('组件地址')
|
this.notFilled.push('组件地址')
|
||||||
}
|
}
|
||||||
console.log(this.submitFrom, this.notFilled, '表单验证')
|
|
||||||
if (this.notFilled.length > 0) {
|
if (this.notFilled.length > 0) {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: '请填写必填字段!',
|
message: '请填写必填字段!',
|
||||||
|
@ -886,8 +881,6 @@ export default {
|
||||||
val.attrValue = this.radio
|
val.attrValue = this.radio
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
console.log('编辑===============>', this.submitFrom)
|
|
||||||
console.log(this.submitFrom.infoList, '===============abc')
|
|
||||||
// 去重
|
// 去重
|
||||||
const newArr = this.submitFrom.infoList.filter(
|
const newArr = this.submitFrom.infoList.filter(
|
||||||
(element, index, self) => {
|
(element, index, self) => {
|
||||||
|
@ -911,7 +904,6 @@ export default {
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
} else {
|
} else {
|
||||||
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
|
|
||||||
this.$http
|
this.$http
|
||||||
.post('/resource/insert?source= b', this.submitFrom)
|
.post('/resource/insert?source= b', this.submitFrom)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
|
|
|
@ -217,7 +217,7 @@
|
||||||
:close-on-press-escape='false'
|
:close-on-press-escape='false'
|
||||||
:destroy-on-close='true'
|
:destroy-on-close='true'
|
||||||
:before-close='clear'
|
:before-close='clear'
|
||||||
width="50%">
|
width="60%">
|
||||||
<putOnTheShelf :required="required" :notFilled="notFilled" :putOnTheShelfList='putOnTheShelfList' @changeInfoList='changeInfoList' :type='radio' :typeInput='typeInput'></putOnTheShelf>
|
<putOnTheShelf :required="required" :notFilled="notFilled" :putOnTheShelfList='putOnTheShelfList' @changeInfoList='changeInfoList' :type='radio' :typeInput='typeInput'></putOnTheShelf>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="clear">取 消</el-button>
|
<el-button @click="clear">取 消</el-button>
|
||||||
|
@ -271,6 +271,7 @@ export default {
|
||||||
insertList: [],
|
insertList: [],
|
||||||
putOnTheShelfList: [],
|
putOnTheShelfList: [],
|
||||||
showPutOnTheShelfFlag2: false,
|
showPutOnTheShelfFlag2: false,
|
||||||
|
// routePath: '',
|
||||||
submitFrom: {
|
submitFrom: {
|
||||||
type: '应用资源',
|
type: '应用资源',
|
||||||
deptId: '',
|
deptId: '',
|
||||||
|
@ -358,7 +359,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
showDetail (val) {
|
showDetail (val) {
|
||||||
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
|
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id + '&&hiddenBackFlag=true')
|
||||||
// this.addOrUpdateVisible = true
|
// this.addOrUpdateVisible = true
|
||||||
// this.disabled = false
|
// this.disabled = false
|
||||||
// this.$nextTick(() => {
|
// this.$nextTick(() => {
|
||||||
|
@ -594,6 +595,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 新上架
|
// 新上架
|
||||||
clear () {
|
clear () {
|
||||||
|
// this.$router.push(this.routePath)
|
||||||
this.notFilled = []
|
this.notFilled = []
|
||||||
this.showPutOnTheShelfFlag2 = false
|
this.showPutOnTheShelfFlag2 = false
|
||||||
this.insertList = []
|
this.insertList = []
|
||||||
|
@ -615,6 +617,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 上架
|
// 上架
|
||||||
showPutOnTheShelf () {
|
showPutOnTheShelf () {
|
||||||
|
// this.routePath = this.$route.path
|
||||||
this.showPutOnTheShelfFlag2 = true
|
this.showPutOnTheShelfFlag2 = true
|
||||||
this.$http.get('/category/getCategoryTree').then(res => {
|
this.$http.get('/category/getCategoryTree').then(res => {
|
||||||
this.insertList = res.data.data.filter(item => item.name === '应用资源')[0]
|
this.insertList = res.data.data.filter(item => item.name === '应用资源')[0]
|
||||||
|
|
|
@ -180,7 +180,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="yyzy" label="应用资源" min-width="100%">
|
<el-table-column prop="yyzy" label="应用资源" min-width="100%">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="zj" label="总计" min-width="100%">
|
<el-table-column prop="count" label="总计" min-width="100%">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-table :data="tableData" :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }"
|
<el-table :data="tableData" :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }"
|
||||||
|
@ -205,7 +205,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="ysp" label="云视频" min-width="100%" >
|
<el-table-column prop="ysp" label="云视频" min-width="100%" >
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="zj" label="总计" min-width="100%">
|
<el-table-column prop="count" label="总计" min-width="100%">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--明细表-->
|
<!--明细表-->
|
||||||
|
@ -468,7 +468,6 @@ export default {
|
||||||
this.detailsVisible = false
|
this.detailsVisible = false
|
||||||
},
|
},
|
||||||
handleCurrentChange (val) {
|
handleCurrentChange (val) {
|
||||||
|
|
||||||
this.currentPage = val
|
this.currentPage = val
|
||||||
// todo
|
// todo
|
||||||
if (this.departmentId === 3) {
|
if (this.departmentId === 3) {
|
||||||
|
@ -477,10 +476,8 @@ export default {
|
||||||
if (this.departmentId === 4) {
|
if (this.departmentId === 4) {
|
||||||
this.getTwoDetail(val)
|
this.getTwoDetail(val)
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
// 组件服务部门发布情况--改为能力上架统计
|
// 组件服务部门发布情况--改为能力上架统计
|
||||||
getFirstTree (page) {
|
getFirstTree (page) {
|
||||||
if (this.examineStatus == '-1') {
|
if (this.examineStatus == '-1') {
|
||||||
|
@ -508,7 +505,6 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
||||||
if (res.data.code !== 0) {
|
if (res.data.code !== 0) {
|
||||||
this.tableData =[]
|
this.tableData =[]
|
||||||
this.tableDataClone = []
|
this.tableDataClone = []
|
||||||
|
@ -556,7 +552,6 @@ export default {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
// 组件服务部门使用情况列表-改为能力使用统计
|
// 组件服务部门使用情况列表-改为能力使用统计
|
||||||
getSecondTree (page) {
|
getSecondTree (page) {
|
||||||
|
@ -593,33 +588,7 @@ export default {
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
const result = res.data.data
|
const result = res.data.data
|
||||||
for (let i = 0; i < result.length; i++) {
|
|
||||||
if (!result[i].hasOwnProperty('yyzy')) {
|
|
||||||
result[i].yyzy = 0
|
|
||||||
}
|
|
||||||
if (!result[i].hasOwnProperty('kfzj')) {
|
|
||||||
result[i].kfzj = 0
|
|
||||||
}
|
|
||||||
if (!result[i].hasOwnProperty('znsf')) {
|
|
||||||
result[i].znsf = 0
|
|
||||||
}
|
|
||||||
if (!result[i].hasOwnProperty('tcfw')) {
|
|
||||||
result[i].tcfw = 0
|
|
||||||
}
|
|
||||||
if (!result[i].hasOwnProperty('ywzj')) {
|
|
||||||
result[i].ywzj = 0
|
|
||||||
}
|
|
||||||
if (!result[i].hasOwnProperty('hys')) {
|
|
||||||
result[i].hys = 0
|
|
||||||
}
|
|
||||||
result[i].zj =
|
|
||||||
parseInt(result[i].yyzy) +
|
|
||||||
parseInt(result[i].kfzj) +
|
|
||||||
parseInt(result[i].znsf) +
|
|
||||||
parseInt(result[i].ywzj) +
|
|
||||||
parseInt(result[i].tcfw) +
|
|
||||||
parseInt(result[i].hys)
|
|
||||||
}
|
|
||||||
this.tableData = res.data.data
|
this.tableData = res.data.data
|
||||||
this.tableDataClone = res.data.data
|
this.tableDataClone = res.data.data
|
||||||
this.total = res.data.data.total
|
this.total = res.data.data.total
|
||||||
|
@ -708,8 +677,7 @@ export default {
|
||||||
this.tableData = []
|
this.tableData = []
|
||||||
this.tableDataClone = []
|
this.tableDataClone = []
|
||||||
this.total = 0
|
this.total = 0
|
||||||
return this.$message.error("服务器内部异常")
|
return this.$message.error('服务器内部异常')
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.tableData = res.data.data.list
|
this.tableData = res.data.data.list
|
||||||
this.tableDataClone = res.data.data.list
|
this.tableDataClone = res.data.data.list
|
||||||
|
@ -726,7 +694,6 @@ export default {
|
||||||
},
|
},
|
||||||
// 能力使用明细
|
// 能力使用明细
|
||||||
getTwoDetail (page) {
|
getTwoDetail (page) {
|
||||||
|
|
||||||
var passAndReview = '' // 转变"通过"字段为通过
|
var passAndReview = '' // 转变"通过"字段为通过
|
||||||
if (this.examineStatus == '-1') {
|
if (this.examineStatus == '-1') {
|
||||||
this.status = ''
|
this.status = ''
|
||||||
|
@ -756,13 +723,11 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
||||||
if (res.data.code !== 0) {
|
if (res.data.code !== 0) {
|
||||||
this.tableData = []
|
this.tableData = []
|
||||||
this.tableDataClone = []
|
this.tableDataClone = []
|
||||||
this.total = 0
|
this.total = 0
|
||||||
return this.$message.error("服务器内部异常")
|
return this.$message.error('服务器内部异常')
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.tableData = res.data.data.list
|
this.tableData = res.data.data.list
|
||||||
this.tableDataClone = res.data.data.list
|
this.tableDataClone = res.data.data.list
|
||||||
|
@ -776,11 +741,9 @@ export default {
|
||||||
provideDept: this.provideDepartment
|
provideDept: this.provideDepartment
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
handleClick (row) {
|
handleClick (row) {
|
||||||
if (this.choseId === 0) {
|
if (this.choseId === 0) {
|
||||||
if (this.departmentId === 1) {
|
if (this.departmentId === 1) {
|
||||||
|
@ -809,8 +772,6 @@ export default {
|
||||||
|
|
||||||
// 根据不同的type查询不同的表格数据
|
// 根据不同的type查询不同的表格数据
|
||||||
handleChose (index) {
|
handleChose (index) {
|
||||||
|
|
||||||
|
|
||||||
this.checked = false
|
this.checked = false
|
||||||
this.departmentId = index
|
this.departmentId = index
|
||||||
this.currentPage = 1
|
this.currentPage = 1
|
||||||
|
|
|
@ -215,6 +215,7 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import bus from '@/views/bus.js'
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
|
@ -248,6 +249,13 @@ export default {
|
||||||
roomNameA: ''
|
roomNameA: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created () {
|
||||||
|
bus.$off('roomExamineAdminInit')
|
||||||
|
bus.$on('roomExamineAdminInit', () => {
|
||||||
|
this.getSerach()
|
||||||
|
bus.$emit('updateTaskNum')
|
||||||
|
})
|
||||||
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.getSerach()
|
this.getSerach()
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<el-card shadow="never" class="roomBox">
|
<el-card shadow="never" class="roomBox">
|
||||||
<div class="roomExamineSearch">
|
<div class="roomExamineSearch">
|
||||||
|
<p>会客厅名称: </p>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="roomNameA"
|
v-model="roomNameA"
|
||||||
style="width: 160px"
|
style="width: 160px"
|
||||||
|
@ -328,9 +329,10 @@ export default {
|
||||||
}
|
}
|
||||||
.roomExamineSearch {
|
.roomExamineSearch {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 240px;
|
width: 340px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
align-items: baseline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.dialog-footer {
|
.dialog-footer {
|
||||||
|
|
|
@ -34,7 +34,7 @@ export default {
|
||||||
tip: String,
|
tip: String,
|
||||||
maxCount: Number,
|
maxCount: Number,
|
||||||
data: Array,
|
data: Array,
|
||||||
list: Array,
|
list: Object ,
|
||||||
emitFlag: String,
|
emitFlag: String,
|
||||||
busType: Number
|
busType: Number
|
||||||
},
|
},
|
||||||
|
@ -46,13 +46,13 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleExceed (file) {
|
handleExceed (file) {
|
||||||
console.log(file)
|
|
||||||
},
|
},
|
||||||
handError (err, file, fileList) {
|
handError (err, file, fileList) {
|
||||||
console.log(err, file, fileList)
|
|
||||||
},
|
},
|
||||||
handlePreview (file) {
|
handlePreview (file) {
|
||||||
console.log(file)
|
|
||||||
if (file.response) {
|
if (file.response) {
|
||||||
window.open(
|
window.open(
|
||||||
window.SITE_CONFIG.previewUrl +
|
window.SITE_CONFIG.previewUrl +
|
||||||
|
@ -74,7 +74,7 @@ export default {
|
||||||
message: file.name + '上传成功',
|
message: file.name + '上传成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
console.log(file, fileList)
|
|
||||||
this.$emit('changeInfoList', {
|
this.$emit('changeInfoList', {
|
||||||
attrType: this.title,
|
attrType: this.title,
|
||||||
attrValue: file.response.data,
|
attrValue: file.response.data,
|
||||||
|
@ -91,7 +91,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleRemove (file) {
|
handleRemove (file) {
|
||||||
console.log(file, '删除', this.title)
|
|
||||||
this.$emit('changeInfoList', {
|
this.$emit('changeInfoList', {
|
||||||
attrType: this.title,
|
attrType: this.title,
|
||||||
attrValue: '',
|
attrValue: '',
|
||||||
|
@ -104,7 +104,7 @@ export default {
|
||||||
if (this.list.note1) {
|
if (this.list.note1) {
|
||||||
this.fileList.push({ name: this.list.note2 || '--', url: this.list.note1 })
|
this.fileList.push({ name: this.list.note2 || '--', url: this.list.note1 })
|
||||||
}
|
}
|
||||||
console.log('上传组件===================>', this.list, this.fileList)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -7,10 +7,13 @@
|
||||||
:model="dataForm"
|
:model="dataForm"
|
||||||
@keyup.enter.native="getDataList()"
|
@keyup.enter.native="getDataList()"
|
||||||
>
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<span>{{ $t('process.userName') + ':'}}</span>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.processDefinitionId"
|
v-model="dataForm.userName"
|
||||||
:placeholder="$t('process.name')"
|
:placeholder="$t('process.userName')"
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -7,10 +7,13 @@
|
||||||
:model="dataForm"
|
:model="dataForm"
|
||||||
@keyup.enter.native="getDataList()"
|
@keyup.enter.native="getDataList()"
|
||||||
>
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<span>{{ $t('process.userName') + ':'}}</span>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.processDefinitionId"
|
v-model="dataForm.userName"
|
||||||
:placeholder="$t('process.name')"
|
:placeholder="$t('process.userName')"
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -7,10 +7,13 @@
|
||||||
:model="dataForm"
|
:model="dataForm"
|
||||||
@keyup.enter.native="getDataList()"
|
@keyup.enter.native="getDataList()"
|
||||||
>
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<span>{{ $t('process.userName') + ':'}}</span>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.processDefinitionId"
|
v-model="dataForm.userName"
|
||||||
:placeholder="$t('process.name')"
|
:placeholder="$t('process.userName')"
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -7,10 +7,13 @@
|
||||||
:model="dataForm"
|
:model="dataForm"
|
||||||
@keyup.enter.native="getDataList()"
|
@keyup.enter.native="getDataList()"
|
||||||
>
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<span>{{ $t('process.userName') + ':'}}</span>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.processDefinitionId"
|
v-model="dataForm.userName"
|
||||||
:placeholder="$t('process.name')"
|
:placeholder="$t('process.userName')"
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -7,10 +7,13 @@
|
||||||
:model="dataForm"
|
:model="dataForm"
|
||||||
@keyup.enter.native="getDataList()"
|
@keyup.enter.native="getDataList()"
|
||||||
>
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<span>{{ $t('process.userName') + ':'}}</span>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.processDefinitionId"
|
v-model="dataForm.userName"
|
||||||
:placeholder="$t('process.name')"
|
:placeholder="$t('process.userName')"
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -318,6 +318,9 @@ export default {
|
||||||
onRemove (file, fileList) {
|
onRemove (file, fileList) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if (fileList.length == 0) {
|
if (fileList.length == 0) {
|
||||||
|
this.ruleForm.pic =null
|
||||||
|
this.fileList = []
|
||||||
|
this.picImg =''
|
||||||
this.checkImgSuccess = false // 检查图片是否加载成功
|
this.checkImgSuccess = false // 检查图片是否加载成功
|
||||||
// this.$refs.ruleForm.validate() //删除图片,重新触发校验
|
// this.$refs.ruleForm.validate() //删除图片,重新触发校验
|
||||||
}
|
}
|
||||||
|
@ -358,7 +361,7 @@ export default {
|
||||||
this.$http.get(`/meeting/${row.id}`).then(({ data: res }) => {
|
this.$http.get(`/meeting/${row.id}`).then(({ data: res }) => {
|
||||||
this.dialogFormVisible = true
|
this.dialogFormVisible = true
|
||||||
this.ruleForm = res.data
|
this.ruleForm = res.data
|
||||||
if (res.data.pic != null) {
|
if (res.data.pic != null && res.data.pic != '') {
|
||||||
// let imgUrl = { name: res.data.name, url: res.data.pic }
|
// let imgUrl = { name: res.data.name, url: res.data.pic }
|
||||||
// this.fileList.push(imgUrl)
|
// this.fileList.push(imgUrl)
|
||||||
this.picImg = res.data.pic
|
this.picImg = res.data.pic
|
||||||
|
|
|
@ -24,7 +24,16 @@
|
||||||
<span class="text" v-if="dataForm.content.applicationSystem">应用系统:<span>{{
|
<span class="text" v-if="dataForm.content.applicationSystem">应用系统:<span>{{
|
||||||
dataForm.content.applicationSystem || '--'
|
dataForm.content.applicationSystem || '--'
|
||||||
}}</span></span>
|
}}</span></span>
|
||||||
|
<template v-if="version == 'xihaian'">
|
||||||
|
<span class="text" v-if="version == 'xihaian'">申请期限:<span>
|
||||||
|
{{
|
||||||
|
dataForm.content.expireDate || '--'}}</span></span>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
<span class="text"></span>
|
<span class="text"></span>
|
||||||
|
</template>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span v-if="dataForm.content.applicationSceneStr">应用场景:<span>
|
<span v-if="dataForm.content.applicationSceneStr">应用场景:<span>
|
||||||
|
@ -35,11 +44,6 @@
|
||||||
需求依据:<span>
|
需求依据:<span>
|
||||||
{{ dataForm.content.applicationBackground || '--' }}</span></span>
|
{{ dataForm.content.applicationBackground || '--' }}</span></span>
|
||||||
</p>
|
</p>
|
||||||
<!-- <p>
|
|
||||||
<div>
|
|
||||||
<el-button type="primary" v-if="dataForm.content.attachment" size="small" @click="download(dataForm.content)">附件下载</el-button>
|
|
||||||
</div>
|
|
||||||
</p> -->
|
|
||||||
<p>
|
<p>
|
||||||
<div v-if="version == 'xihaian'">
|
<div v-if="version == 'xihaian'">
|
||||||
<el-button type="primary" size="small" @click="download(dataForm.content)">附件下载</el-button>
|
<el-button type="primary" size="small" @click="download(dataForm.content)">附件下载</el-button>
|
||||||
|
|
|
@ -26,7 +26,7 @@ js:
|
||||||
:placeholder="'请选择' + name">
|
:placeholder="'请选择' + name">
|
||||||
<el-option
|
<el-option
|
||||||
:value="itemSelect.dictLabel"
|
:value="itemSelect.dictLabel"
|
||||||
v-for="(itemSelect, indexSelect) in options"
|
v-for="(itemSelect, indexSelect) in optionsCopy"
|
||||||
:key="indexSelect">
|
:key="indexSelect">
|
||||||
{{ itemSelect.dictLabel }}
|
{{ itemSelect.dictLabel }}
|
||||||
</el-option>
|
</el-option>
|
||||||
|
@ -38,9 +38,9 @@ js:
|
||||||
filterable
|
filterable
|
||||||
placeholder="请输入关键词"
|
placeholder="请输入关键词"
|
||||||
@change="changeIiem(name,data.note1)"
|
@change="changeIiem(name,data.note1)"
|
||||||
:loading="loading">
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(itemSelect) in options"
|
v-for="(itemSelect) in optionsCopy"
|
||||||
:key="itemSelect.id"
|
:key="itemSelect.id"
|
||||||
:label="itemSelect.name"
|
:label="itemSelect.name"
|
||||||
:value="itemSelect.id">
|
:value="itemSelect.id">
|
||||||
|
@ -56,7 +56,7 @@ js:
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:value="itemSelect.dictLabel"
|
:value="itemSelect.dictLabel"
|
||||||
v-for="(itemSelect, indexSelect) in options"
|
v-for="(itemSelect, indexSelect) in optionsCopy"
|
||||||
:key="indexSelect">
|
:key="indexSelect">
|
||||||
{{ itemSelect.dictLabel }}
|
{{ itemSelect.dictLabel }}
|
||||||
</el-option>
|
</el-option>
|
||||||
|
@ -66,7 +66,7 @@ js:
|
||||||
v-else-if="type === 'checkBox'"
|
v-else-if="type === 'checkBox'"
|
||||||
>
|
>
|
||||||
<el-checkbox-group v-model="valueCheckBox" @change='chekBoxChange'>
|
<el-checkbox-group v-model="valueCheckBox" @change='chekBoxChange'>
|
||||||
<el-checkbox-button v-for="val in options" :label="val.dictLabel" :key="val.dictLabel">{{val.dictLabel}}</el-checkbox-button>
|
<el-checkbox-button v-for="val in optionsCopy" :label="val.dictLabel" :key="val.dictLabel">{{val.dictLabel}}</el-checkbox-button>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</div>
|
</div>
|
||||||
<!-- 不可点的input框 -->
|
<!-- 不可点的input框 -->
|
||||||
|
@ -86,7 +86,6 @@ js:
|
||||||
<el-date-picker v-model="data.note1" type="date" :placeholder="'选择' + name" value-format="yyyy-MM-dd">
|
<el-date-picker v-model="data.note1" type="date" :placeholder="'选择' + name" value-format="yyyy-MM-dd">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -97,7 +96,7 @@ export default {
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
type: String,
|
type: String,
|
||||||
data: Array,
|
data: Object,
|
||||||
name: String,
|
name: String,
|
||||||
value: String,
|
value: String,
|
||||||
changeField: Array,
|
changeField: Array,
|
||||||
|
@ -108,6 +107,7 @@ export default {
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
optionsCopy:[],
|
||||||
// 多选放数据的数组
|
// 多选放数据的数组
|
||||||
valueCheckBox: [],
|
valueCheckBox: [],
|
||||||
// 单选数据
|
// 单选数据
|
||||||
|
@ -134,7 +134,7 @@ export default {
|
||||||
res.data.list.forEach((element) => {
|
res.data.list.forEach((element) => {
|
||||||
dataList.push(element)
|
dataList.push(element)
|
||||||
})
|
})
|
||||||
this.options = dataList
|
this.optionsCopy = dataList
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
} else if (this.data.name === '归属部门' || this.data.name === '所属产品线') {
|
} else if (this.data.name === '归属部门' || this.data.name === '所属产品线') {
|
||||||
|
@ -143,10 +143,9 @@ export default {
|
||||||
res.data.data.forEach((element) => {
|
res.data.data.forEach((element) => {
|
||||||
dataList.push(element)
|
dataList.push(element)
|
||||||
})
|
})
|
||||||
this.options = dataList
|
this.optionsCopy = dataList
|
||||||
if (!this.data.note1) {
|
if (!this.data.note1) {
|
||||||
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||||
console.log(res.data)
|
|
||||||
this.data.note1 = res.data.deptId
|
this.data.note1 = res.data.deptId
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -160,7 +159,6 @@ export default {
|
||||||
// this.options = dataList
|
// this.options = dataList
|
||||||
if (this.data.note1 == null) {
|
if (this.data.note1 == null) {
|
||||||
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||||
console.log(res.data)
|
|
||||||
this.data.note1 = res.data.realName || ''
|
this.data.note1 = res.data.realName || ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -174,11 +172,12 @@ export default {
|
||||||
// this.options = dataList
|
// this.options = dataList
|
||||||
if (this.data.note1 == null) {
|
if (this.data.note1 == null) {
|
||||||
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||||
console.log(res.data)
|
|
||||||
this.data.note1 = res.data.mobile || ''
|
this.data.note1 = res.data.mobile || ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// })
|
// })
|
||||||
|
}else{
|
||||||
|
this.optionsCopy=this.options
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
chekBoxChange (list) {
|
chekBoxChange (list) {
|
||||||
|
@ -200,7 +199,6 @@ export default {
|
||||||
},
|
},
|
||||||
showTypeClick (e) {
|
showTypeClick (e) {
|
||||||
this.showType = e
|
this.showType = e
|
||||||
console.log(e)
|
|
||||||
this.$emit('show-type', this.showType)
|
this.$emit('show-type', this.showType)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-07-08 09:54:50
|
* @Date: 2022-07-08 09:54:50
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: Light
|
||||||
* @LastEditTime: 2022-07-28 20:09:53
|
* @LastEditTime: 2022-12-20 10:42:37
|
||||||
* @Description: 多条数据特殊处理
|
* @Description: 多条数据特殊处理
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -19,16 +19,15 @@
|
||||||
<span>{{ attr.name }}</span>
|
<span>{{ attr.name }}</span>
|
||||||
<span v-if="attr.type === 'image'">
|
<span v-if="attr.type === 'image'">
|
||||||
<!-- <a-image :width="85" :height="60" :src="val.img" /> -->
|
<!-- <a-image :width="85" :height="60" :src="val.img" /> -->
|
||||||
<el-image
|
<el-image style="width: 85px; height: 60px" :src="val.img" :preview-src-list="[val.img]">
|
||||||
style="width: 85px; height: 60px"
|
|
||||||
:src="val.img"
|
|
||||||
:preview-src-list="[val.img]">
|
|
||||||
</el-image>
|
</el-image>
|
||||||
</span>
|
</span>
|
||||||
<span v-else>{{ val[attr.field] + (attr.company || '') }}</span>
|
<span v-else>{{ val[attr.field] + (attr.company || '') }}</span>
|
||||||
</p>
|
</p>
|
||||||
<div class="del">
|
<div class="del">
|
||||||
<i class="delImg" @click="del( index)"></i>
|
<i class="updateImg" @click="update(configure.name, index)"></i>
|
||||||
|
<div @click="update(configure.name, index)" style="margin-right:10px;">修改</div>
|
||||||
|
<i class="delImg" @click="del(configure.name, index)"></i>
|
||||||
<div @click="del(configure.name, index)">删除</div>
|
<div @click="del(configure.name, index)">删除</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -39,11 +38,7 @@
|
||||||
<a-input v-model:value="val.note1" ::maxlength="24" :placeholder="'请填写' + val.name + ',不超过24个字符'"
|
<a-input v-model:value="val.note1" ::maxlength="24" :placeholder="'请填写' + val.name + ',不超过24个字符'"
|
||||||
v-if="val.type == 'input'" />
|
v-if="val.type == 'input'" />
|
||||||
<template v-if="val.type == 'input2'">
|
<template v-if="val.type == 'input2'">
|
||||||
<a-input
|
<a-input v-model:value="val.note1" :placeholder="'请填写' + val.name" style="width: 570px;" />
|
||||||
v-model:value="val.note1"
|
|
||||||
:placeholder="'请填写' + val.name"
|
|
||||||
style="width: 570px;"
|
|
||||||
/>
|
|
||||||
<span style="width: 2.5rem; padding-left: 0.1rem">
|
<span style="width: 2.5rem; padding-left: 0.1rem">
|
||||||
{{
|
{{
|
||||||
numType == '一次性买断'
|
numType == '一次性买断'
|
||||||
|
@ -62,10 +57,11 @@
|
||||||
v-else-if="val.type == 'textArea'" />
|
v-else-if="val.type == 'textArea'" />
|
||||||
<a-input-number v-model:value="val.note1" :min="0" :max="9999" :step="0.01" string-mode
|
<a-input-number v-model:value="val.note1" :min="0" :max="9999" :step="0.01" string-mode
|
||||||
:placeholder="'请填写' + val.name" v-else-if="val.type == 'number'" />
|
:placeholder="'请填写' + val.name" v-else-if="val.type == 'number'" />
|
||||||
<a-radio-group v-model:value="val.note1" :options="val.options" v-else-if="val.type == 'radio'" @change="radioChange"/>
|
<a-radio-group v-model:value="val.note1" :options="val.options" v-else-if="val.type == 'radio'"
|
||||||
|
@change="radioChange" />
|
||||||
<!-- <upload :key="showKey" type="图片" btnName="上传图片" :maxCount="1" :data="val" :list="[]" tip="支持图片类型,大小不超过100M"
|
<!-- <upload :key="showKey" type="图片" btnName="上传图片" :maxCount="1" :data="val" :list="[]" tip="支持图片类型,大小不超过100M"
|
||||||
v-else-if="val.type == 'image'"></upload> -->
|
v-else-if="val.type == 'image'"></upload> -->
|
||||||
<upload :key="showKey" :child='val' limit='1' accept='.jpg,.png' v-else-if="val.type == 'image'"></upload>
|
<upload :key="showKey" :child='val' :limit=limit accept='.jpg,.png' v-else-if="val.type == 'image'"></upload>
|
||||||
</div>
|
</div>
|
||||||
<div class="submit">
|
<div class="submit">
|
||||||
<a-button type="primary" @click="add(configure.name)">添加更多</a-button>
|
<a-button type="primary" @click="add(configure.name)">添加更多</a-button>
|
||||||
|
@ -74,6 +70,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import { deepClone } from '@/utils/form-generator'
|
||||||
import upload from '@/views/modules/ability/upload.vue'
|
import upload from '@/views/modules/ability/upload.vue'
|
||||||
// import upload from '@/views/modules/components/upload'
|
// import upload from '@/views/modules/components/upload'
|
||||||
export default {
|
export default {
|
||||||
|
@ -85,8 +82,37 @@ export default {
|
||||||
configure: Object,
|
configure: Object,
|
||||||
showData: Object
|
showData: Object
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
configure: {
|
||||||
|
handler(newVal) {
|
||||||
|
let title = newVal.name
|
||||||
|
let list = newVal.list
|
||||||
|
let coloneData = deepClone(this.data)
|
||||||
|
if (list && list.length > 0) {
|
||||||
|
let obj = {}
|
||||||
|
list.forEach((item) => {
|
||||||
|
obj[item.field] = item.note1
|
||||||
|
})
|
||||||
|
if (obj.name || obj.question || obj.price) {
|
||||||
|
coloneData.push(obj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (coloneData.length > 0) {
|
||||||
|
this.$emit('changeInfoList', {
|
||||||
|
attrType: title,
|
||||||
|
attrValue: JSON.stringify(coloneData),
|
||||||
|
delFlag: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
limit: 1,
|
||||||
data: [],
|
data: [],
|
||||||
showKey: 0,
|
showKey: 0,
|
||||||
numType: '一次性买断'
|
numType: '一次性买断'
|
||||||
|
@ -94,7 +120,6 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
add(title, addFlag, submitFlag) {
|
add(title, addFlag, submitFlag) {
|
||||||
console.log(title, addFlag, submitFlag)
|
|
||||||
const list = this.configure.list
|
const list = this.configure.list
|
||||||
let flag = true
|
let flag = true
|
||||||
list.forEach((item) => {
|
list.forEach((item) => {
|
||||||
|
@ -171,13 +196,24 @@ export default {
|
||||||
delFlag: 0
|
delFlag: 0
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
update(title, index) {
|
||||||
|
const obj = this.data[index]
|
||||||
|
this.data.splice(index, 1)
|
||||||
|
const str = this.data.length > 0 ? JSON.stringify(this.data) : ''
|
||||||
|
this.$emit('changeInfoList', {
|
||||||
|
attrType: title,
|
||||||
|
attrValue: str,
|
||||||
|
delFlag: 0
|
||||||
|
})
|
||||||
|
this.configure.list.map(val => {
|
||||||
|
val.note1 = obj[val.field]
|
||||||
|
})
|
||||||
|
},
|
||||||
radioChange(e) {
|
radioChange(e) {
|
||||||
console.log(e, 'wewewe')
|
|
||||||
this.numType = e.target.value
|
this.numType = e.target.value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
console.log('特殊处理=============>', this.showData)
|
|
||||||
if (this.configure.name === '计费标准信息' || this.configure.name === '常见问题') {
|
if (this.configure.name === '计费标准信息' || this.configure.name === '常见问题') {
|
||||||
if (this.showData.children[0].note1) {
|
if (this.showData.children[0].note1) {
|
||||||
this.data = JSON.parse(this.showData.children[0].note1)
|
this.data = JSON.parse(this.showData.children[0].note1)
|
||||||
|
@ -214,6 +250,7 @@ export default {
|
||||||
.bottom {
|
.bottom {
|
||||||
margin-top: 25px;
|
margin-top: 25px;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
|
|
||||||
.items {
|
.items {
|
||||||
background: #fafafa;
|
background: #fafafa;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
@ -242,12 +279,22 @@ export default {
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
.updateImg {
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
width: 16px;
|
||||||
|
height: 18px;
|
||||||
|
background: url("~@/assets/img/putOnTheShelf/update.png") no-repeat;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
.delImg {
|
.delImg {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
background: url(~@/assets/img/putOnTheShelf/del.png) no-repeat;
|
background: url("~@/assets/img/putOnTheShelf/del.png") no-repeat;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,6 +363,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-image__preview {
|
::v-deep .el-image__preview {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -371,15 +419,18 @@ export default {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .ant-input-number {
|
::v-deep .ant-input-number {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .ant-transfer-list-header-title {
|
::v-deep .ant-transfer-list-header-title {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
height: 100px;
|
height: 100px;
|
||||||
resize: none;
|
resize: none;
|
||||||
|
|
|
@ -1,13 +1,28 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-07-08 09:48:52
|
* @Date: 2022-07-08 09:48:52
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: Light
|
||||||
* @LastEditTime: 2022-07-25 15:57:25
|
* @LastEditTime: 2022-12-29 09:34:56
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="put-on-the-shelf">
|
<div class="put-on-the-shelf">
|
||||||
<div v-for="parent in putOnTheShelfList" :key='parent.id'>
|
<div class="left">
|
||||||
|
<div class="item" v-for="(parent,index) in putOnTheShelfList" :key="parent.id+'left'">
|
||||||
|
<div class="main" @click="selectItem(parent.name)" :class="selectName===parent.name?'select':''">
|
||||||
|
<div class="circular-box">
|
||||||
|
<div class="circular"></div>
|
||||||
|
</div>
|
||||||
|
<div class="name">{{ parent.name }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom" v-if="index !== putOnTheShelfList.length-1"></div>
|
||||||
|
</div>
|
||||||
|
<!-- <a-anchor @change="handlerAnchor" :affix="true" :get-current-anchor="'#'+putOnTheShelfList[0].name">
|
||||||
|
<a-anchor-link v-for="parent in putOnTheShelfList" :key="parent.id+'left'" :href="'#'+parent.name" :title="parent.name"/>
|
||||||
|
</a-anchor> -->
|
||||||
|
</div>
|
||||||
|
<div class="right" id="putOnTheShelf">
|
||||||
|
<div v-for="parent in showList" :key='parent.id' :id="parent.name">
|
||||||
<div v-for='child in parent.children' :key='child.id'>
|
<div v-for='child in parent.children' :key='child.id'>
|
||||||
<template v-if='judgmentType.filter(item => item.name==child.name).length === 0'>
|
<template v-if='judgmentType.filter(item => item.name==child.name).length === 0'>
|
||||||
<div class="top">{{child.name}}</div>
|
<div class="top">{{child.name}}</div>
|
||||||
|
@ -59,6 +74,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import inputSelectCheckbox from './components/inputSelectCheckbox'
|
import inputSelectCheckbox from './components/inputSelectCheckbox'
|
||||||
|
@ -80,6 +96,8 @@ export default {
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
selectName: '',
|
||||||
|
showList: [],
|
||||||
changeField: [],
|
changeField: [],
|
||||||
judgmentType: [
|
judgmentType: [
|
||||||
{
|
{
|
||||||
|
@ -193,6 +211,20 @@ export default {
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.defaultContent()
|
this.defaultContent()
|
||||||
|
// this.showList = this.putOnTheShelfList[0]
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
putOnTheShelfList: {
|
||||||
|
handler (newVal, oldVal) {
|
||||||
|
if (this.showList.length === 0 && newVal.length > 0) {
|
||||||
|
this.showList = [this.putOnTheShelfList[0]]
|
||||||
|
this.selectName = this.showList[0].name
|
||||||
|
console.log('初始化', this.$router, this.$route)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 提交
|
// 提交
|
||||||
|
@ -234,22 +266,77 @@ export default {
|
||||||
},
|
},
|
||||||
showType (data) {
|
showType (data) {
|
||||||
this.showTypeName = data
|
this.showTypeName = data
|
||||||
console.log(data, this.showTypeName, '传过来的showType')
|
},
|
||||||
|
selectItem (str) {
|
||||||
|
if (str) {
|
||||||
|
this.selectName = str
|
||||||
|
this.showList = this.putOnTheShelfList.filter(val => val.name === str)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
console.log(document.querySelector('#putOnTheShelf'))
|
||||||
|
document.querySelector('#putOnTheShelf').scrollTop = 0
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
.put-on-the-shelf {
|
.put-on-the-shelf {
|
||||||
height: 500px;
|
// height: 500px;
|
||||||
|
display: flex;
|
||||||
padding: 0 50px;
|
padding: 0 50px;
|
||||||
|
.left {
|
||||||
|
margin-right: 50px;
|
||||||
|
.main{
|
||||||
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.circular-box{
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
border-radius: 9px;
|
||||||
|
border: 1px rgba($color: #0058e1, $alpha: 0) solid;
|
||||||
|
margin-right: 20px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
.circular{
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border-radius: 6px;
|
||||||
|
border: 1px #0058e1 solid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.select{
|
||||||
|
|
||||||
|
.circular-box{
|
||||||
|
border: 1px #0058e1 solid;
|
||||||
|
.circular{
|
||||||
|
background: #0058e1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bottom{
|
||||||
|
height: 46px;
|
||||||
|
border-left: #0058e1 1px solid;
|
||||||
|
margin: -4px 0 -4px 9px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
height: 500px;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
.put-on-the-shelf::-webkit-scrollbar {
|
.right::-webkit-scrollbar {
|
||||||
width: 0;
|
width: 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// .put-on-the-shelf::-webkit-scrollbar {
|
||||||
|
// width: 0;
|
||||||
|
// }
|
||||||
|
|
||||||
.top {
|
.top {
|
||||||
|
width: 800px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -89,9 +89,6 @@ export default {
|
||||||
},
|
},
|
||||||
(res) => {
|
(res) => {
|
||||||
|
|
||||||
// if (res.data.code !== 0) {
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
if (res.data.data && res.data.data.length > 0) {
|
if (res.data.data && res.data.data.length > 0) {
|
||||||
this.data = res.data.data[0].values
|
this.data = res.data.data[0].values
|
||||||
this.data.map((item) => {
|
this.data.map((item) => {
|
||||||
|
@ -108,8 +105,8 @@ export default {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.trendChartData = {
|
this.trendChartData = {
|
||||||
xaxis: [],
|
xaxis: this.ydata,
|
||||||
ydata: []
|
ydata:this.xaxis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +115,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
(err) => {
|
(err) => {
|
||||||
console.log('err', err)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
|
@ -73,7 +73,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 部门申请
|
// 部门申请
|
||||||
resourceData: [],
|
resourceData: [],
|
||||||
resourceColor: ['#7b2cff', '#fd5151', , '#2ca1ff', '#0adbfa', '#febe13', '#65e5dd', '#f071ff', '#85f67a'],
|
resourceColor: ['#7b2cff', '#fd5151' , '#2ca1ff', '#0adbfa', '#febe13', '#65e5dd', '#f071ff', '#85f67a'],
|
||||||
// 部门申请
|
// 部门申请
|
||||||
applyData: [],
|
applyData: [],
|
||||||
applyColor: ['#5085f2', '#e75fc3', '#f87be2', '#f2719a', '#fca4bb', '#f59a8f', '#fdb301', '#57e7ec', '#cf9ef1'],
|
applyColor: ['#5085f2', '#e75fc3', '#f87be2', '#f2719a', '#fca4bb', '#f59a8f', '#fdb301', '#57e7ec', '#cf9ef1'],
|
||||||
|
|
4920
front/README.md
4920
front/README.md
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2020-07-07 16:03:23
|
* @Date: 2020-07-07 16:03:23
|
||||||
* @LastEditors: Light
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-12-08 13:42:49
|
* @LastEditTime: 2022-12-29 17:34:17
|
||||||
* @Description: 系统静态参数配置
|
* @Description: 系统静态参数配置
|
||||||
*/
|
*/
|
||||||
var _global = {}
|
var _global = {}
|
||||||
|
@ -68,7 +68,7 @@ var CONFIGITEM = {
|
||||||
// cameraUrl: '192.168.124.236:9537', // 远雄(不挂vpn可直接连)
|
// cameraUrl: '192.168.124.236:9537', // 远雄(不挂vpn可直接连)
|
||||||
},
|
},
|
||||||
backUrl: 'http://10.134.135.9:9797',
|
backUrl: 'http://10.134.135.9:9797',
|
||||||
apiURL: 'http://10.134.135.9:8888/renren-admin',
|
apiURL: 'http://10.134.135.92:8888/renren-admin',
|
||||||
// apiURL: 'http://192.168.124.233:8888/ucs-admin',
|
// apiURL: 'http://192.168.124.233:8888/ucs-admin',
|
||||||
// previewUrl: 'http://10.134.135.9:9796/',
|
// previewUrl: 'http://10.134.135.9:9796/',
|
||||||
// websocketURL: '10.134.135.9:8888/ucs-admin', // 正式环境
|
// websocketURL: '10.134.135.9:8888/ucs-admin', // 正式环境
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.ant-message {
|
.ant-message {
|
||||||
z-index: 10010!important;
|
z-index: 10012!important;
|
||||||
}
|
}
|
||||||
.ant-modal-wrap{
|
.ant-modal-wrap{
|
||||||
z-index: 10010!important;
|
z-index: 10010!important;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-05-06 11:12:0011-18 19:07:53
|
* @Date: 2022-05-06 11:12:00
|
||||||
* @LastEditors: Light
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-12-16 09:41:27
|
* @LastEditTime: 2022-12-29 17:34:24
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -22,8 +22,9 @@
|
||||||
import { onBeforeUnmount, onMounted, watch, ref } from 'vue'
|
import { onBeforeUnmount, onMounted, watch, ref } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
|
import { useStore } from 'vuex'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
const store = useStore()
|
||||||
const locale = zhCN
|
const locale = zhCN
|
||||||
const token = Cookies.get('ucsToken')
|
const token = Cookies.get('ucsToken')
|
||||||
const whoShow1 = ref(whoShow)
|
const whoShow1 = ref(whoShow)
|
||||||
|
@ -88,10 +89,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const waterMarkInit = (newValue) => {
|
const waterMarkInit = (newValue) => {
|
||||||
getUser().then((res) => {
|
// getUser().then((res) => {
|
||||||
if (res.data.code == 0) {
|
// if (res.data.code == 0) {
|
||||||
realName = res.data.data.realName
|
// realName = res.data.data.realName
|
||||||
}
|
// }
|
||||||
|
realName = store.getters['user/realName']
|
||||||
if (realName.length > 13) {
|
if (realName.length > 13) {
|
||||||
onWholeWaterMark(
|
onWholeWaterMark(
|
||||||
[realName, moment().format('YYYY-MM-DD')],
|
[realName, moment().format('YYYY-MM-DD')],
|
||||||
|
@ -130,7 +132,7 @@
|
||||||
changeWaterMark(newValue)
|
changeWaterMark(newValue)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
// })
|
||||||
}
|
}
|
||||||
watch(
|
watch(
|
||||||
() => router.currentRoute.value.path,
|
() => router.currentRoute.value.path,
|
||||||
|
@ -142,16 +144,16 @@
|
||||||
realName,
|
realName,
|
||||||
realName.charCodeAt()
|
realName.charCodeAt()
|
||||||
)
|
)
|
||||||
// 如果刚登陆 初始化水印
|
// // 如果刚登陆 初始化水印
|
||||||
if (newValue == '/home') {
|
// if (newValue == '/home') {
|
||||||
waterMarkInit(newValue)
|
// waterMarkInit(newValue)
|
||||||
}
|
// }
|
||||||
changeWaterMark(newValue)
|
changeWaterMark(newValue)
|
||||||
},
|
},
|
||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
)
|
)
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// waterMarkInit()
|
waterMarkInit()
|
||||||
})
|
})
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
// 4.卸载前, 关闭链接
|
// 4.卸载前, 关闭链接
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 17:48:03
|
* @Date: 2022-03-29 17:48:03
|
||||||
* @LastEditors: Light
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-10-25 09:37:05
|
* @LastEditTime: 2022-12-29 14:50:51
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
*/
|
*/
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
@ -62,3 +62,11 @@ export function register() {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取菜单
|
||||||
|
export function getNavList(params) {
|
||||||
|
return request({
|
||||||
|
url: '/sys/menu/nav',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 523 B |
|
@ -2,12 +2,10 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 17:48:03
|
* @Date: 2022-03-29 17:48:03
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-06 15:00:49
|
* @LastEditTime: 2022-12-29 10:30:38
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
*/
|
*/
|
||||||
import {
|
import { createApp } from 'vue'
|
||||||
createApp
|
|
||||||
} from 'vue'
|
|
||||||
import Antd from 'ant-design-vue'
|
import Antd from 'ant-design-vue'
|
||||||
import mitt from 'mitt'
|
import mitt from 'mitt'
|
||||||
import App from './App'
|
import App from './App'
|
||||||
|
@ -17,8 +15,8 @@ import store from './store'
|
||||||
import 'ant-design-vue/dist/antd.css'
|
import 'ant-design-vue/dist/antd.css'
|
||||||
import '@/vab'
|
import '@/vab'
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
import * as moment from "moment"
|
import * as moment from 'moment'
|
||||||
import "dayjs/locale/zh-cn";
|
import 'dayjs/locale/zh-cn'
|
||||||
import vue3videoPlay from 'vue3-video-play-emiyagm' // 引入组件
|
import vue3videoPlay from 'vue3-video-play-emiyagm' // 引入组件
|
||||||
import 'vue3-video-play-emiyagm/dist/style.css' // 引入css
|
import 'vue3-video-play-emiyagm/dist/style.css' // 引入css
|
||||||
import ElementPlus from 'element-plus'
|
import ElementPlus from 'element-plus'
|
||||||
|
@ -58,7 +56,6 @@ router.beforeEach((to, from, next) => {
|
||||||
next()
|
next()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 判断浏览器
|
// 判断浏览器
|
||||||
// function judgeAgent() {
|
// function judgeAgent() {
|
||||||
// let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
// let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
||||||
|
|
|
@ -21,6 +21,7 @@ const state = () => ({
|
||||||
avatar: '',
|
avatar: '',
|
||||||
role: 0, // 用户管理员权限
|
role: 0, // 用户管理员权限
|
||||||
roleList: [], // 用户管理员权限
|
roleList: [], // 用户管理员权限
|
||||||
|
navList: [],
|
||||||
})
|
})
|
||||||
const getters = {
|
const getters = {
|
||||||
accessToken: (state) => state.accessToken,
|
accessToken: (state) => state.accessToken,
|
||||||
|
@ -32,6 +33,7 @@ const getters = {
|
||||||
userId: (state) => state.userId,
|
userId: (state) => state.userId,
|
||||||
deptName: (state) => state.deptName,
|
deptName: (state) => state.deptName,
|
||||||
deptId: (state) => state.deptId,
|
deptId: (state) => state.deptId,
|
||||||
|
navList: (state) => state.navList,
|
||||||
}
|
}
|
||||||
const mutations = {
|
const mutations = {
|
||||||
/**
|
/**
|
||||||
|
@ -77,6 +79,11 @@ const mutations = {
|
||||||
setDeptName(state, name) {
|
setDeptName(state, name) {
|
||||||
state.deptName = name
|
state.deptName = name
|
||||||
},
|
},
|
||||||
|
// 设置门户导航
|
||||||
|
setNavList(state, nav) {
|
||||||
|
debugger
|
||||||
|
state.navList = nav
|
||||||
|
},
|
||||||
setDeptId(state, name) {
|
setDeptId(state, name) {
|
||||||
state.deptId = name
|
state.deptId = name
|
||||||
},
|
},
|
||||||
|
|
|
@ -61,6 +61,7 @@ const instance = axios.create({
|
||||||
timeout: requestTimeout,
|
timeout: requestTimeout,
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': contentType,
|
'Content-Type': contentType,
|
||||||
|
'Accept-Language': 'zh-CN',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -138,12 +138,20 @@
|
||||||
//查看详情方法
|
//查看详情方法
|
||||||
function viewDetails(id) {
|
function viewDetails(id) {
|
||||||
console.log('id=========>', id)
|
console.log('id=========>', id)
|
||||||
router.push({
|
// router.push({
|
||||||
path: '/details',
|
// path: '/details',
|
||||||
|
// query: {
|
||||||
|
// id: id,
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
const detailPage = router.resolve({
|
||||||
|
path: '/details', // 跳转的页面路由
|
||||||
query: {
|
query: {
|
||||||
id: id,
|
id: id,
|
||||||
|
hiddenBackFlag: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
window.open(detailPage.href, '_blank')
|
||||||
}
|
}
|
||||||
// 获取榜单数据
|
// 获取榜单数据
|
||||||
const praiseList = ref([])
|
const praiseList = ref([])
|
||||||
|
|
|
@ -59,12 +59,20 @@
|
||||||
//查看详情方法
|
//查看详情方法
|
||||||
function viewDetails(id) {
|
function viewDetails(id) {
|
||||||
console.log('id=========>', id)
|
console.log('id=========>', id)
|
||||||
router.push({
|
// router.push({
|
||||||
path: '/demandDetails',
|
// path: '/demandDetails',
|
||||||
|
// query: {
|
||||||
|
// id: id,
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
const detailPage = router.resolve({
|
||||||
|
path: '/demandDetails', // 跳转的页面路由
|
||||||
query: {
|
query: {
|
||||||
id: id,
|
id: id,
|
||||||
|
// hiddenBackFlag: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
window.open(detailPage.href, '_blank')
|
||||||
}
|
}
|
||||||
function jumpPage() {
|
function jumpPage() {
|
||||||
router.push({
|
router.push({
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-17 14:11:08
|
* @Date: 2022-06-17 14:11:08
|
||||||
* @LastEditors: Light
|
* @LastEditors: Light
|
||||||
* @LastEditTime: 2022-10-26 14:57:25
|
* @LastEditTime: 2022-12-20 11:39:05
|
||||||
* @Description: 上架
|
* @Description: 上架
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -50,17 +50,31 @@
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<!-- <span>{{ title.name }}-{{ index + 1 }}</span> -->
|
<!-- <span>{{ title.name }}-{{ index + 1 }}</span> -->
|
||||||
|
<div class="del">
|
||||||
|
<i class="updateImg" @click="update(title.name, index)"></i>
|
||||||
|
<div
|
||||||
|
@click="update(title.name, index)"
|
||||||
|
style="margin-right: 10px"
|
||||||
|
>
|
||||||
|
修改
|
||||||
|
</div>
|
||||||
<a-popconfirm
|
<a-popconfirm
|
||||||
:title="'是否删除该条' + title.name + '?'"
|
:title="'是否删除该条' + title.name + '?'"
|
||||||
ok-text="是"
|
ok-text="是"
|
||||||
cancel-text="否"
|
cancel-text="否"
|
||||||
@confirm="del(title.name, index)"
|
@confirm="del(title.name, index)"
|
||||||
>
|
>
|
||||||
<div class="del">
|
|
||||||
<i class="delImg"></i>
|
<i class="delImg"></i>
|
||||||
<div>删除</div>
|
|
||||||
</div>
|
|
||||||
</a-popconfirm>
|
</a-popconfirm>
|
||||||
|
<a-popconfirm
|
||||||
|
:title="'是否删除该条' + title.name + '?'"
|
||||||
|
ok-text="是"
|
||||||
|
cancel-text="否"
|
||||||
|
@confirm="del(title.name, index)"
|
||||||
|
>
|
||||||
|
<div>删除</div>
|
||||||
|
</a-popconfirm>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="form"
|
class="form"
|
||||||
|
@ -69,7 +83,6 @@
|
||||||
)[0].list"
|
)[0].list"
|
||||||
:key="'key2' + attr.name + index2"
|
:key="'key2' + attr.name + index2"
|
||||||
>
|
>
|
||||||
|
|
||||||
<span>{{ attr.name }}:</span>
|
<span>{{ attr.name }}:</span>
|
||||||
<a-input
|
<a-input
|
||||||
style="width: 280px"
|
style="width: 280px"
|
||||||
|
@ -95,7 +108,6 @@
|
||||||
v-model:value="val[attr.field]"
|
v-model:value="val[attr.field]"
|
||||||
:maxlength="1000"
|
:maxlength="1000"
|
||||||
:placeholder="'请填写' + attr.name + ',不超过1000个字符'"
|
:placeholder="'请填写' + attr.name + ',不超过1000个字符'"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<!-- <a-textarea
|
<!-- <a-textarea
|
||||||
|
@ -113,7 +125,15 @@
|
||||||
<a-image :width="85" :height="60" :src="val.img" />
|
<a-image :width="85" :height="60" :src="val.img" />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top:24px;height:1px;border-top: 1px dashed #dddee1; width: 1240px;font-size: 18px;"></div>
|
<div
|
||||||
|
style="
|
||||||
|
margin-top: 24px;
|
||||||
|
height: 1px;
|
||||||
|
border-top: 1px dashed #dddee1;
|
||||||
|
width: 1240px;
|
||||||
|
font-size: 18px;
|
||||||
|
"
|
||||||
|
></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div style="font-size: 0.18rem; font-weight: 600border-top: 1px dashed grey; width: 1240px;font-size: 18px;">
|
<!-- <div style="font-size: 0.18rem; font-weight: 600border-top: 1px dashed grey; width: 1240px;font-size: 18px;">
|
||||||
|
@ -162,7 +182,6 @@
|
||||||
v-model:value="val.note1"
|
v-model:value="val.note1"
|
||||||
:maxlength="1000"
|
:maxlength="1000"
|
||||||
:placeholder="'请填写' + val.name + ',不超过1000个字符'"
|
:placeholder="'请填写' + val.name + ',不超过1000个字符'"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<!-- <a-textarea
|
<!-- <a-textarea
|
||||||
|
@ -217,11 +236,19 @@
|
||||||
v-else-if="val.type == 'image'"
|
v-else-if="val.type == 'image'"
|
||||||
></upload>
|
></upload>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top:24px;height:1px;border-top: 1px dashed #dddee1; width: 1240px;font-size: 18px;"></div>
|
<div
|
||||||
|
style="
|
||||||
|
margin-top: 24px;
|
||||||
|
height: 1px;
|
||||||
|
border-top: 1px dashed #dddee1;
|
||||||
|
width: 1240px;
|
||||||
|
font-size: 18px;
|
||||||
|
"
|
||||||
|
></div>
|
||||||
<div class="submit">
|
<div class="submit">
|
||||||
<a-button type="primary" @click="add(title.name)">
|
<a-button type="primary" @click="add(title.name)">
|
||||||
<img
|
<img
|
||||||
style="height: 12px; width: 12px;margin-top: -2px;"
|
style="height: 12px; width: 12px; margin-top: -2px"
|
||||||
src="../../../assets/home/zhengjia.png"
|
src="../../../assets/home/zhengjia.png"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
|
@ -261,14 +288,20 @@
|
||||||
<a-input
|
<a-input
|
||||||
:maxLength="1000"
|
:maxLength="1000"
|
||||||
v-model:value="item.note1"
|
v-model:value="item.note1"
|
||||||
:placeholder="'请输入' + placeHolderWords(item.name)+',单位为元'"
|
:placeholder="
|
||||||
|
'请输入' + placeHolderWords(item.name) + ',单位为元'
|
||||||
|
"
|
||||||
@change="changeIiem(item.name, item.note1)"
|
@change="changeIiem(item.name, item.note1)"
|
||||||
/>
|
/>
|
||||||
<span style="color:red"> (单位为元,*仅用于测算为部门节省资金)</span>
|
<span style="color: red">
|
||||||
|
(单位为元,*仅用于测算为部门节省资金)
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<a-input
|
<a-input
|
||||||
:maxLength="1000"
|
:maxLength="1000"
|
||||||
v-else-if="item.type == 'input' && item.name.indexOf('名称') == -1"
|
v-else-if="
|
||||||
|
item.type == 'input' && item.name.indexOf('名称') == -1
|
||||||
|
"
|
||||||
v-model:value="item.note1"
|
v-model:value="item.note1"
|
||||||
:placeholder="'请输入' + placeHolderWords(item.name)"
|
:placeholder="'请输入' + placeHolderWords(item.name)"
|
||||||
@change="changeIiem(item.name, item.note1)"
|
@change="changeIiem(item.name, item.note1)"
|
||||||
|
@ -416,7 +449,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<upload
|
<upload
|
||||||
v-else-if="item.type == 'video'"
|
v-else-if="item.type == 'video'"
|
||||||
type="视频"
|
type="视频"
|
||||||
|
@ -424,7 +456,7 @@
|
||||||
:maxCount="1"
|
:maxCount="1"
|
||||||
:data="item"
|
:data="item"
|
||||||
:list="props.videoList"
|
:list="props.videoList"
|
||||||
tip="支持视频类型,大小不超过100M"
|
tip="支持视频类型mp4、mp3、mpeg,大小不超过100M"
|
||||||
></upload>
|
></upload>
|
||||||
|
|
||||||
<!-- <a-button
|
<!-- <a-button
|
||||||
|
@ -970,6 +1002,20 @@ const del = (title, index) => {
|
||||||
delFlag: 0,
|
delFlag: 0,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const update = (title, index) => {
|
||||||
|
const obj = data.value[title][index]
|
||||||
|
data.value[title].splice(index, 1)
|
||||||
|
mybus.emit('chageDataFrom', {
|
||||||
|
attrType: title,
|
||||||
|
attrValue: JSON.stringify(data.value[title]),
|
||||||
|
delFlag: 0,
|
||||||
|
})
|
||||||
|
props.configure
|
||||||
|
.filter((item) => item.name === title)[0]
|
||||||
|
.list.map((val) => {
|
||||||
|
val.note1 = obj[val.field]
|
||||||
|
})
|
||||||
|
}
|
||||||
const ApplicationArea = (item, itemson) => {
|
const ApplicationArea = (item, itemson) => {
|
||||||
if (item.note2.indexOf(itemson.dictLabel) === -1) {
|
if (item.note2.indexOf(itemson.dictLabel) === -1) {
|
||||||
item.note2.push(itemson.dictLabel)
|
item.note2.push(itemson.dictLabel)
|
||||||
|
@ -977,7 +1023,10 @@ const ApplicationArea = (item, itemson) => {
|
||||||
item.note2.splice(item.note2.indexOf(itemson.dictLabel), 1)
|
item.note2.splice(item.note2.indexOf(itemson.dictLabel), 1)
|
||||||
}
|
}
|
||||||
// 多选判断是否为空
|
// 多选判断是否为空
|
||||||
if (item.note2.length !== 0 && changeField.value.indexOf('应用领域') == -1) {
|
if (
|
||||||
|
item.note2.length !== 0 &&
|
||||||
|
changeField.value.indexOf('应用领域') == -1
|
||||||
|
) {
|
||||||
changeField.value.push('应用领域')
|
changeField.value.push('应用领域')
|
||||||
} else if (item.note2.length == 0) {
|
} else if (item.note2.length == 0) {
|
||||||
if (changeField.value.indexOf('应用领域') > -1) {
|
if (changeField.value.indexOf('应用领域') > -1) {
|
||||||
|
@ -1347,7 +1396,7 @@ const applicationsOption = (input, option) => {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
span:first-child {
|
span:first-child {
|
||||||
width: 1.0rem;
|
width: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ant-input-textarea) {
|
:deep(.ant-input-textarea) {
|
||||||
|
@ -1402,7 +1451,7 @@ const applicationsOption = (input, option) => {
|
||||||
.ant-btn:active {
|
.ant-btn:active {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
color: #0558e1;
|
color: #0558e1;
|
||||||
opacity: 0.8
|
opacity: 0.8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1569,7 +1618,15 @@ const applicationsOption = (input, option) => {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 0.14rem;
|
font-size: 0.14rem;
|
||||||
margin-left: 0.2rem;
|
margin-left: 0.2rem;
|
||||||
|
.updateImg {
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
width: 16px;
|
||||||
|
height: 18px;
|
||||||
|
background: url('~@/assets/home/update.png') no-repeat;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
}
|
||||||
.delImg {
|
.delImg {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -1578,6 +1635,9 @@ const applicationsOption = (input, option) => {
|
||||||
background: url(~@/assets/home/sf_del.png) no-repeat;
|
background: url(~@/assets/home/sf_del.png) no-repeat;
|
||||||
margin-right: 0.05rem;
|
margin-right: 0.05rem;
|
||||||
}
|
}
|
||||||
|
& > span {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
|
@ -32,6 +32,10 @@
|
||||||
{{ val }}
|
{{ val }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="bottom1">
|
||||||
|
共{{total}}项
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-box">
|
<div class="item-box">
|
||||||
|
@ -64,6 +68,7 @@
|
||||||
const area = ref(null)
|
const area = ref(null)
|
||||||
const typeName = ref('全市')
|
const typeName = ref('全市')
|
||||||
const typeName2 = ref('全部')
|
const typeName2 = ref('全部')
|
||||||
|
const total = ref(0)
|
||||||
if (selectArea && selectArea !== '全部') {
|
if (selectArea && selectArea !== '全部') {
|
||||||
typeName2.value = selectArea
|
typeName2.value = selectArea
|
||||||
area.value = selectArea
|
area.value = selectArea
|
||||||
|
@ -131,6 +136,7 @@
|
||||||
if (res.data.data.total.length < 9) {
|
if (res.data.data.total.length < 9) {
|
||||||
dom.removeEventListener('scroll', viewMonitor, true)
|
dom.removeEventListener('scroll', viewMonitor, true)
|
||||||
}
|
}
|
||||||
|
total.value= res.data.data.total
|
||||||
// appList
|
// appList
|
||||||
res.data.data.appList.map((val) => {
|
res.data.data.appList.map((val) => {
|
||||||
if (!val.pic) {
|
if (!val.pic) {
|
||||||
|
@ -198,6 +204,12 @@
|
||||||
}
|
}
|
||||||
.application {
|
.application {
|
||||||
padding: 0 0.15rem;
|
padding: 0 0.15rem;
|
||||||
|
.bottom1 {
|
||||||
|
margin-top: 67px;
|
||||||
|
margin-left: 928px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 0.2rem;
|
||||||
|
}
|
||||||
.select {
|
.select {
|
||||||
margin: 0.1rem 0 0.1rem 0.2rem;
|
margin: 0.1rem 0 0.1rem 0.2rem;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -225,6 +237,7 @@
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom {
|
.bottom {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -388,7 +388,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const closeMain = () => {
|
const closeMain = () => {
|
||||||
window.history.go(-1)
|
const showKey = router.currentRoute.value.query.showKey
|
||||||
|
router.push({
|
||||||
|
path: '/demandCenter',
|
||||||
|
query: {
|
||||||
|
toShowKey:showKey
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// const formData = computed(() => store.getters['home/demandDetailsData'])
|
// const formData = computed(() => store.getters['home/demandDetailsData'])
|
||||||
|
|
|
@ -175,6 +175,7 @@ const showDetail = (item) => {
|
||||||
path: '/demandDetails',
|
path: '/demandDetails',
|
||||||
query: {
|
query: {
|
||||||
id: item.id,
|
id: item.id,
|
||||||
|
showKey:selectedKeys.value,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -186,6 +187,10 @@ const toView = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
const toShowKey = router.currentRoute.value.query.toShowKey
|
||||||
|
if(toShowKey){
|
||||||
|
selectedKeys.value=toShowKey
|
||||||
|
}
|
||||||
const params = {
|
const params = {
|
||||||
page: pageNum.value,
|
page: pageNum.value,
|
||||||
limit: pageSize.value,
|
limit: pageSize.value,
|
||||||
|
|
|
@ -188,6 +188,9 @@
|
||||||
// that.pausePlay(iWndIndex)
|
// that.pausePlay(iWndIndex)
|
||||||
if (!that.unStopable) {
|
if (!that.unStopable) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
that.videoDom = that.$refs.video333.querySelector('video') || {}
|
||||||
|
debugger
|
||||||
|
|
||||||
that.videoDom.pause()
|
that.videoDom.pause()
|
||||||
// that.exportCanvasAsPNG('12preview_playCanvas0', 'test')
|
// that.exportCanvasAsPNG('12preview_playCanvas0', 'test')
|
||||||
}, 0)
|
}, 0)
|
||||||
|
@ -234,7 +237,7 @@
|
||||||
},
|
},
|
||||||
(e) => {
|
(e) => {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
// message.error('错误代码:' + e)
|
message.error('网络繁忙,请稍后再试')
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
|
@ -92,9 +92,12 @@
|
||||||
<div class="bottom" @click="goToView()">查看更多</div>
|
<div class="bottom" @click="goToView()">查看更多</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<i class="img" @click="
|
<i
|
||||||
|
class="img"
|
||||||
|
@click="
|
||||||
jumpPage({ name: '个人中心', key: 'personalCenter' }, 'headerClick')
|
jumpPage({ name: '个人中心', key: 'personalCenter' }, 'headerClick')
|
||||||
"></i>
|
"
|
||||||
|
></i>
|
||||||
<a-tooltip placement="bottom">
|
<a-tooltip placement="bottom">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span>{{ user.realName }}</span>
|
<span>{{ user.realName }}</span>
|
||||||
|
@ -131,6 +134,7 @@
|
||||||
import { mynotice } from '@/api/home'
|
import { mynotice } from '@/api/home'
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import { getSgcTotal } from '@/api/home'
|
import { getSgcTotal } from '@/api/home'
|
||||||
|
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||||
|
@ -149,7 +153,13 @@
|
||||||
const select = ref(router.currentRoute.value.name)
|
const select = ref(router.currentRoute.value.name)
|
||||||
const mynoticeFlag = ref(false)
|
const mynoticeFlag = ref(false)
|
||||||
const mynoticeData = ref([])
|
const mynoticeData = ref([])
|
||||||
const navList = ref(navListManagement.navList)
|
const navList = ref([])
|
||||||
|
const asyncNav = store.getters['user/navList']
|
||||||
|
if (asyncNav.length > 0) {
|
||||||
|
navList.value = asyncNav
|
||||||
|
} else {
|
||||||
|
navList.value = navListManagement.navList
|
||||||
|
}
|
||||||
const targetRouter = ref('')
|
const targetRouter = ref('')
|
||||||
const backFlag = ref(false)
|
const backFlag = ref(false)
|
||||||
getUserInfo().then((res) => {
|
getUserInfo().then((res) => {
|
||||||
|
@ -165,6 +175,7 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log('navList------------>', navList)
|
console.log('navList------------>', navList)
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
@ -422,7 +433,6 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
mybus.on('changeMenuStyle', (data) => {
|
mybus.on('changeMenuStyle', (data) => {
|
||||||
|
|
||||||
targetRouter.value = data
|
targetRouter.value = data
|
||||||
if (data.path == '/algorithmCompare') {
|
if (data.path == '/algorithmCompare') {
|
||||||
jumpPage(
|
jumpPage(
|
||||||
|
|
|
@ -148,6 +148,7 @@
|
||||||
const btnClick = (index) => {
|
const btnClick = (index) => {
|
||||||
itemIndex.value = index
|
itemIndex.value = index
|
||||||
if (index === 2) {
|
if (index === 2) {
|
||||||
|
// 按标签搜索
|
||||||
if (chooseId.value !== '') {
|
if (chooseId.value !== '') {
|
||||||
let placeTypeCode = []
|
let placeTypeCode = []
|
||||||
placeTypeCode.push(chooseId.value)
|
placeTypeCode.push(chooseId.value)
|
||||||
|
@ -156,14 +157,18 @@
|
||||||
mybus.emit('clearLeftSelect')
|
mybus.emit('clearLeftSelect')
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// 按部门搜索
|
||||||
if (selectId.value !== '') {
|
if (selectId.value !== '') {
|
||||||
mybus.emit('getCameraByParentId', {
|
mybus.emit('getCameraByParentId', {
|
||||||
id: selectId.value,
|
id: selectId.value,
|
||||||
|
reset: true,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
mybus.emit('clearLeftSelect')
|
mybus.emit('clearLeftSelect')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 重置地图搜索模式
|
||||||
|
mybus.emit('resetMapSearch', index)
|
||||||
}
|
}
|
||||||
//选择标签内容
|
//选择标签内容
|
||||||
const tabClick = (id) => {
|
const tabClick = (id) => {
|
||||||
|
@ -244,6 +249,7 @@
|
||||||
if (newVal == '') {
|
if (newVal == '') {
|
||||||
mybus.emit('getCameraByParentId', {
|
mybus.emit('getCameraByParentId', {
|
||||||
id: '70be8c5b664f4bcf869d82f2e8335051',
|
id: '70be8c5b664f4bcf869d82f2e8335051',
|
||||||
|
reset: true,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -272,6 +278,7 @@
|
||||||
} else {
|
} else {
|
||||||
mybus.emit('getCameraByParentId', {
|
mybus.emit('getCameraByParentId', {
|
||||||
id: val.id,
|
id: val.id,
|
||||||
|
reset: true,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 17:53:28
|
* @Date: 2022-03-29 17:53:28
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-03-30 16:35:27
|
* @LastEditTime: 2022-12-29 15:12:28
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
|
|
@ -104,7 +104,8 @@
|
||||||
data-spm-anchor-id="a313x.7781069.0.i0"
|
data-spm-anchor-id="a313x.7781069.0.i0"
|
||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
<img class="icon-poylon" @click="areaMode()" src="~@/supermap/image/icon-poylon.png">
|
<svg t="1672193537830" @click="areaMode()" class="icon-poylon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2814" width="48" height="48"><path d="M385.47911111 902.59911111h83.74044444v41.41511111h-83.74044444zM217.99822222 902.59911111h83.74044445v41.41511111h-83.74044445zM113.55022222 881.89155555h-41.41511111v62.12266667H134.25777778v-41.41511111h-20.70755556zM72.13511111 546.816h41.41511111v83.74044445h-41.41511111zM72.13511111 211.85422222h41.41511111v83.74044445h-41.41511111zM72.13511111 714.41066667h41.41511111v83.74044444h-41.41511111zM72.13511111 379.33511111h41.41511111V463.07555555h-41.41511111zM72.13511111 128.11377778h41.41511111v-20.70755556H134.25777778V65.99111111h-62.12266667zM553.07377778 65.99111111h83.74044444v41.41511111h-83.74044444zM720.55466667 65.99111111h83.74044444v41.41511111h-83.74044444zM385.47911111 65.99111111h83.74044444v41.41511111h-83.74044444zM217.99822222 65.99111111h83.74044445v41.41511111h-83.74044445zM888.03555555 65.99111111v41.41511111h20.70755556v20.70755556h41.41511111V65.99111111zM908.74311111 379.33511111h41.41511111V463.07555555h-41.41511111zM908.74311111 211.85422222h41.41511111v83.74044445h-41.41511111zM738.75911111 637.26933333l70.08711111-54.272c5.23377778-4.096 8.07822222-10.46755555 7.50933333-17.06666666-0.56888889-6.59911111-4.43733333-12.51555555-10.24-15.58755556L451.47022222 359.424c-6.82666667-3.64088889-15.13244445-2.95822222-21.27644444 1.70666667-6.144 4.77866667-8.87466667 12.62933333-7.05422223 20.13866666l95.91466667 391.168c1.59288889 6.48533333 6.25777778 11.60533333 12.51555556 13.76711112 6.25777778 2.16177778 13.19822222 1.024 18.432-2.95822223l70.08711111-54.272 151.552 195.69777778c3.86844445 5.00622222 9.67111111 7.62311111 15.47377778 7.62311111 4.20977778 0 8.41955555-1.36533333 11.94666666-4.096l87.60888889-67.81155556c4.096-3.18577778 6.82666667-7.85066667 7.39555556-12.97066666 0.68266667-5.12-0.79644445-10.35377778-3.98222223-14.44977778l-151.32444444-195.69777778z" p-id="2815" fill="#4093D7"></path></svg>
|
||||||
|
<!-- <img class=" icon-poylon-pos" @click="areaMode()" src="~@/supermap/image/icon-poylon.png"> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<video-play
|
<video-play
|
||||||
|
@ -162,10 +163,12 @@
|
||||||
camreaTree: [],
|
camreaTree: [],
|
||||||
camreaTreeIsShow: true,
|
camreaTreeIsShow: true,
|
||||||
camreaTreeSingle: [],
|
camreaTreeSingle: [],
|
||||||
|
placeTypeCode: [], // 标签数据
|
||||||
checkStatus: '2',
|
checkStatus: '2',
|
||||||
labelSearch: '',
|
labelSearch: '',
|
||||||
timer: null,
|
timer: null,
|
||||||
openVideo: false,
|
openVideo: false,
|
||||||
|
labelMode: false, // 标签模式
|
||||||
channelCode: [],
|
channelCode: [],
|
||||||
circleModeFlag: false,
|
circleModeFlag: false,
|
||||||
areaModeFlag: false,
|
areaModeFlag: false,
|
||||||
|
@ -175,15 +178,15 @@
|
||||||
whoShow1: whoShow,
|
whoShow1: whoShow,
|
||||||
mapSearchParam: {
|
mapSearchParam: {
|
||||||
// 地图搜索初始化数据
|
// 地图搜索初始化数据
|
||||||
parentId: '',
|
regionId: '',
|
||||||
checkStatus: '1',
|
// checkStatus: '1',
|
||||||
pageNum: '1',
|
// pageNum: '1',
|
||||||
pageSize: '20000',
|
// pageSize: '20000',
|
||||||
gpsX: '',
|
gpsX: '',
|
||||||
gpsY: '',
|
gpsY: '',
|
||||||
radius: '',
|
radius: '',
|
||||||
borderPolygonList: [],
|
borderPolygonList: [],
|
||||||
type: 0, //0是无,1画圆,2不规则
|
type: 1, //0是无,1画圆,2不规则
|
||||||
},
|
},
|
||||||
pointAllData:[],
|
pointAllData:[],
|
||||||
restaurants:[],
|
restaurants:[],
|
||||||
|
@ -220,13 +223,14 @@
|
||||||
mybus.on('getCameraByParentId', (val) => {
|
mybus.on('getCameraByParentId', (val) => {
|
||||||
debugger
|
debugger
|
||||||
console.log('倒腾位置1')
|
console.log('倒腾位置1')
|
||||||
|
console.info('根据部门进行查询')
|
||||||
// 判断是否重置位置
|
// 判断是否重置位置
|
||||||
if (val.reset) {
|
if (val.reset) {
|
||||||
this.hiMapFun.mapFlyTo({lat:'36.017043',lng: '119.922772'}, 9)
|
this.hiMapFun.mapFlyTo({lat:'36.017043',lng: '119.922772'}, 9)
|
||||||
}
|
}
|
||||||
this.mapSearchParam.parentId = val.id
|
this.mapSearchParam.regionId = val.id
|
||||||
this.mapSearchParam.type = "1"
|
// this.mapSearchParam.type = "1"
|
||||||
this.mapSearchParam.pageSize = 10000
|
// this.mapSearchParam.pageSize = 10000
|
||||||
this.getCameraByParentId('','department')
|
this.getCameraByParentId('','department')
|
||||||
})
|
})
|
||||||
//表格勾选
|
//表格勾选
|
||||||
|
@ -252,10 +256,21 @@
|
||||||
//行政区划点击查询摄像头
|
//行政区划点击查询摄像头
|
||||||
mybus.off('CameraConditionPlaceType')
|
mybus.off('CameraConditionPlaceType')
|
||||||
mybus.on('CameraConditionPlaceType', (data) => {
|
mybus.on('CameraConditionPlaceType', (data) => {
|
||||||
this.queryCameraConditionPlace(data)
|
console.info('根据标签进行查询')
|
||||||
|
this.placeTypeCode = data
|
||||||
|
this.queryCameraConditionPlace()
|
||||||
|
})
|
||||||
|
// 重置地图搜索模式
|
||||||
|
mybus.off('resetMapSearch')
|
||||||
|
mybus.on('resetMapSearch', (index) => {
|
||||||
|
if (index == 2) {
|
||||||
|
this.labelMode = true
|
||||||
|
this.queryCameraConditionPlace()
|
||||||
|
} else {
|
||||||
|
this.labelMode = false
|
||||||
|
this.getCameraByParentId('map')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
//清空地图上所有数据
|
//清空地图上所有数据
|
||||||
mybus.off('clearLeftSelect')
|
mybus.off('clearLeftSelect')
|
||||||
mybus.on('clearLeftSelect', () => {
|
mybus.on('clearLeftSelect', () => {
|
||||||
|
@ -270,11 +285,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//查询标签视频
|
//查询标签视频
|
||||||
queryCameraConditionPlace(data) {
|
queryCameraConditionPlace(param) {
|
||||||
|
debugger
|
||||||
let params = {
|
let params = {
|
||||||
placeTypeCode: data,
|
placeTypeCode: this.placeTypeCode,...param
|
||||||
}
|
}
|
||||||
|
if (params.regionId) {
|
||||||
|
params.regionId = '70be8c5b664f4bcf869d82f2e8335051'
|
||||||
|
}
|
||||||
|
this.spinning = true;
|
||||||
CameraConditionPlaceType(params).then((res) => {
|
CameraConditionPlaceType(params).then((res) => {
|
||||||
|
this.spinning = false;
|
||||||
const byteArray = this.unzip(res.data.data)
|
const byteArray = this.unzip(res.data.data)
|
||||||
this.addResourceTomap('videoMap', byteArray)
|
this.addResourceTomap('videoMap', byteArray)
|
||||||
})
|
})
|
||||||
|
@ -370,7 +391,12 @@
|
||||||
type: this.mapSearchParam.type,
|
type: this.mapSearchParam.type,
|
||||||
}
|
}
|
||||||
// mybus.emit('getListByMap', params);
|
// mybus.emit('getListByMap', params);
|
||||||
|
if (this.labelMode) {
|
||||||
|
debugger
|
||||||
|
this.queryCameraConditionPlace(params)
|
||||||
|
} else {
|
||||||
this.getCameraByParentId('map');
|
this.getCameraByParentId('map');
|
||||||
|
}
|
||||||
console.log("areaSelectResource -> latlngs", latlngs)
|
console.log("areaSelectResource -> latlngs", latlngs)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -399,11 +425,17 @@
|
||||||
circlePloygonLayer
|
circlePloygonLayer
|
||||||
)
|
)
|
||||||
console.log('查询图层为何发生了改变', e.layer)
|
console.log('查询图层为何发生了改变', e.layer)
|
||||||
this.mapSearchParam.gpsX = e.layer._latlng.lng
|
this.mapSearchParam.regionId = this.mapSearchParam.regionId ||
|
||||||
this.mapSearchParam.gpsY = e.layer._latlng.lat
|
'70be8c5b664f4bcf869d82f2e8335051',
|
||||||
|
this.mapSearchParam.longitude = e.layer._latlng.lng
|
||||||
|
this.mapSearchParam.latitude = e.layer._latlng.lat
|
||||||
this.mapSearchParam.radius = radius
|
this.mapSearchParam.radius = radius
|
||||||
this.mapSearchParam.type = 1
|
this.mapSearchParam.type = 1
|
||||||
this.getCameraByParentId('map')
|
if (this.labelMode) {
|
||||||
|
this.queryCameraConditionPlace(this.mapSearchParam)
|
||||||
|
} else {
|
||||||
|
this.getCameraByParentId('map');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -419,11 +451,11 @@
|
||||||
// this.hiMapFun.mapFlyTo({lat:'36.017043',lng: '119.922772'}, 9)
|
// this.hiMapFun.mapFlyTo({lat:'36.017043',lng: '119.922772'}, 9)
|
||||||
let params = {
|
let params = {
|
||||||
regionId:
|
regionId:
|
||||||
this.mapSearchParam.parentId ||
|
this.mapSearchParam.regionId ||
|
||||||
'70be8c5b664f4bcf869d82f2e8335051',
|
'70be8c5b664f4bcf869d82f2e8335051',
|
||||||
name: this.mapSearchParam.cameraName || '',
|
name: this.mapSearchParam.cameraName || '',
|
||||||
longitude: this.mapSearchParam.gpsX || '',
|
longitude: this.mapSearchParam.gpsX || this.mapSearchParam.longitude || '',
|
||||||
latitude: this.mapSearchParam.gpsY || '',
|
latitude: this.mapSearchParam.gpsY || this.mapSearchParam.latitude || '',
|
||||||
radius: this.mapSearchParam.radius || '',
|
radius: this.mapSearchParam.radius || '',
|
||||||
type: this.mapSearchParam.type,
|
type: this.mapSearchParam.type,
|
||||||
borderPolygonList: this.mapSearchParam.borderPolygonList || [],
|
borderPolygonList: this.mapSearchParam.borderPolygonList || [],
|
||||||
|
@ -453,7 +485,7 @@
|
||||||
this.spinning = false;
|
this.spinning = false;
|
||||||
const byteArray = this.unzip(res.data.data)
|
const byteArray = this.unzip(res.data.data)
|
||||||
if(type=='map'){
|
if(type=='map'){
|
||||||
let params = this.mapSearchParam;
|
let params = JSON.parse(JSON.stringify(this.mapSearchParam));
|
||||||
// const byteArray = this.unzip(res.data.data)
|
// const byteArray = this.unzip(res.data.data)
|
||||||
params.dataSource = byteArray||0;
|
params.dataSource = byteArray||0;
|
||||||
params.total = res.data.count||0;
|
params.total = res.data.count||0;
|
||||||
|
@ -507,21 +539,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
resetCircle(){
|
resetCircle(){
|
||||||
|
debugger
|
||||||
// 关闭圈选模式,清空圈选内容,重新上图
|
// 关闭圈选模式,清空圈选内容,重新上图
|
||||||
this.hiMapFun.removeLayerByLayerName('circlePloygonLayer')
|
this.hiMapFun.removeLayerByLayerName('circlePloygonLayer')
|
||||||
// 重置内容
|
// 重置内容
|
||||||
this.mapSearchParam.gpsX = ''
|
this.mapSearchParam.longitude = ''
|
||||||
this.mapSearchParam.gpsY = ''
|
this.mapSearchParam.latitude = ''
|
||||||
this.mapSearchParam.radius = ''
|
this.mapSearchParam.radius = ''
|
||||||
this.mapSearchParam.type = 0;
|
this.mapSearchParam.type = 0;
|
||||||
const params = {
|
if (this.labelMode) {
|
||||||
gpsX: this.mapSearchParam.gpsX,
|
this.queryCameraConditionPlace(this.mapSearchParam)
|
||||||
gpsY: this.mapSearchParam.gpsY,
|
} else {
|
||||||
radius: this.mapSearchParam.radius,
|
this.getCameraByParentId('map');
|
||||||
type: this.mapSearchParam.type
|
|
||||||
}
|
}
|
||||||
this.getCameraByParentId('map')
|
|
||||||
// mybus.emit('getListByMap', params);
|
|
||||||
},
|
},
|
||||||
resetArea(){
|
resetArea(){
|
||||||
// 关闭不规则形状模式模式,清空不规则形状模式内容,重新上图
|
// 关闭不规则形状模式模式,清空不规则形状模式内容,重新上图
|
||||||
|
@ -533,7 +563,12 @@
|
||||||
borderPolygonList: this.mapSearchParam.borderPolygonList,
|
borderPolygonList: this.mapSearchParam.borderPolygonList,
|
||||||
type: this.mapSearchParam.type
|
type: this.mapSearchParam.type
|
||||||
}
|
}
|
||||||
this.getCameraByParentId('map')
|
if (this.labelMode) {
|
||||||
|
this.queryCameraConditionPlace(params)
|
||||||
|
} else {
|
||||||
|
this.getCameraByParentId('map');
|
||||||
|
}
|
||||||
|
// this.getCameraByParentId('map')
|
||||||
// mybus.emit('getListByMap', params);
|
// mybus.emit('getListByMap', params);
|
||||||
},
|
},
|
||||||
//查询地址建议匹配
|
//查询地址建议匹配
|
||||||
|
@ -900,7 +935,7 @@
|
||||||
.leaflet-control-attribution {
|
.leaflet-control-attribution {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.icon, .icon-poylon {
|
.icon {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0.1rem;
|
bottom: 0.1rem;
|
||||||
right: 0.1rem;
|
right: 0.1rem;
|
||||||
|
@ -916,6 +951,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.icon-poylon {
|
.icon-poylon {
|
||||||
|
position: absolute;
|
||||||
|
// bottom: 0.1rem;
|
||||||
|
right: 0.1rem;
|
||||||
|
z-index: 988;
|
||||||
|
cursor: pointer;
|
||||||
width: 0.46rem;
|
width: 0.46rem;
|
||||||
bottom: 0.6rem;
|
bottom: 0.6rem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,9 @@
|
||||||
import { Encrypt } from '@/utils/crypto'
|
import { Encrypt } from '@/utils/crypto'
|
||||||
import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'
|
import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'
|
||||||
import { message, Modal } from 'ant-design-vue'
|
import { message, Modal } from 'ant-design-vue'
|
||||||
|
import { getNavList } from '@/api/user'
|
||||||
|
import { useStore } from 'vuex'
|
||||||
|
// const store = useStore()
|
||||||
// 是否是西海岸
|
// 是否是西海岸
|
||||||
const isXiHaiAn = whoShow.itShowXiHaiAn
|
const isXiHaiAn = whoShow.itShowXiHaiAn
|
||||||
|
|
||||||
|
@ -74,6 +76,7 @@
|
||||||
devDependencies: devDependencies,
|
devDependencies: devDependencies,
|
||||||
is360: false,
|
is360: false,
|
||||||
isIE: false,
|
isIE: false,
|
||||||
|
store: useStore(),
|
||||||
canOpen: ['FF', 'Chrome'],
|
canOpen: ['FF', 'Chrome'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -94,7 +97,6 @@
|
||||||
mounted() {
|
mounted() {
|
||||||
this.form.username = ''
|
this.form.username = ''
|
||||||
this.form.password = ''
|
this.form.password = ''
|
||||||
|
|
||||||
if (!this.canOpen.includes(this.judgeAgent())) {
|
if (!this.canOpen.includes(this.judgeAgent())) {
|
||||||
Modal.warning({
|
Modal.warning({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
|
@ -106,6 +108,24 @@
|
||||||
...mapActions({
|
...mapActions({
|
||||||
login: 'user/login',
|
login: 'user/login',
|
||||||
}),
|
}),
|
||||||
|
getNavList() {
|
||||||
|
let navList = []
|
||||||
|
getNavList({
|
||||||
|
_t: new Date().getTime(),
|
||||||
|
}).then((res) => {
|
||||||
|
const nav = res.data.data.filter((item) => item.site === 1)
|
||||||
|
if (nav.length > 0) {
|
||||||
|
navList = nav.map((item) => {
|
||||||
|
item.key = item.url
|
||||||
|
item.innerKey = item.permissions
|
||||||
|
return item
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log('后台获取到的站点', navList)
|
||||||
|
debugger
|
||||||
|
this.store.commit('user/setNavList', navList)
|
||||||
|
})
|
||||||
|
},
|
||||||
// 判断浏览器
|
// 判断浏览器
|
||||||
judgeAgent() {
|
judgeAgent() {
|
||||||
let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
||||||
|
@ -159,6 +179,7 @@
|
||||||
})
|
})
|
||||||
// window.localStorage.setItem('tokenStartTime', new Date().getTime())
|
// window.localStorage.setItem('tokenStartTime', new Date().getTime())
|
||||||
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
||||||
|
this.getNavList()
|
||||||
// console.log(this.handleRoute())
|
// console.log(this.handleRoute())
|
||||||
// 西海岸特殊处理
|
// 西海岸特殊处理
|
||||||
if (isXiHaiAn) {
|
if (isXiHaiAn) {
|
||||||
|
|
|
@ -81,18 +81,26 @@
|
||||||
query: {
|
query: {
|
||||||
// select: '组件服务',
|
// select: '组件服务',
|
||||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||||
orderField:'tdr.create_date'
|
orderField: 'tdr.create_date',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const selectOne = (id) => {
|
const selectOne = (id) => {
|
||||||
console.log('点击===============》', id)
|
console.log('点击===============》', id)
|
||||||
router.push({
|
// router.push({
|
||||||
path: '/details',
|
// path: '/details',
|
||||||
|
// query: {
|
||||||
|
// id: id,
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
const detailPage = router.resolve({
|
||||||
|
path: '/details', // 跳转的页面路由
|
||||||
query: {
|
query: {
|
||||||
id: id,
|
id: id,
|
||||||
|
hiddenBackFlag: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
window.open(detailPage.href, '_blank')
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -52,7 +52,6 @@
|
||||||
<template #title>{{ item.description || '暂无描述' }}</template>
|
<template #title>{{ item.description || '暂无描述' }}</template>
|
||||||
<div class="text">{{ item.description || '暂无描述' }}</div>
|
<div class="text">{{ item.description || '暂无描述' }}</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -139,24 +138,35 @@ function jumpPage() {
|
||||||
store.commit('home/selectCardsData', {
|
store.commit('home/selectCardsData', {
|
||||||
selectCardsnum: '组件服务',
|
selectCardsnum: '组件服务',
|
||||||
})
|
})
|
||||||
console.log('选中===================>', store.getters['home/selectCardsnum'])
|
console.log(
|
||||||
|
'选中===================>',
|
||||||
|
store.getters['home/selectCardsnum']
|
||||||
|
)
|
||||||
router.push({
|
router.push({
|
||||||
path: '/DetailsPageconetent',
|
path: '/DetailsPageconetent',
|
||||||
query: {
|
query: {
|
||||||
// select: '组件服务',
|
// select: '组件服务',
|
||||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||||
orderField:paramsGetResources.orderField //根据什么排序
|
orderField: paramsGetResources.orderField, //根据什么排序
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const selectOne = (id) => {
|
const selectOne = (id) => {
|
||||||
console.log('点击===============》', id)
|
console.log('点击===============》', id)
|
||||||
router.push({
|
// router.push({
|
||||||
path: '/details',
|
// path: '/details',
|
||||||
|
// query: {
|
||||||
|
// id: id,
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
const detailPage = router.resolve({
|
||||||
|
path: '/details', // 跳转的页面路由
|
||||||
query: {
|
query: {
|
||||||
id: id,
|
id: id,
|
||||||
|
hiddenBackFlag: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
window.open(detailPage.href, '_blank')
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@ -228,7 +238,6 @@ const selectOne = (id) => {
|
||||||
.text {
|
.text {
|
||||||
color: rgba(255, 255, 255, 0.6);
|
color: rgba(255, 255, 255, 0.6);
|
||||||
font-size: 0.14rem;
|
font-size: 0.14rem;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.select:hover {
|
.select:hover {
|
||||||
|
|
|
@ -104,12 +104,20 @@
|
||||||
}
|
}
|
||||||
const selectOne = (id) => {
|
const selectOne = (id) => {
|
||||||
console.log('点击===============》', id)
|
console.log('点击===============》', id)
|
||||||
router.push({
|
// router.push({
|
||||||
path: '/details',
|
// path: '/details',
|
||||||
|
// query: {
|
||||||
|
// id: id,
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
const detailPage = router.resolve({
|
||||||
|
path: '/details', // 跳转的页面路由
|
||||||
query: {
|
query: {
|
||||||
id: id,
|
id: id,
|
||||||
|
hiddenBackFlag: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
window.open(detailPage.href, '_blank')
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -557,8 +557,6 @@
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 1.56rem;
|
|
||||||
right: 0rem;
|
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
@ -615,4 +613,22 @@
|
||||||
background-size: 140% 126%;
|
background-size: 140% 126%;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
|
@media only screen and (max-width: 1920px) {
|
||||||
|
.fixedmount {
|
||||||
|
bottom: 1.56rem;
|
||||||
|
right: 0rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 1921px) and (max-width: 3840px) {
|
||||||
|
.fixedmount {
|
||||||
|
bottom: 1.56rem;
|
||||||
|
right: 9.6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 3841px) and (max-width: 5760px) {
|
||||||
|
.fixedmount {
|
||||||
|
bottom: 1.56rem;
|
||||||
|
right: 19.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -405,6 +405,7 @@ const phoneVisible = ref(false)
|
||||||
|
|
||||||
// 选择类型
|
// 选择类型
|
||||||
const changeType = (item, index) => {
|
const changeType = (item, index) => {
|
||||||
|
debugger
|
||||||
contentList.data = []
|
contentList.data = []
|
||||||
formState.value.name = ''
|
formState.value.name = ''
|
||||||
|
|
||||||
|
@ -1126,8 +1127,10 @@ const showPhoneModal = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
mybus.on('closeModal', (obj) => {
|
mybus.on('closeModal', (obj) => {
|
||||||
|
debugger
|
||||||
detailsVisible.value = false
|
detailsVisible.value = false
|
||||||
changeType(obj.type, obj.index)
|
obj.name=obj.type
|
||||||
|
changeType(obj, obj.index)
|
||||||
})
|
})
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
mybus.off('closeModal')
|
mybus.off('closeModal')
|
||||||
|
|
|
@ -144,7 +144,11 @@
|
||||||
联系方式
|
联系方式
|
||||||
</div>
|
</div>
|
||||||
<div class="button" @click="showDetail(item)">查看详情</div>
|
<div class="button" @click="showDetail(item)">查看详情</div>
|
||||||
<div class="button" @click="showAdd(item)" v-if="item.backToFirst">
|
<div
|
||||||
|
class="button"
|
||||||
|
@click="showAdd(item)"
|
||||||
|
v-if="typeName !== '能力申请' && item.backToFirst"
|
||||||
|
>
|
||||||
修改
|
修改
|
||||||
</div>
|
</div>
|
||||||
<svg
|
<svg
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-07-12 09:42:44
|
* @Date: 2022-07-12 09:42:44
|
||||||
* @LastEditors: Light
|
* @LastEditors: Light
|
||||||
* @LastEditTime: 2022-12-01 14:02:17
|
* @LastEditTime: 2022-12-19 10:54:23
|
||||||
* @Description:我的申请 能力申请 查看详情
|
* @Description:我的申请 能力申请 查看详情
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -35,9 +35,118 @@
|
||||||
<span>能力描述:{{ props.refObj.dto.description }}</span>
|
<span>能力描述:{{ props.refObj.dto.description }}</span>
|
||||||
<span>归属部门:{{ props.refObj.dto.deptName }}</span>
|
<span>归属部门:{{ props.refObj.dto.deptName }}</span>
|
||||||
</p>
|
</p>
|
||||||
<p v-for="item in props.refObj.dto.infoList" :key="item.attrType">
|
<template
|
||||||
|
v-for="item in props.refObj.dto.infoList"
|
||||||
|
:key="item.attrType"
|
||||||
|
>
|
||||||
|
<p v-if="arr.indexOf(item.attrType) === -1">
|
||||||
<span>{{ item.attrType + ':' + item.attrValue }}</span>
|
<span>{{ item.attrType + ':' + item.attrValue }}</span>
|
||||||
</p>
|
</p>
|
||||||
|
<template v-else-if="JSON.parse(item.attrValue)">
|
||||||
|
<div v-if="item.attrType === '算法优势'">
|
||||||
|
<div
|
||||||
|
v-for="(attr, index) in JSON.parse(item.attrValue)"
|
||||||
|
:key="item.attrType + index"
|
||||||
|
>
|
||||||
|
<div>{{ item.attrType + '-' + (index + 1) }}</div>
|
||||||
|
<div>
|
||||||
|
<span>算法优势名称:{{ attr.name }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>算法优势描述:{{ attr.desc }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="item.attrType === '应用场景'">
|
||||||
|
<div
|
||||||
|
v-for="(attr, index) in JSON.parse(item.attrValue)"
|
||||||
|
:key="item.attrType + index"
|
||||||
|
>
|
||||||
|
<div>{{ item.attrType + '-' + (index + 1) }}</div>
|
||||||
|
<div>
|
||||||
|
<span>应用场景名称:{{ attr.name }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>应用场景描述:{{ attr.desc }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>
|
||||||
|
应用场景图片:
|
||||||
|
<a-image :width="100" :src="attr.img" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="item.attrType === '计费标准信息'">
|
||||||
|
<div
|
||||||
|
v-for="(attr, index) in JSON.parse(item.attrValue)"
|
||||||
|
:key="item.attrType + index"
|
||||||
|
>
|
||||||
|
<div>{{ item.attrType + '-' + (index + 1) }}</div>
|
||||||
|
<div>
|
||||||
|
<span>计费方式:{{ attr.type }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>计费标准:{{ attr.price }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>计费标准描述:{{ attr.desc }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="item.attrType === '常见问题'">
|
||||||
|
<div
|
||||||
|
v-for="(attr, index) in JSON.parse(item.attrValue)"
|
||||||
|
:key="item.attrType + index"
|
||||||
|
>
|
||||||
|
<div>{{ item.attrType + '-' + (index + 1) }}</div>
|
||||||
|
<div>
|
||||||
|
<span>问题:{{ attr.question }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>答复:{{ attr.answer }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="item.attrType === '功能介绍'">
|
||||||
|
<div
|
||||||
|
v-for="(attr, index) in JSON.parse(item.attrValue)"
|
||||||
|
:key="item.attrType + index"
|
||||||
|
>
|
||||||
|
<div>{{ item.attrType + '-' + (index + 1) }}</div>
|
||||||
|
<div>
|
||||||
|
<span>功能名称:{{ attr.name }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>功能描述:{{ attr.desc }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>
|
||||||
|
功能图片:
|
||||||
|
<a-image :width="100" :src="attr.img" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<!-- <p v-for="item in props.refObj.dto.infoList" :key="item.attrType">
|
||||||
|
<template v-if="arr.indexOf(item.attrType) === -1">
|
||||||
|
<span>{{ item.attrType + ':' + item.attrValue }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="item.attrType === '算法优势'">
|
||||||
|
<div
|
||||||
|
v-for="(attr, index) in JSON.parse(item.attrValue)"
|
||||||
|
:key="item.attrType + index"
|
||||||
|
>
|
||||||
|
<div>{{ item.attrType + '-' + (index + 1) }}</div>
|
||||||
|
<div>
|
||||||
|
<span>算法优势名称:{{ attr.name }}</span>
|
||||||
|
<span>算法优势描述:{{ attr.desc }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</p> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -52,11 +161,11 @@
|
||||||
})
|
})
|
||||||
console.log(props.refObj, '=====================================')
|
console.log(props.refObj, '=====================================')
|
||||||
const arr = ['算法优势', '应用场景', '计费标准信息', '常见问题', '功能介绍']
|
const arr = ['算法优势', '应用场景', '计费标准信息', '常见问题', '功能介绍']
|
||||||
if (props.refObj.dto.infoList) {
|
// if (props.refObj.dto.infoList) {
|
||||||
props.refObj.dto.infoList = props.refObj.dto.infoList.filter(
|
// props.refObj.dto.infoList = props.refObj.dto.infoList.filter(
|
||||||
(val) => arr.indexOf(val.attrType) == -1
|
// (val) => arr.indexOf(val.attrType) == -1
|
||||||
)
|
// )
|
||||||
}
|
// }
|
||||||
const endThis = () => {
|
const endThis = () => {
|
||||||
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
|
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
|
||||||
if (res.data.code == 0) {
|
if (res.data.code == 0) {
|
||||||
|
@ -104,6 +213,9 @@
|
||||||
.main {
|
.main {
|
||||||
background: #eee;
|
background: #eee;
|
||||||
padding: 0.2rem 0.2rem 0.1rem;
|
padding: 0.2rem 0.2rem 0.1rem;
|
||||||
|
div {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
p {
|
p {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
Loading…
Reference in New Issue