Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
wuhongjian 2022-12-29 17:31:10 +08:00
commit 2f4933ad11
13 changed files with 289 additions and 168 deletions

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-11 10:11:40 * @Date: 2022-04-11 10:11:40
* @LastEditors: hisense.wuhongjian * @LastEditors: Light
* @LastEditTime: 2022-08-25 14:51:36 * @LastEditTime: 2022-12-29 09:59:52
* @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>

View File

@ -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()

View File

@ -271,7 +271,7 @@ export default {
radio: '', radio: '',
showPutOnTheShelfFlag: false, showPutOnTheShelfFlag: false,
showPutOnTheShelfFlag2: false, showPutOnTheShelfFlag2: false,
routePath: '', // routePath: '',
submitFrom: { submitFrom: {
type: '组件服务', type: '组件服务',
deptId: '', deptId: '',
@ -329,8 +329,8 @@ 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
}) })
}, },
mounted () { mounted () {
@ -341,7 +341,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: '置顶成功',
@ -421,7 +420,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,8 +441,12 @@ export default {
} }
}, },
showDetail (val) { showDetail (val) {
<<<<<<< HEAD
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
=======
console.log(val) console.log(val)
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id + '&&hiddenBackFlag=true') window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id + '&&hiddenBackFlag=true')
>>>>>>> 1e4d145fe03902c4ae099d8c968b93c472595a68
// this.addOrUpdateHandle(id) // this.addOrUpdateHandle(id)
// this.addOrUpdateVisible = true // this.addOrUpdateVisible = true
// this.disabled = false // this.disabled = false
@ -491,7 +493,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) {
// //
@ -630,8 +631,12 @@ export default {
}, },
// //
clear () { clear () {
<<<<<<< HEAD
this.$router.push(this.routePath) this.$router.push(this.routePath)
=======
// this.$router.push(this.routePath)
console.log('清空----------------------------------------') console.log('清空----------------------------------------')
>>>>>>> 1e4d145fe03902c4ae099d8c968b93c472595a68
this.notFilled = [] this.notFilled = []
this.showPutOnTheShelfFlag = false this.showPutOnTheShelfFlag = false
this.showPutOnTheShelfFlag2 = false this.showPutOnTheShelfFlag2 = false
@ -661,7 +666,7 @@ export default {
}) })
}, },
showPutOnTheShelfVue () { showPutOnTheShelfVue () {
this.routePath = this.$route.path // 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
@ -670,7 +675,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
) )
@ -694,14 +698,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',
@ -718,7 +720,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) => {
@ -728,6 +729,7 @@ export default {
child.name === '应用场景' || child.name === '应用场景' ||
child.name === '功能介绍' child.name === '功能介绍'
) { ) {
arr.push(child.name) arr.push(child.name)
if ( if (
this.submitFrom.infoList.filter( this.submitFrom.infoList.filter(
@ -827,6 +829,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)
) )
@ -875,7 +878,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: '请填写必填字段!',
@ -889,8 +891,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) => {
@ -914,7 +914,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 }) => {
@ -926,7 +925,7 @@ export default {
} }
}) })
.catch(() => {}) .catch(() => {})
} }
} }
}, },
// //

View File

@ -271,7 +271,7 @@ export default {
insertList: [], insertList: [],
putOnTheShelfList: [], putOnTheShelfList: [],
showPutOnTheShelfFlag2: false, showPutOnTheShelfFlag2: false,
routePath: '', // routePath: '',
submitFrom: { submitFrom: {
type: '应用资源', type: '应用资源',
deptId: '', deptId: '',
@ -595,7 +595,7 @@ export default {
}, },
// //
clear () { clear () {
this.$router.push(this.routePath) // this.$router.push(this.routePath)
this.notFilled = [] this.notFilled = []
this.showPutOnTheShelfFlag2 = false this.showPutOnTheShelfFlag2 = false
this.insertList = [] this.insertList = []
@ -617,7 +617,7 @@ export default {
}, },
// //
showPutOnTheShelf () { showPutOnTheShelf () {
this.routePath = this.$route.path // 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]

View File

@ -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()
}, },

View File

@ -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>

View File

@ -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框 -->
@ -96,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,
@ -107,6 +107,7 @@ export default {
}, },
data () { data () {
return { return {
optionsCopy:[],
// //
valueCheckBox: [], valueCheckBox: [],
// //
@ -133,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 === '所属产品线') {
@ -142,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
}) })
} }
@ -159,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 || ''
}) })
} }
@ -173,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) {
@ -199,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)
} }
}, },

