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

This commit is contained in:
gaoyuanwei 2022-07-21 17:13:55 +08:00
commit 12f0bdc814
9 changed files with 612 additions and 42 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -0,0 +1,529 @@
<!-- 能力下架审批 -->
<template>
<div class="Ability-to-take-off-the-shelf-approval">
<div class="Ability-to-take-off-the-shelf-approval-title">能力下架审批</div>
<div class="basic-information">
<div class="basic-information-title">
<span></span><span>基本信息</span>
</div>
<div class="basic-information-content">
<p>
<span class="text">
能力申请标题<span> {{ dataForm.name || '--' }}</span></span
>
<span class="text"
>下架单号<span>{{ dataForm.applyNumber || '--' }}</span></span
>
</p>
<p>
<span class="text"
>申请人<span>
{{ dataForm.undercarriageUserName || '--' }}</span
></span
>
<span class="text"
>电话<span>{{ dataForm.deptPhone || '--' }}</span></span
>
<span class="text"
>单位<span>{{ dataForm.deptName || deptName }}</span></span
>
</p>
<p v-if="dataForm.enclosure" class="accessory">
<span>
申请附件<span>
{{ dataForm.enclosure || '--'
}}<button @click="downloadFile2(dataForm.enclosure)">
预览
</button></span
></span
>
</p>
</div>
</div>
<div class="Ability-to-apply-for">
<div class="Ability-to-apply-for-title">
<span></span><span>申请能力</span>
</div>
<div class="Ability-to-apply-for-content">
<div class="data-list">
<div class="data-list-left"></div>
<div class="data-list-right">
<div class="data-list-right-titleAndDescription">
<div class="data-list-right-title">
<div class="title-left">
<span>{{ dataForm.name }}</span>
<span>{{ dataForm.type }}</span>
</div>
<div class="title-right">
<span>能力使用状态</span>
<span v-if="dataList.total > 0">正在被使用</span>
<span v-else>未使用</span>
</div>
</div>
<div class="data-list-right-description">
{{ dataForm.name }}{{ dataForm.description }}
</div>
</div>
<div class="data-list-right-table">
<div class="data-list-right-table-title">
正在使用应用数{{ dataList.total }}
</div>
<div class="data-list-right-table-list">
<div class="data-list-right-table-list-tab">
<span
v-for="(item, index) in datalistrighttablelist"
:key="`data-list-right-table-list-tab-${index}`"
>
{{ item }}
</span>
</div>
<div
class="data-list-right-table-list-content"
v-if="dataList.total > 0"
>
<div
v-for="(item, index) in dataList.list"
:key="`data-list-right-table-list-content-${index}`"
>
<span>{{ item.applicationSystem }}</span>
<span>{{ item.unit }}</span>
<span>{{ item.user }}</span>
<span>{{ item.phone }}</span>
</div>
</div>
<div v-else class="zanwu">暂无数据</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="agreeOr">
<div>
<!-- <el-radio-group v-model="agreeOrList" style="width:230px;">
<el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button>
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
</el-radio-group> -->
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')"
>拒绝</el-button
>
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
<el-button class="inputBule" @click="agreeOrNot">提交</el-button> -->
</div>
</div>
<!-- 流程详情 -->
<ren-process-detail></ren-process-detail>
<el-dialog
title="审批意见"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose2"> </el-button>
<el-button
type="primary"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
> </el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
//
import processModule from '@/mixins/process-module'
import RenProcessDetail from '@/components/ren-process-detail/src/ren-process-detail'
import debounce from 'lodash/debounce'
import qs from 'qs'
export default {
components: { RenProcessDetail },
props: {},
mixins: [processModule],
data () {
return {
dialogVisible: false,
dialogType: '',
input: '',
visible: true,
showKey: 0,
dataForm: [],
deptName: '',
dataList: {},
datalistrighttablelist: [
'赋能应用名称',
'应用归属部门',
'部门联系人',
'联系人电话'
]
}
},
watch: {},
computed: {},
methods: {
init () {
this.getInfo(this.$router.currentRoute.params.businessKey)
},
getInfo (id) {
this.$http.get('/resource/' + id).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
console.log('this.dataForm', res.data)
this.dataForm = res.data
this.deptIdQuery()
this.AbilityToPullDownPages()
})
},
deptIdQuery () {
this.$http
.get(`/sys/dept/${this.dataForm.deptId}`)
.then(({ data: res }) => {
this.deptName = res.data.name
console.log('dataFrom', this.deptName)
})
},
AbilityToPullDownPages () {
this.$http
.get(
'/processForm/tabilityapplication/in_use_page?resourceId=' +
this.dataForm.id
)
.then((res) => {
this.dataList = res.data.data
})
},
showDialog (title) {
this.dialogVisible = true
this.dialogType = title
},
downloadFile2 (url) {
console.log(window.SITE_CONFIG.previewUrl)
window.open(
window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' +
btoa(encodeURI(url))
)
},
handleClose (done) {
this.$confirm('确认关闭?')
.then((_) => {
this.input = ''
done()
})
.catch((_) => {})
},
handleClose2 () {
this.dialogVisible = false
this.input = ''
},
// 退
agreeOrNot: debounce(
function (data) {
this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') {
console.log('this.dataForm', this.dataForm)
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
console.log(params)
this.$http
.post('/act/task/complete?' + params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res)
}
return
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.dialogVisible = false
if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
}
}
})
})
.catch(() => {})
} else if (this.dialogType === '拒绝') {
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
this.$http
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res)
}
return
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
}
}
})
})
}
this.tabRemoveHandle(data)
// this.getDataList(data)
},
1000,
{ leading: true, trailing: false }
),
tabRemoveHandle (tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') {
return false
}
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName
)
if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName =
this.$store.state.contentTabsActiveName = 'home'
return false
}
// tab
if (tabName === this.$store.state.contentTabsActiveName) {
const tab =
this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1
]
this.$router.push({
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
params: { ...tab.params },
query: { ...tab.query }
})
}
},
//
startProcessErrorCallback (data) {
console.log(data)
},
//
taskHandleErrorCallback (data) {}
},
created () {
this.init()
},
mounted () {}
}
</script>
<style lang="scss" scoped>
.Ability-to-take-off-the-shelf-approval {
background: #fff;
padding: 20px;
.Ability-to-take-off-the-shelf-approval-title {
font-weight: 600;
margin-bottom: 20px;
font-size: 18px;
}
.basic-information {
margin-left: 40px;
margin-bottom: 40px;
.basic-information-title {
display: flex;
align-items: center;
font-size: 16px;
margin-bottom: 10px;
span:first-child {
display: inline-block;
height: 20px;
width: 5px;
background: #0087ff;
margin-right: 5px;
}
}
.basic-information-content {
background: rgba(244, 245, 248, 0.8);
padding: 24px;
margin-left: 10px;
p {
width: 100%;
display: grid;
grid-template-columns: repeat(3, 33%);
color: #212121;
font-size: 14px;
span {
display: inline-block;
margin-left: 8px;
line-height: 32px;
span {
font-weight: bold;
}
}
.text {
width: 500px;
}
}
.accessory {
margin-top: 16px;
width: 100%;
span {
display: flex;
span {
padding: 0 12px;
height: 32px;
background: rgba(232, 234, 239, 1);
border-radius: 2px;
button {
background: unset;
border: 0;
color: #0558e1;
font-size: 14px;
}
}
}
}
}
}
.Ability-to-apply-for {
margin-left: 40px;
.Ability-to-apply-for-title {
display: flex;
align-items: center;
font-size: 16px;
margin-bottom: 10px;
border-bottom: 1px #dddee1 solid;
padding-bottom: 10px;
span:first-child {
display: inline-block;
height: 20px;
width: 5px;
background: #0087ff;
margin-right: 5px;
}
}
.Ability-to-apply-for-content {
.data-list {
display: flex;
border-bottom: 1px solid #dddee1;
margin-bottom: 10px;
.data-list-left {
width: 80px;
height: 110px;
background: url('~@/assets/img/Capabilitydiagram.png') no-repeat;
background-size: 80px 80px;
background-position: center;
margin-left: 10px;
padding-bottom: 30px;
}
.data-list-right {
width: calc(100% - 83px);
margin-left: 10px;
padding-bottom: 20px;
border-left: 1px solid #dddee1;
font-size: 18px;
color: #000000;
.data-list-right-titleAndDescription {
padding-left: 10px;
padding-right: 20px;
border-bottom: 1px solid #dddee1;
padding-bottom: 10px;
.data-list-right-title {
display: flex;
justify-content: space-between;
margin-bottom: 0.2rem;
.title-left {
span:first-child {
font-weight: 600;
}
span:last-child {
font-size: 14px;
display: inline-block;
margin-left: 8px;
padding: 0 5px;
border-radius: 30px;
background: #00b8e6;
color: #fff;
}
}
}
}
.data-list-right-description {
margin: 10px 0;
font-size: 16px;
}
.data-list-right-table {
.data-list-right-table-title {
margin-left: 10px;
margin-top: 20px;
margin-bottom: 20px;
font-size: 14px;
display: inline-block;
margin-left: 8px;
padding: 0 5px;
border-radius: 30px;
background: #00b8e6;
color: #fff;
}
.data-list-right-table-list {
padding: 0 5px;
.data-list-right-table-list-tab {
display: grid;
grid-template-columns: repeat(4, 25%);
background: rgba(191, 191, 191, 0.1);
span {
display: inline-block;
text-align: center;
padding: 5px 0;
}
}
.data-list-right-table-list-content {
& > div {
display: grid;
grid-template-columns: repeat(4, 25%);
span {
display: inline-block;
text-align: center;
padding: 5px 0;
}
}
div:nth-child(even) {
background: rgba(191, 191, 191, 0.1);
}
div:nth-child(odd) {
span {
padding: 20px 0;
}
}
}
.zanwu {
margin-top: 20px;
text-align: center;
}
}
}
}
}
}
}
.agreeOr {
& > div {
text-align: right;
padding-right: 40px;
margin: 20px 0;
}
}
}
</style>

