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
* @Date: 2022-04-11 10:11:40
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-25 14:51:36
* @LastEditors: Light
* @LastEditTime: 2022-12-29 09:59:52
* @Description: 告诉大家这是什么
-->
<!DOCTYPE html>
@ -39,7 +39,8 @@
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl;
window.SITE_CONFIG['apiURL'] = _global.config.apiURL;
// WebSocket地址
window.SITE_CONFIG['socketURL'] =_global.config.socketURL;
// window.SITE_CONFIG['socketURL'] =_global.config.socketURL;
window.SITE_CONFIG['websocketURL'] = _global.config.websocketURL
</script>
</head>
<body>

View File

@ -105,8 +105,9 @@ import { messages } from '@/i18n'
import screenfull from 'screenfull'
import UpdatePassword from './main-navbar-update-password'
import { clearLoginInfo } from '@/utils'
// import Cookies from 'js-cookie'
// var socket = null
import Cookies from 'js-cookie'
import bus from '@/views/bus.js'
var socket = null
export default {
inject: ['refresh'],
data () {
@ -120,29 +121,32 @@ export default {
UpdatePassword
},
created () {
// var vue = this
// socket = new WebSocket(`${window.SITE_CONFIG['socketURL']}?token=${Cookies.get('token')}`)
// socket.onopen = function () {}
// socket.onerror = function () {
// vue.$notify.error({
// title: vue.$t('notice.disconnect'),
// message: vue.$t('notice.disconnectMessage')
// })
// }
// socket.onmessage = function (evt) {
// const result = JSON.parse(evt.data)
// //
// if (result.type === 0) {
// vue.messageTip = true
// vue.$notify({
// title: vue.$t('notice.new'),
// message: result.msg,
// type: 'info',
// duration: 5000
// })
// }
// }
const that = this
socket = new WebSocket(`${window.SITE_CONFIG.websocketURL}?token=${Cookies.get('ucsToken')}`)
socket.onopen = function () {}
socket.onerror = function () {}
socket.onmessage = function (res) {
switch (that.$route.name) {
case 'myAgent-CompetencyApplication':
bus.$emit('competencyApplicationInit')
break
case 'myAgent-AbilityResourceShelf':
bus.$emit('abilityResourceShelfInit')
break
case 'myAgent-ApplicationforCompetencyRequirements':
bus.$emit('applicationforRequirementsInit')
break
case 'myAgent-AbilityResourcesRemoved':
bus.$emit('AbilityResourcesRemovedInit')
break
case 'myAgent-CommentModeration':
bus.$emit('commentInit')
break
case 'activiti-RoomExamineAdmin':
bus.$emit('roomExamineAdminInit')
break
}
}
//
this.getUnReadCount()

View File

@ -271,7 +271,7 @@ export default {
radio: '',
showPutOnTheShelfFlag: false,
showPutOnTheShelfFlag2: false,
routePath: '',
// routePath: '',
submitFrom: {
type: '组件服务',
deptId: '',
@ -329,8 +329,8 @@ export default {
this.dataForm.name = ''
this.dataForm.type = '组件服务'
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
})
},
mounted () {
@ -341,7 +341,6 @@ export default {
//
toppingCapacity (item) {
this.$http.put('/resource/pin_top/' + item.id).then(res => {
console.log('置顶', res.data.code)
if (res.data.code == 0) {
this.$message({
message: '置顶成功',
@ -421,7 +420,6 @@ export default {
})
this.dataList[index].infoList2 = dataListSinforList
})
console.log('this.dataList', this.dataList)
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0
@ -443,8 +441,12 @@ export default {
}
},
showDetail (val) {
<<<<<<< HEAD
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
=======
console.log(val)
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id + '&&hiddenBackFlag=true')
>>>>>>> 1e4d145fe03902c4ae099d8c968b93c472595a68
// this.addOrUpdateHandle(id)
// this.addOrUpdateVisible = true
// this.disabled = false
@ -491,7 +493,6 @@ export default {
this.uuidTwo = this.uuid(13, 16)
this.uuidSnum = this.uuidOne + this.uuidTwo
this.uuidSnum = this.uuidSnum.replace(/\s+/g, '')
console.log('this.uuidOne', this.uuidSnum)
},
showDocument (val) {
//
@ -630,8 +631,12 @@ export default {
},
//
clear () {
<<<<<<< HEAD
this.$router.push(this.routePath)
=======
// this.$router.push(this.routePath)
console.log('清空----------------------------------------')
>>>>>>> 1e4d145fe03902c4ae099d8c968b93c472595a68
this.notFilled = []
this.showPutOnTheShelfFlag = false
this.showPutOnTheShelfFlag2 = false
@ -661,7 +666,7 @@ export default {
})
},
showPutOnTheShelfVue () {
this.routePath = this.$route.path
// this.routePath = this.$route.path
this.showPutOnTheShelfFlag = false
this.showPutOnTheShelfFlag2 = true
this.submitFrom.infoList[0].attrValue = this.radio
@ -670,7 +675,6 @@ export default {
)[0].children
},
changeInfoList (obj) {
console.log(obj, this.submitFrom)
this.submitFrom.infoList = this.submitFrom.infoList.filter(
(item) => item.attrType !== obj.attrType
)
@ -694,14 +698,12 @@ export default {
},
//
deleteCompletely (row) {
console.log('完全删除===', row)
this.$confirm('确认是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.post('/resource/delResBySuAd?id=' + row.id).then(res => {
console.log('删除结果', res.data)
if (res.data.code == 0) {
this.$message({
type: 'success',
@ -718,7 +720,6 @@ export default {
})
},
submitData () {
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
const arr = []
this.putOnTheShelfList.map((item) => {
item.children.map((child) => {
@ -728,6 +729,7 @@ export default {
child.name === '应用场景' ||
child.name === '功能介绍'
) {
arr.push(child.name)
if (
this.submitFrom.infoList.filter(
@ -827,6 +829,7 @@ export default {
}
})
})
this.submitFrom.infoList = this.submitFrom.infoList.sort(
(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)) {
this.notFilled.push('组件地址')
}
console.log(this.submitFrom, this.notFilled, '表单验证')
if (this.notFilled.length > 0) {
this.$message({
message: '请填写必填字段!',
@ -889,8 +891,6 @@ export default {
val.attrValue = this.radio
}
})
console.log('编辑===============>', this.submitFrom)
console.log(this.submitFrom.infoList, '===============abc')
//
const newArr = this.submitFrom.infoList.filter(
(element, index, self) => {
@ -914,7 +914,6 @@ export default {
})
.catch(() => {})
} else {
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
this.$http
.post('/resource/insert?source= b', this.submitFrom)
.then(({ data: res }) => {

View File

@ -271,7 +271,7 @@ export default {
insertList: [],
putOnTheShelfList: [],
showPutOnTheShelfFlag2: false,
routePath: '',
// routePath: '',
submitFrom: {
type: '应用资源',
deptId: '',
@ -595,7 +595,7 @@ export default {
},
//
clear () {
this.$router.push(this.routePath)
// this.$router.push(this.routePath)
this.notFilled = []
this.showPutOnTheShelfFlag2 = false
this.insertList = []
@ -617,7 +617,7 @@ export default {
},
//
showPutOnTheShelf () {
this.routePath = this.$route.path
// this.routePath = this.$route.path
this.showPutOnTheShelfFlag2 = true
this.$http.get('/category/getCategoryTree').then(res => {
this.insertList = res.data.data.filter(item => item.name === '应用资源')[0]

View File

@ -215,6 +215,7 @@
</el-card>
</template>
<script>
import bus from '@/views/bus.js'
import Cookies from 'js-cookie'
export default {
data () {
@ -248,6 +249,13 @@ export default {
roomNameA: ''
}
},
created () {
bus.$off('roomExamineAdminInit')
bus.$on('roomExamineAdminInit', () => {
this.getSerach()
bus.$emit('updateTaskNum')
})
},
mounted () {
this.getSerach()
},

View File

@ -34,7 +34,7 @@ export default {
tip: String,
maxCount: Number,
data: Array,
list: Array,
list: Object ,
emitFlag: String,
busType: Number
},
@ -46,13 +46,13 @@ export default {
},
methods: {
handleExceed (file) {
console.log(file)
},
handError (err, file, fileList) {
console.log(err, file, fileList)
},
handlePreview (file) {
console.log(file)
if (file.response) {
window.open(
window.SITE_CONFIG.previewUrl +
@ -74,7 +74,7 @@ export default {
message: file.name + '上传成功',
type: 'success'
})
console.log(file, fileList)
this.$emit('changeInfoList', {
attrType: this.title,
attrValue: file.response.data,
@ -91,7 +91,7 @@ export default {
}
},
handleRemove (file) {
console.log(file, '删除', this.title)
this.$emit('changeInfoList', {
attrType: this.title,
attrValue: '',
@ -104,7 +104,7 @@ export default {
if (this.list.note1) {
this.fileList.push({ name: this.list.note2 || '--', url: this.list.note1 })
}
console.log('上传组件===================>', this.list, this.fileList)
}
}
</script>

View File

@ -26,7 +26,7 @@ js:
:placeholder="'请选择' + name">
<el-option
:value="itemSelect.dictLabel"
v-for="(itemSelect, indexSelect) in options"
v-for="(itemSelect, indexSelect) in optionsCopy"
:key="indexSelect">
{{ itemSelect.dictLabel }}
</el-option>
@ -38,9 +38,9 @@ js:
filterable
placeholder="请输入关键词"
@change="changeIiem(name,data.note1)"
:loading="loading">
>
<el-option
v-for="(itemSelect) in options"
v-for="(itemSelect) in optionsCopy"
:key="itemSelect.id"
:label="itemSelect.name"
:value="itemSelect.id">
@ -56,7 +56,7 @@ js:
>
<el-option
:value="itemSelect.dictLabel"
v-for="(itemSelect, indexSelect) in options"
v-for="(itemSelect, indexSelect) in optionsCopy"
:key="indexSelect">
{{ itemSelect.dictLabel }}
</el-option>
@ -66,7 +66,7 @@ js:
v-else-if="type === 'checkBox'"
>
<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>
</div>
<!-- 不可点的input框 -->
@ -96,7 +96,7 @@ export default {
},
props: {
type: String,
data: Array,
data: Object,
name: String,
value: String,
changeField: Array,
@ -107,6 +107,7 @@ export default {
},
data () {
return {
optionsCopy:[],
//
valueCheckBox: [],
//
@ -133,7 +134,7 @@ export default {
res.data.list.forEach((element) => {
dataList.push(element)
})
this.options = dataList
this.optionsCopy = dataList
})
.catch(() => {})
} else if (this.data.name === '归属部门' || this.data.name === '所属产品线') {
@ -142,10 +143,9 @@ export default {
res.data.data.forEach((element) => {
dataList.push(element)
})
this.options = dataList
this.optionsCopy = dataList
if (!this.data.note1) {
this.$http.get('/sys/user/info').then(({ data: res }) => {
console.log(res.data)
this.data.note1 = res.data.deptId
})
}
@ -159,7 +159,6 @@ export default {
// this.options = dataList
if (this.data.note1 == null) {
this.$http.get('/sys/user/info').then(({ data: res }) => {
console.log(res.data)
this.data.note1 = res.data.realName || ''
})
}
@ -173,11 +172,12 @@ export default {
// this.options = dataList
if (this.data.note1 == null) {
this.$http.get('/sys/user/info').then(({ data: res }) => {
console.log(res.data)
this.data.note1 = res.data.mobile || ''
})
}
// })
}else{
this.optionsCopy=this.options
}
},
chekBoxChange (list) {
@ -199,7 +199,6 @@ export default {
},
showTypeClick (e) {
this.showType = e
console.log(e)
this.$emit('show-type', this.showType)
}
},

View File

@ -19,10 +19,7 @@
<span>{{ attr.name }}</span>
<span v-if="attr.type === 'image'">
<!-- <a-image :width="85" :height="60" :src="val.img" /> -->
<el-image
style="width: 85px; height: 60px"
:src="val.img"
:preview-src-list="[val.img]">
<el-image style="width: 85px; height: 60px" :src="val.img" :preview-src-list="[val.img]">
</el-image>
</span>
<span v-else>{{ val[attr.field] + (attr.company || '') }}</span>
@ -41,11 +38,7 @@
<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;"
/>
<a-input v-model:value="val.note1" :placeholder="'请填写' + val.name" style="width: 570px;" />
<span style="width: 2.5rem; padding-left: 0.1rem">
{{
numType == '一次性买断'
@ -64,10 +57,11 @@
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"/>
<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>
<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>
@ -76,6 +70,7 @@
</div>
</template>
<script>
import { deepClone } from '@/utils/form-generator'
import upload from '@/views/modules/ability/upload.vue'
// import upload from '@/views/modules/components/upload'
export default {
@ -87,8 +82,37 @@ export default {
configure: 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() {
return {
limit: 1,
data: [],
showKey: 0,
numType: '一次性买断'
@ -96,7 +120,6 @@ export default {
},
methods: {
add(title, addFlag, submitFlag) {
console.log(title, addFlag, submitFlag)
const list = this.configure.list
let flag = true
list.forEach((item) => {
@ -187,12 +210,10 @@ export default {
})
},
radioChange(e) {
console.log(e, 'wewewe')
this.numType = e.target.value
}
},
created() {
console.log('特殊处理=============>', this.showData)
if (this.configure.name === '计费标准信息' || this.configure.name === '常见问题') {
if (this.showData.children[0].note1) {
this.data = JSON.parse(this.showData.children[0].note1)
@ -229,6 +250,7 @@ export default {
.bottom {
margin-top: 25px;
margin-bottom: 25px;
.items {
background: #fafafa;
padding: 10px;
@ -266,6 +288,7 @@ export default {
margin-right: 5px;
margin-bottom: 1px;
}
.delImg {
cursor: pointer;
display: inline-block;
@ -340,6 +363,7 @@ export default {
}
}
}
::v-deep .el-image__preview {
width: 100%;
height: 100%;
@ -395,15 +419,18 @@ export default {
justify-content: space-between;
align-items: center;
}
::v-deep .ant-input-number {
width: 200px;
}
::v-deep .ant-transfer-list-header-title {
font-size: 16px;
color: #303133;
font-weight: 400;
text-align: left;
}
textarea {
height: 100px;
resize: none;

View File

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

View File

@ -89,9 +89,6 @@ export default {
},
(res) => {
// if (res.data.code !== 0) {
// return
// }
if (res.data.data && res.data.data.length > 0) {
this.data = res.data.data[0].values
this.data.map((item) => {
@ -108,8 +105,8 @@ export default {
}
} else {
this.trendChartData = {
xaxis: [],
ydata: []
xaxis: this.ydata,
ydata:this.xaxis
}
}
@ -118,7 +115,7 @@ export default {
})
},
(err) => {
console.log('err', err)
}
)
},

View File

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

View File

@ -456,7 +456,7 @@
:maxCount="1"
:data="item"
:list="props.videoList"
tip="支持视频类型大小不超过100M"
tip="支持视频类型mp4、mp3、mpeg大小不超过100M"
></upload>
<!-- <a-button

View File

@ -557,8 +557,6 @@
height: 3rem;
display: flex;
position: fixed;
bottom: 1.56rem;
right: 0rem;
z-index: 10;
flex-direction: column;
justify-content: space-between;
@ -615,4 +613,22 @@
background-size: 140% 126%;
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>