View File

@ -6,76 +6,71 @@
* @Description: 多条数据特殊处理 * @Description: 多条数据特殊处理
--> -->
<template> <template>
<div class="special"> <div class="special">
<div class="top">{{configure.name}}</div> <div class="top">{{ configure.name }}</div>
<div class="bottom"> <div class="bottom">
<div class="items" v-show="data.length > 0"> <div class="items" v-show="data.length > 0">
<div class="item" v-for="(val, index) in data" :key="'key1' + val.name + index"> <div class="item" v-for="(val, index) in data" :key="'key1' + val.name + index">
<p> <p>
<span>{{ configure.name }}-{{ index + 1 }}</span> <span>{{ configure.name }}-{{ index + 1 }}</span>
<span></span> <span></span>
</p> </p>
<p v-for="(attr,index2) in configure.list" :key="'key2' + attr.name + index2"> <p v-for="(attr, index2) in configure.list" :key="'key2' + attr.name + index2">
<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" </el-image>
:src="val.img" </span>
:preview-src-list="[val.img]"> <span v-else>{{ val[attr.field] + (attr.company || '') }}</span>
</el-image> </p>
</span> <div class="del">
<span v-else>{{ val[attr.field] + (attr.company || '') }}</span> <i class="updateImg" @click="update(configure.name, index)"></i>
</p> <div @click="update(configure.name, index)" style="margin-right:10px;">修改</div>
<div class="del"> <i class="delImg" @click="del(configure.name, index)"></i>
<i class="updateImg" @click="update(configure.name, index)"></i> <div @click="del(configure.name, index)">删除</div>
<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>
</div>
</div>
<!-- <div class="add">添加更多{{ configure.name }}</div> -->
<div class="form" v-for="(val, index) in configure.list" :key="'key3' + val.name + index">
<span>{{ val.name }}</span>
<a-input v-model:value="val.note1" ::maxlength="24" :placeholder="'请填写' + val.name + ',不超过24个字符'"
v-if="val.type == 'input'"/>
<template v-if="val.type == 'input2'">
<a-input
v-model:value="val.note1"
:placeholder="'请填写' + val.name"
style="width: 570px;"
/>
<span style="width: 2.5rem; padding-left: 0.1rem">
{{
numType == '一次性买断'
? '元'
: numType == '按调用次数'
? '元/次'
: numType == '按并发路数'
? '元/路'
: numType == '按年计费'
? '元/年'
: ''
}}
</span>
</template>
<a-textarea v-model:value="val.note1" :showCount="true" :maxlength="200" :placeholder="'请填写' + val.name"
v-else-if="val.type == 'textArea'"/>
<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'" />
<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"
v-else-if="val.type == 'image'"></upload> -->
<upload :key="showKey" :child='val' limit='1' accept='.jpg,.png' v-else-if="val.type == 'image'"></upload>
</div>
<div class="submit">
<a-button type="primary" @click="add(configure.name)">添加更多</a-button>
</div> </div>
</div> </div>
</div>
<!-- <div class="add">添加更多{{ configure.name }}</div> -->
<div class="form" v-for="(val, index) in configure.list" :key="'key3' + val.name + index">
<span>{{ val.name }}</span>
<a-input v-model:value="val.note1" ::maxlength="24" :placeholder="'请填写' + val.name + ',不超过24个字符'"
v-if="val.type == 'input'" />
<template v-if="val.type == 'input2'">
<a-input v-model:value="val.note1" :placeholder="'请填写' + val.name" style="width: 570px;" />
<span style="width: 2.5rem; padding-left: 0.1rem">
{{
numType == '一次性买断'
? '元'
: numType == '按调用次数'
? '元/次'
: numType == '按并发路数'
? '元/路'
: numType == '按年计费'
? '元/年'
: ''
}}
</span>
</template>
<a-textarea v-model:value="val.note1" :showCount="true" :maxlength="200" :placeholder="'请填写' + val.name"
v-else-if="val.type == 'textArea'" />
<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'" />
<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"
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 class="submit">
<a-button type="primary" @click="add(configure.name)">添加更多</a-button>
</div>
</div> </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 {
@ -87,16 +82,44 @@ export default {
configure: Object, configure: Object,
showData: Object showData: Object
}, },
data () { 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() {
return { return {
limit: 1,
data: [], data: [],
showKey: 0, showKey: 0,
numType: '一次性买断' numType: '一次性买断'
} }
}, },
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) => {
@ -120,16 +143,16 @@ export default {
return return
} }
obj[item.field] = obj[item.field] =
item.note1 + item.note1 +
(this.numType === '一次性买断' (this.numType === '一次性买断'
? '元' ? '元'
: this.numType === '按调用次数' : this.numType === '按调用次数'
? '元/次' ? '元/次'
: this.numType === '按并发路数' : this.numType === '按并发路数'
? '元/路' ? '元/路'
: this.numType === '按年计费' : this.numType === '按年计费'
? '元/年' ? '元/年'
: '') : '')
} else { } else {
obj[item.field] = item.note1 obj[item.field] = item.note1
} }
@ -164,7 +187,7 @@ export default {
} }
} }
}, },
del (title, index) { del(title, index) {
this.data.splice(index, 1) this.data.splice(index, 1)
const str = this.data.length > 0 ? JSON.stringify(this.data) : '' const str = this.data.length > 0 ? JSON.stringify(this.data) : ''
this.$emit('changeInfoList', { this.$emit('changeInfoList', {
@ -173,7 +196,7 @@ export default {
delFlag: 0 delFlag: 0
}) })
}, },
update (title, index) { update(title, index) {
const obj = this.data[index] const obj = this.data[index]
this.data.splice(index, 1) this.data.splice(index, 1)
const str = this.data.length > 0 ? JSON.stringify(this.data) : '' const str = this.data.length > 0 ? JSON.stringify(this.data) : ''
@ -186,13 +209,11 @@ export default {
val.note1 = obj[val.field] 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)
@ -229,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;
@ -247,7 +269,7 @@ export default {
} }
} }
p:nth-of-type(1) > span:nth-of-type(1) { p:nth-of-type(1)>span:nth-of-type(1) {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
} }
@ -266,6 +288,7 @@ export default {
margin-right: 5px; margin-right: 5px;
margin-bottom: 1px; margin-bottom: 1px;
} }
.delImg { .delImg {
cursor: pointer; cursor: pointer;
display: inline-block; display: inline-block;
@ -340,6 +363,7 @@ export default {
} }
} }
} }
::v-deep .el-image__preview { ::v-deep .el-image__preview {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -395,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;

View File

@ -2,18 +2,27 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-07-08 09:48:52 * @Date: 2022-07-08 09:48:52
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-12-20 09:50:01 * @LastEditTime: 2022-12-29 09:34:56
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
<div class="put-on-the-shelf"> <div class="put-on-the-shelf">
<div class="left"> <div class="left">
<a-anchor> <div class="item" v-for="(parent,index) in putOnTheShelfList" :key="parent.id+'left'">
<a-anchor-link v-for="parent in putOnTheShelfList" :key="parent.id+'left'" :href="'#'+parent.name" :title="parent.name" /> <div class="main" @click="selectItem(parent.name)" :class="selectName===parent.name?'select':''">
</a-anchor> <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>
<div class="right"> <div class="right" id="putOnTheShelf">
<div v-for="parent in putOnTheShelfList" :key='parent.id' :id="parent.name"> <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>
@ -87,6 +96,8 @@ export default {
}, },
data () { data () {
return { return {
selectName: '',
showList: [],
changeField: [], changeField: [],
judgmentType: [ judgmentType: [
{ {
@ -200,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: {
// //
@ -241,7 +266,16 @@ 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
})
}
} }
} }
} }
@ -253,6 +287,41 @@ export default {
padding: 0 50px; padding: 0 50px;
.left { .left {
margin-right: 50px; 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 { .right {
height: 500px; height: 500px;
@ -267,6 +336,7 @@ export default {
// } // }
.top { .top {
width: 800px;
color: #333333; color: #333333;
font-size: 22px; font-size: 22px;
display: flex; display: flex;

View File

@ -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)
} }
) )
}, },

View File

@ -8,7 +8,7 @@
var _global = {} var _global = {}
var CONFIGITEM = { var CONFIGITEM = {
// version: 'qingdao', // // version: 'qingdao', //
version: 'xihaian', // 西 version: 'dev', // 西
// version: 'dev', // // version: 'dev', //
// version: 'zhanTingDev', // dev (2022-09-13:) // version: 'zhanTingDev', // dev (2022-09-13:)
// version: 'qingdao', // // version: 'qingdao', //

View File

@ -456,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

View File

@ -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>