View File

@ -234,7 +234,7 @@ export default {
comment: this.input comment: this.input
}) })
this.$http this.$http
.post('/act/task/backToFirst?', params) .post('/act/task/endProcess?', params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-29 15:59:51 * @Date: 2022-06-29 15:59:51
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-21 10:35:13 * @LastEditTime: 2022-07-21 16:41:09
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!-- 流程业务表单 --> <!-- 流程业务表单 -->
@ -349,7 +349,7 @@ export default {
comment: this.input comment: this.input
}) })
this.$http this.$http
.post('/act/task/backToFirst?', params) .post('/act/task/endProcess?', params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-05-06 11:12:00 * @Date: 2022-05-06 11:12:00
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-21 15:32:49 * @LastEditTime: 2022-07-21 17:09:10
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -16,7 +16,9 @@
import zhCN from 'ant-design-vue/es/locale/zh_CN' import zhCN from 'ant-design-vue/es/locale/zh_CN'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import { onBeforeUnmount } from 'vue' import { onBeforeUnmount } from 'vue'
import { useRouter } from 'vue-router'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const router = useRouter()
// export default { // export default {
// name: 'App', // name: 'App',
@ -37,6 +39,10 @@
ws.onmessage = function (e) { ws.onmessage = function (e) {
console.log('服务器返回的信息: ' + e.data) console.log('服务器返回的信息: ' + e.data)
mybus.emit('getMynotice') mybus.emit('getMynotice')
//
if (router.currentRoute.value.name === 'mynoticeView') {
mybus.emit('noticeListInit')
}
} }
onBeforeUnmount(() => { onBeforeUnmount(() => {
// 4., // 4.,

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-08 11:56:28 * @Date: 2022-06-08 11:56:28
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-19 15:02:23 * @LastEditTime: 2022-07-21 16:18:54
* @Description: 算法详情页头部 * @Description: 算法详情页头部
--> -->
<template> <template>
@ -44,14 +44,14 @@
</a-tooltip> </a-tooltip>
</div> </div>
<div class="bottom" v-if="props.dataList.id"> <div class="bottom" v-if="props.dataList.id">
<!-- <a-button type="primary" @click="toView()"> <a-button type="primary" @click="toView()">
<template #icon><form-outlined /></template> <template #icon><form-outlined /></template>
申请使用 申请使用
</a-button> </a-button>
<a-button type="primary" @click="addShoppingCart()"> <a-button type="primary" @click="addShoppingCart()">
<template #icon><shopping-cart-outlined /></template> <template #icon><shopping-cart-outlined /></template>
加入购物车 加入购物车
</a-button> --> </a-button>
<!-- 融合服务 存在fuseResourceList --> <!-- 融合服务 存在fuseResourceList -->
<a-button <a-button
type="primary" type="primary"
@ -75,11 +75,10 @@
// import { ShoppingCartOutlined } from '@ant-design/icons-vue' // import { ShoppingCartOutlined } from '@ant-design/icons-vue'
import { defineProps, ref, watch } from 'vue' import { defineProps, ref, watch } from 'vue'
import { scInsert, scDel } from '@/api/personalCenter' import { scInsert, scDel } from '@/api/personalCenter'
// import { sgcInsert } from '@/api/home' import { sgcInsert } from '@/api/home'
// import { useRouter } from 'vue-router'
// import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue'
// //
const router = useRouter() const router = useRouter()
@ -88,25 +87,23 @@
}) })
console.log('dataList------------>', props.dataList) console.log('dataList------------>', props.dataList)
// const router = useRouter()
const applicationArea = ref('') const applicationArea = ref('')
// // // //
// const addShoppingCart = () => { const addShoppingCart = () => {
// console.log('==================>', props.dataList) console.log('加入申购车==================>', props.dataList)
// sgcInsert({ sgcInsert({
// delFlag: '0', delFlag: '0',
// resourceId: props.dataList.id, resourceId: props.dataList.id,
// // userId: userId.value, // userId: userId.value,
// }).then((res) => { }).then((res) => {
// console.log(res) console.log(res)
// message.success('') message.success('添加申购车成功!')
// mybus.emit('getSgcNum') mybus.emit('getSgcNum')
// }) })
// } }
// // // //
// function toView() { function toView() {
// // window.open(newpage.href, '_blank') // window.open(newpage.href, '_blank')
// router.push({ // router.push({
// path: '/apply', // path: '/apply',
// query: { // query: {
@ -114,7 +111,31 @@
// resourceId: [props.dataList.id], // resourceId: [props.dataList.id],
// }, // },
// }) // })
// } console.log('一键申请===================>', props.dataList)
localStorage.setItem(
'applyList',
JSON.stringify([
{
arr: [
{
delFlag: props.dataList.delFlag,
description: props.dataList.description,
resourceId: props.dataList.id,
resourceName: props.dataList.name,
time: props.dataList.createDate,
type: props.dataList.type,
// componentType: '',
},
],
deptId: props.dataList.deptId,
deptName: props.dataList.deptName,
},
])
)
router.push({
path: '/apply',
})
}
// -- // --
const handleAKeyApplication = () => { const handleAKeyApplication = () => {
let _applyList = [] let _applyList = []
@ -149,7 +170,7 @@
console.log('收藏===================》', props.dataList) console.log('收藏===================》', props.dataList)
if (scFlag2.value) { if (scFlag2.value) {
scFlag2.value = false scFlag2.value = false
if (props.dataList.isCollect) { if (props.dataList.isCollect == 'true') {
scDel([props.dataList.id]).then((res) => { scDel([props.dataList.id]).then((res) => {
if (res.data.msg === 'success') { if (res.data.msg === 'success') {
message.success('取消成功') message.success('取消成功')

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-08 15:25:33 * @Date: 2022-06-08 15:25:33
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-14 11:30:52 * @LastEditTime: 2022-07-21 17:02:03
* @Description: 图层展示 视频播放 * @Description: 图层展示 视频播放
--> -->
<template> <template>
@ -78,4 +78,9 @@
} }
} }
} }
img {
width: 100%;
height: 100%;
object-fit: contain;
}
</style> </style>

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-21 11:55:07 * @Date: 2022-06-21 11:55:07
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-01 17:03:24 * @LastEditTime: 2022-07-21 17:05:11
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -111,7 +111,7 @@
</template> </template>
<script setup> <script setup>
// import { SearchOutlined } from '@ant-design/icons-vue' // import { SearchOutlined } from '@ant-design/icons-vue'
import { ref, reactive } from 'vue' import { ref, reactive, onBeforeUnmount } from 'vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import { mynotice, mynoticeRead } from '@/api/home' import { mynotice, mynoticeRead } from '@/api/home'
@ -283,6 +283,12 @@
} }
}) })
init() init()
mybus.on('noticeListInit', () => {
init()
})
onBeforeUnmount(() => {
mybus.off('noticeListInit')
})
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.notice-list { .notice-list {

View File

@ -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: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-21 14:58:34 * @LastEditTime: 2022-07-21 16:54:05
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -13,14 +13,17 @@
<p class="item"> <p class="item">
<span>申请标题{{ props.refObj.title }}</span> <span>申请标题{{ props.refObj.title }}</span>
<span>申请单号{{ props.refObj.applyNumber || '--' }}</span> <span>申请单号{{ props.refObj.applyNumber || '--' }}</span>
<span>应用系统{{ props.refObj.applicationSystem }}</span> <span v-if="props.refObj.applicationSystem">
应用系统{{ props.refObj.applicationSystem }}
</span>
<span v-else></span>
</p> </p>
<p class="item"> <p class="item">
<span>申请人信息{{ props.refObj.user }}</span> <span>申请人信息{{ props.refObj.user }}</span>
<span>电话{{ props.refObj.phone }}</span> <span>电话{{ props.refObj.phone }}</span>
<span>单位{{ props.refObj.unit }}</span> <span>单位{{ props.refObj.unit }}</span>
</p> </p>
<p> <p v-if="props.refObj.applicationScene.length > 0">
<span>应用场景{{ props.refObj.applicationScene.join('') }}</span> <span>应用场景{{ props.refObj.applicationScene.join('') }}</span>
</p> </p>
<p> <p>