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

This commit is contained in:
gongjiale 2022-12-26 09:29:48 +08:00
commit 359115ccf8
21 changed files with 1765 additions and 1451 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

View File

@ -47,20 +47,31 @@ export default {
} }
}, },
// 获取流程定义的表单路由配置信息 // 获取流程定义的表单路由配置信息
getProcDefRouteSet (data, callback) { getProcDefRouteSet (data, callback, str) {
this.$http.get(`/act/process/getProcDefBizRoute/${data.processDefinitionId}`).then(({ data: res }) => { if (data.resourceName && !data.processDefinitionId) {
if (res.code !== 0) { switch (str) {
return this.$message.error(res.msg) case '待办':
this.$router.push({ name: 'activiti-RoomExamineAdmin' })
break
case '已办':
this.$router.push({ name: 'activiti-RoomExamineAdminDone' })
break
} }
if (!res.data || !res.data.bizRoute) { } else {
return this.$message.error(this.$t('process.routeError')) this.$http.get(`/act/process/getProcDefBizRoute/${data.processDefinitionId}`).then(({ data: res }) => {
} if (res.code !== 0) {
var param = { return this.$message.error(res.msg)
...data, }
...res.data if (!res.data || !res.data.bizRoute) {
} return this.$message.error(this.$t('process.routeError'))
callback(param) }
}).catch(() => { }) var param = {
...data,
...res.data
}
callback(param)
}).catch(() => { })
}
}, },
getProcDefBizRouteAndProcessInstance (params, callback) { getProcDefBizRouteAndProcessInstance (params, callback) {
this.$http.get('/act/process/getProcDefBizRouteAndProcessInstance', { this.$http.get('/act/process/getProcDefBizRouteAndProcessInstance', {

View File

@ -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: '',
@ -300,7 +301,9 @@ export default {
infoList: [], infoList: [],
delFlag: 0, delFlag: 0,
type: '组件服务', type: '组件服务',
name: '' name: '',
deptIds: [],
region: true
}, },
// qp: false, // qp: false,
// //
@ -326,7 +329,7 @@ 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) 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
}) })
}, },
@ -391,7 +394,9 @@ export default {
infoList: [], infoList: [],
delFlag: 0, delFlag: 0,
type: '组件服务', type: '组件服务',
name: '' name: '',
deptIds: [],
region: true
} }
) )
.then(({ data: res }) => { .then(({ data: res }) => {
@ -546,7 +551,9 @@ export default {
infoList: [], infoList: [],
delFlag: 0, delFlag: 0,
type: '组件服务', type: '组件服务',
name: names name: names,
deptIds: [],
region: true
} }
) )
.then(({ data: res }) => { .then(({ data: res }) => {
@ -623,6 +630,7 @@ export default {
}, },
// //
clear () { clear () {
this.$router.push(this.routePath)
console.log('清空----------------------------------------') console.log('清空----------------------------------------')
this.notFilled = [] this.notFilled = []
this.showPutOnTheShelfFlag = false this.showPutOnTheShelfFlag = false
@ -653,6 +661,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

View File

@ -217,8 +217,8 @@
: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>
<el-button type="primary" @click="submitData"> </el-button> <el-button type="primary" @click="submitData"> </el-button>
@ -260,7 +260,8 @@ export default {
creator: '', creator: '',
selectType: 0, selectType: 0,
delFlag: 0, delFlag: 0,
type: '应用资源' type: '应用资源',
region: true
}, },
qp: false, qp: false,
relateApplicationResourceVisible: false, relateApplicationResourceVisible: false,
@ -270,6 +271,7 @@ export default {
insertList: [], insertList: [],
putOnTheShelfList: [], putOnTheShelfList: [],
showPutOnTheShelfFlag2: false, showPutOnTheShelfFlag2: false,
routePath: '',
submitFrom: { submitFrom: {
type: '应用资源', type: '应用资源',
deptId: '', deptId: '',
@ -319,7 +321,8 @@ export default {
delFlag: 0, delFlag: 0,
creator: '', creator: '',
type: '应用资源', type: '应用资源',
name: '' name: '',
region: true
}) })
) )
.then(({ data: res }) => { .then(({ data: res }) => {
@ -405,7 +408,8 @@ export default {
creator: '', creator: '',
selectType: 0, selectType: 0,
delFlag: 0, delFlag: 0,
name: names name: names,
region: true
}) })
) )
.then(({ data: res }) => { .then(({ data: res }) => {
@ -591,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 = []
@ -612,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]

View File

@ -181,6 +181,7 @@
<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="count" label="总计" min-width="100%"> <el-table-column prop="count" 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' }"
@ -206,6 +207,7 @@
<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="count" label="总计" min-width="100%"> <el-table-column prop="count" label="总计" min-width="100%">
<el-table-column prop="count" label="总计" min-width="100%">
</el-table-column> </el-table-column>
</el-table> </el-table>
<!--明细表--> <!--明细表-->
@ -277,7 +279,7 @@ export default {
provideSelects: [], provideSelects: [],
departmentSelects: [], departmentSelects: [],
departmentSelects1: [], departmentSelects1: [],
provideSelects1:[], provideSelects1: [],
exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/census/center/export', exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/census/center/export',
exportExcelCondition: '', exportExcelCondition: '',
exportExcelType: '', exportExcelType: '',
@ -468,7 +470,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 +478,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 +507,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 = []
@ -517,7 +515,33 @@ 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
@ -530,7 +554,6 @@ export default {
}) })
} }
}) })
}, },
// 使-使 // 使-使
getSecondTree (page) { getSecondTree (page) {
@ -578,8 +601,8 @@ export default {
endDate: this.endDate, endDate: this.endDate,
resourceName: this.resourceName resourceName: this.resourceName
}) })
} }
}) })
}, },
// //
@ -653,28 +676,26 @@ 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 this.total = res.data.data.total
this.total = res.data.data.total this.exportExcelCondition = qs.stringify({
this.exportExcelCondition = qs.stringify({ approveStatus: this.status,
approveStatus: this.status, deptId: this.abilityDepartment,
deptId: this.abilityDepartment, startDate: this.startDate,
startDate: this.startDate, endDate: this.endDate,
endDate: this.endDate, resourceName: this.resourceName
resourceName: this.resourceName })
}) }
}
}) })
}, },
// 使 // 使
getTwoDetail (page) { getTwoDetail (page) {
var passAndReview = '' // "" var passAndReview = '' // ""
if (this.examineStatus == '-1') { if (this.examineStatus == '-1') {
this.status = '' this.status = ''
@ -704,31 +725,27 @@ 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 this.total = res.data.data.total
this.total = res.data.data.total this.exportExcelCondition = qs.stringify({
this.exportExcelCondition = qs.stringify({ approveStatus: this.status,
approveStatus: this.status, deptId: this.abilityDepartment,
deptId: this.abilityDepartment, startDate: this.startDate,
startDate: this.startDate, endDate: this.endDate,
endDate: this.endDate, resourceName: this.resourceName,
resourceName: this.resourceName, 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) {
@ -757,8 +774,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
@ -826,8 +841,8 @@ export default {
}, },
// ////////// // //////////
goToDetail () { goToDetail () {
this.abilityDepartment='' this.abilityDepartment = ''
this.provideDepartment='' this.provideDepartment = ''
this.currentPage = 1 this.currentPage = 1
this.pageSize = 10 this.pageSize = 10
@ -843,8 +858,8 @@ export default {
}, },
// //
goToBack () { goToBack () {
this.abilityDepartment='' this.abilityDepartment = ''
this.provideDepartment='' this.provideDepartment = ''
this.checked = false this.checked = false
this.currentPage = 1, this.currentPage = 1,

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-27 11:27:22 * @Date: 2022-06-27 11:27:22
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-12-06 10:18:28 * @LastEditTime: 2022-12-15 10:28:03
* @Description: 能力申请 * @Description: 能力申请
--> -->
<template> <template>
@ -83,11 +83,22 @@
<!-- <el-table-column prop="businessKey" :label="$t('process.businessKey')" header-align="center" align="center"></el-table-column> <!-- <el-table-column prop="businessKey" :label="$t('process.businessKey')" header-align="center" align="center"></el-table-column>
<el-table-column prop="processInstanceId" :label="$t('running.id')" header-align="center" align="center"></el-table-column> --> <el-table-column prop="processInstanceId" :label="$t('running.id')" header-align="center" align="center"></el-table-column> -->
<el-table-column <el-table-column
label="当前审核人"
header-align="center"
align="center"
>
<template slot-scope="scope">
<span>{{
scope.row.assigneeName + (scope.row.synergism ? '('+scope.row.auditTeamName+')':'')
}}</span>
</template>
</el-table-column>
<!-- <el-table-column
prop="processDefinitionName" prop="processDefinitionName"
:label="$t('process.processDefinitionName')" :label="$t('process.processDefinitionName')"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column> -->
<el-table-column <el-table-column
prop="taskName" prop="taskName"
:label="$t('process.taskName')" :label="$t('process.taskName')"

View File

@ -81,12 +81,11 @@ js:
<!-- <el-radio-group v-model:value="data.note1" v-else-if="type == 'radio'"> <!-- <el-radio-group v-model:value="data.note1" v-else-if="type == 'radio'">
<el-radio v-for="item in options" :label="item.dictLabel" :key="item.dictLabel">{{item.dictLabel}}</el-radio> <el-radio v-for="item in options" :label="item.dictLabel" :key="item.dictLabel">{{item.dictLabel}}</el-radio>
</el-radio-group> --> </el-radio-group> -->
<a-textarea v-else-if="type == 'textArea'" @change="changeIiem(name,data.note1)" v-model:value="data.note1" :showCount="true" :maxlength="200" :placeholder="'请填写' + name" /> <a-textarea v-else-if="type == 'textArea'" @change="changeIiem(name,data.note1)" v-model:value="data.note1" :showCount="true" :maxlength="200" :placeholder="'请填写' + name" />
<div class="block" v-else-if="type == 'date'"> <div class="block" v-else-if="type == 'date'">
<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>

View File

@ -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>
@ -28,7 +28,9 @@
<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>
@ -171,6 +173,19 @@ 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') console.log(e, 'wewewe')
this.numType = e.target.value this.numType = e.target.value
@ -242,12 +257,21 @@ 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;
} }

View File

@ -1,61 +1,68 @@
<!-- <!--
* @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-20 09:50:01
* @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 v-for='child in parent.children' :key='child.id'> <a-anchor>
<template v-if='judgmentType.filter(item => item.name==child.name).length === 0'> <a-anchor-link v-for="parent in putOnTheShelfList" :key="parent.id+'left'" :href="'#'+parent.name" :title="parent.name" />
<div class="top">{{child.name}}</div> </a-anchor>
<div v-for="item in child.children" :key="item.id" class='item' v-show="(item.name != '来源应用' && item.name != '关联组件信息' && item.name != '技术文档') && !( </div>
(showTypeName == '调用接口' && item.name == '平台地址') || <div class="right">
(showTypeName == '调用接口' && item.name == 'SDK安装包') || <div v-for="parent in putOnTheShelfList" :key='parent.id' :id="parent.name">
(showTypeName == '平台对接' && item.name == 'SDK安装包') || <div v-for='child in parent.children' :key='child.id'>
(showTypeName == '平台对接' && item.name == '接口请求方式') || <template v-if='judgmentType.filter(item => item.name==child.name).length === 0'>
(showTypeName == '平台对接' && item.name == '服务接口') || <div class="top">{{child.name}}</div>
(showTypeName == 'SDK' && item.name == '平台地址') || <div v-for="item in child.children" :key="item.id" class='item' v-show="(item.name != '来源应用' && item.name != '关联组件信息' && item.name != '技术文档') && !(
(showTypeName == 'SDK' && item.name == '接口请求方式') || (showTypeName == '调用接口' && item.name == '平台地址') ||
(showTypeName == 'SDK' && item.name == '服务接口') (showTypeName == '调用接口' && item.name == 'SDK安装包') ||
)"> (showTypeName == '平台对接' && item.name == 'SDK安装包') ||
<div class="box"> (showTypeName == '平台对接' && item.name == '接口请求方式') ||
<div> (showTypeName == '平台对接' && item.name == '服务接口') ||
<span class="required" v-if="required.indexOf(item.name) > -1">*</span> (showTypeName == 'SDK' && item.name == '平台地址') ||
{{ item.name }} (showTypeName == 'SDK' && item.name == '接口请求方式') ||
(showTypeName == 'SDK' && item.name == '服务接口')
)">
<div class="box">
<div>
<span class="required" v-if="required.indexOf(item.name) > -1">*</span>
{{ item.name }}
</div>
<!-- <upload :list="[]" v-if="item.type == 'image'" type="图片" btnName="上传图片" :maxCount="1" :data="item"
tip="支持图片类型大小不超过100M"></upload> -->
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.jpg,.jpeg,.png' :list="item" v-if="item.type == 'image'" type="图片" btnName="上传图片" :maxCount="1"
:dataList="item" tip="支持文件类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx' :list="item" v-else-if="item.type == 'file' && item.name !== '使用手册'" type="文件" btnName="上传附件" :maxCount="1"
:dataList="item" tip="支持文件类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx' :list="item" v-else-if="item.name == '使用手册'" type="文件" btnName="上传附件" :maxCount="1" :dataList="item" :busType="2"
tip="支持文件类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.mp4' :list="item" v-else-if="item.type == 'video'" type="视频" btnName="上传视频" :maxCount="1" :dataList="item"
tip="支持视频类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.zip' :list="item" v-else-if="item.type == 'package' &&item.name != '上传附件'" type="安装包" btnName="上传安装包" :maxCount="1" :dataList="item"
tip="支持.zip类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx,.zip' :list="item" v-else-if="item.name == '上传附件'" type="附件" btnName="上传附件" :maxCount="1" :dataList="item"
tip="支持.doc,.docx,.zip,.ppt,.pdf类型大小不超过100M"></upload>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'AbilityType'" type="disabled" :data="item" :name="item.name" :value="typeInput"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'ComponentType'" type="disabled" :data="item" :name="item.name" :value="type"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'input'" type="input" :data="item" :name="item.name"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'select'" type="select" :data="item" :name="item.name" :options="item.options" @show-type="showType"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'checkBox'" type="checkBox" :data="item" :name="item.name" :options="item.options"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'radio'" type="radio" :data="item" :name="item.name" :options="item.options"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'textArea'" type="textArea" :data="item" :name="item.name"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'date'" type="date" :data="item" :name="item.name"></input-select-checkbox>
</div> </div>
<!-- <upload :list="[]" v-if="item.type == 'image'" type="图片" btnName="上传图片" :maxCount="1" :data="item" <div class="requiredTips" v-show="notFilled.indexOf(item.name) > -1 && (item.type=='input' || item.type=='textArea') && changeField.indexOf(item.name) == -1">请填写{{item.name}}</div>
tip="支持图片类型大小不超过100M"></upload> --> <div class="requiredTips" v-show="notFilled.indexOf(item.name) > -1 && (item.type=='select' || item.type=='checkBox' || item.type=='radio') && changeField.indexOf(item.name) == -1">请选择{{item.name}}</div>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.jpg,.jpeg,.png' :list="item" v-if="item.type == 'image'" type="图片" btnName="上传图片" :maxCount="1" </div>
:dataList="item" tip="支持文件类型大小不超过100M"></upload> </template>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx' :list="item" v-else-if="item.type == 'file' && item.name !== '使用手册'" type="文件" btnName="上传附件" :maxCount="1" <template v-else>
:dataList="item" tip="支持文件类型大小不超过100M"></upload> <special @submitData="submitData" ref="specialRef" :configure='judgmentType.filter(item => item.name==child.name)[0]' :showData='child' @changeInfoList='changeInfoList'></special>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx' :list="item" v-else-if="item.name == '使用手册'" type="文件" btnName="上传附件" :maxCount="1" :dataList="item" :busType="2" </template>
tip="支持文件类型大小不超过100M"></upload> </div>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.mp4' :list="item" v-else-if="item.type == 'video'" type="视频" btnName="上传视频" :maxCount="1" :dataList="item"
tip="支持视频类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.zip' :list="item" v-else-if="item.type == 'package' &&item.name != '上传附件'" type="安装包" btnName="上传安装包" :maxCount="1" :dataList="item"
tip="支持.zip类型大小不超过100M"></upload>
<upload @changeInfoList='changeInfoList' :title='item.name' accept='.pdf,.ppt,.xlsx,.doc,.docx,.zip' :list="item" v-else-if="item.name == '上传附件'" type="附件" btnName="上传附件" :maxCount="1" :dataList="item"
tip="支持.doc,.docx,.zip,.ppt,.pdf类型大小不超过100M"></upload>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'AbilityType'" type="disabled" :data="item" :name="item.name" :value="typeInput"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'ComponentType'" type="disabled" :data="item" :name="item.name" :value="type"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'input'" type="input" :data="item" :name="item.name"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'select'" type="select" :data="item" :name="item.name" :options="item.options" @show-type="showType"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'checkBox'" type="checkBox" :data="item" :name="item.name" :options="item.options"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'radio'" type="radio" :data="item" :name="item.name" :options="item.options"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'textArea'" type="textArea" :data="item" :name="item.name"></input-select-checkbox>
<input-select-checkbox :changeField='changeField' :list="[]" v-else-if="item.type == 'date'" type="date" :data="item" :name="item.name"></input-select-checkbox>
</div>
<div class="requiredTips" v-show="notFilled.indexOf(item.name) > -1 && (item.type=='input' || item.type=='textArea') && changeField.indexOf(item.name) == -1">请填写{{item.name}}</div>
<div class="requiredTips" v-show="notFilled.indexOf(item.name) > -1 && (item.type=='select' || item.type=='checkBox' || item.type=='radio') && changeField.indexOf(item.name) == -1">请选择{{item.name}}</div>
</div>
</template>
<template v-else>
<special @submitData="submitData" ref="specialRef" :configure='judgmentType.filter(item => item.name==child.name)[0]' :showData='child' @changeInfoList='changeInfoList'></special>
</template>
</div> </div>
</div> </div>
</div> </div>
@ -241,13 +248,23 @@ export default {
</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;
overflow-y: scroll; .left {
} margin-right: 50px;
.put-on-the-shelf::-webkit-scrollbar { }
width: 0; .right {
height: 500px;
overflow-y: scroll;
}
.right::-webkit-scrollbar {
width: 0;
}
} }
// .put-on-the-shelf::-webkit-scrollbar {
// width: 0;
// }
.top { .top {
color: #333333; color: #333333;

View File

@ -129,9 +129,9 @@ export default {
data.taskName = name data.taskName = name
data.activityId = data.startUserId data.activityId = data.startUserId
if (nameSwitch === '待办') { if (nameSwitch === '待办') {
this.getProcDefRouteSet(item, this.forwardHandleUrl) this.getProcDefRouteSet(item, this.forwardHandleUrl, '待办')
} else { } else {
this.getProcDefRouteSet(item, this.forwardDetail) this.getProcDefRouteSet(item, this.forwardDetail, '已办')
} }
}, },
formatNum (num) { formatNum (num) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -159,7 +159,9 @@
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
" "
@click="downloadFile(formName.enclosure, '申请附件')" @click="
downloadFile(formName.enclosure, formName.enclosureName)
"
> >
下载 下载
</button> </button>
@ -362,6 +364,7 @@
xhr.responseType = 'blob' xhr.responseType = 'blob'
xhr.send() xhr.send()
xhr.onload = function () { xhr.onload = function () {
console.log('下载', path, this.status, navigator)
if (this.status === 200 || this.status === 304) { if (this.status === 200 || this.status === 304) {
// IE10downloadmsSaveOrOpenBlobIE10msSaveOrOpenBlob // IE10downloadmsSaveOrOpenBlobIE10msSaveOrOpenBlob
if ('msSaveOrOpenBlob' in navigator) { if ('msSaveOrOpenBlob' in navigator) {
@ -379,6 +382,8 @@
a.click() a.click()
document.body.removeChild(a) document.body.removeChild(a)
URL.revokeObjectURL(url) URL.revokeObjectURL(url)
} else {
message.warning('下载失败')
} }
} }
} }

View File

@ -8,13 +8,13 @@
<div class="bottom"> <div class="bottom">
<div class="item" v-for="item in productServiceData" :key="item.id"> <div class="item" v-for="item in productServiceData" :key="item.id">
<div class="img" :class="item.imgType"></div> <div class="img" :class="item.imgType"></div>
<a-tooltip > <a-tooltip>
<template #title>{{ item.name }}</template> <template #title>{{ item.name }}</template>
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
</a-tooltip> </a-tooltip>
<div class="dec"> <div class="dec">
<span>{{ item.deptName }}</span> <span>{{ item.deptName }}</span>
</div> </div>
<div class="text"> <div class="text">
{{ item.description || '暂无描述' }} {{ item.description || '暂无描述' }}
</div> </div>
@ -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>
@ -177,15 +185,15 @@
word-break: break-all; word-break: break-all;
} }
.dec { .dec {
margin: 8px 8px; margin: 8px 8px;
text-align: center; text-align: center;
padding-right: 10px; padding-right: 10px;
color: #0058e1; color: #0058e1;
span { span {
background: rgba(0, 88, 225, 0.1); background: rgba(0, 88, 225, 0.1);
padding: 5px 5px; padding: 5px 5px;
}
} }
}
.text { .text {
width: 100%; width: 100%;
height: 0.9rem; height: 0.9rem;

View File

@ -48,11 +48,10 @@
<div class="dec"> <div class="dec">
<span>{{ item.deptName }}</span> <span>{{ item.deptName }}</span>
</div> </div>
<a-tooltip > <a-tooltip>
<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>
@ -65,302 +64,312 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import { pageWithAttrs } from '@/api/home.js' import { pageWithAttrs } from '@/api/home.js'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js' import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
const store = useStore() const store = useStore()
const router = useRouter() const router = useRouter()
const select = ref('申请量') const select = ref('申请量')
const selList = ref(['申请量', '收藏量']) const selList = ref(['申请量', '收藏量'])
const list = ref([]) const list = ref([])
const paramsGetResources = { const paramsGetResources = {
districtId: '', districtId: '',
pageNum: 1, pageNum: 1,
pageSize: 6, pageSize: 6,
type: '应用资源', type: '应用资源',
name: '', name: '',
infoList: [], infoList: [],
orderField: 'applyCount', // total visits applyCount score collectCount orderField: 'applyCount', // total visits applyCount score collectCount
orderType: 'DESC', // ASC DESC orderType: 'DESC', // ASC DESC
} }
const selectChange = (sel) => { const selectChange = (sel) => {
select.value = sel select.value = sel
switch (select.value) { switch (select.value) {
case '浏览量': case '浏览量':
paramsGetResources.orderField = 'visits' paramsGetResources.orderField = 'visits'
break break
case '申请量': case '申请量':
paramsGetResources.orderField = 'applyCount' paramsGetResources.orderField = 'applyCount'
break break
case '收藏量': case '收藏量':
paramsGetResources.orderField = 'collectCount' paramsGetResources.orderField = 'collectCount'
break break
default: default:
paramsGetResources.orderField = 'total' paramsGetResources.orderField = 'total'
break break
}
getList()
}
const getList = () => {
pageWithAttrs(paramsGetResources).then((res) => {
console.log('查询列表============>', res.data.data.records)
res.data.data.records.forEach((val) => {
switch (val.type) {
case '组件服务':
val.imgType = 'zj'
break
case '应用资源':
val.imgType = 'yy'
break
case '基础设施':
val.imgType = 'jc'
break
case '数据资源':
val.imgType = 'sj'
break
case '知识库':
val.imgType = 'zs'
break
default:
val.imgType = 'zj'
break
}
})
list.value = res.data.data.records
})
} }
getList() getList()
}
const getList = () => {
pageWithAttrs(paramsGetResources).then((res) => {
console.log('查询列表============>', res.data.data.records)
res.data.data.records.forEach((val) => {
switch (val.type) {
case '组件服务':
val.imgType = 'zj'
break
case '应用资源':
val.imgType = 'yy'
break
case '基础设施':
val.imgType = 'jc'
break
case '数据资源':
val.imgType = 'sj'
break
case '知识库':
val.imgType = 'zs'
break
default:
val.imgType = 'zj'
break
}
})
list.value = res.data.data.records
})
}
getList()
function jumpPage() { function jumpPage() {
// store // store
store.commit('home/selectCardsData', { store.commit('home/selectCardsData', {
selectCardsnum: '组件服务', selectCardsnum: '组件服务',
}) })
console.log('选中===================>', store.getters['home/selectCardsnum']) console.log(
router.push({ '选中===================>',
path: '/DetailsPageconetent', store.getters['home/selectCardsnum']
query: { )
// select: '', router.push({
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB, path: '/DetailsPageconetent',
orderField:paramsGetResources.orderField // query: {
}, // select: '',
}) select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
} orderField: paramsGetResources.orderField, //
const selectOne = (id) => { },
console.log('点击===============》', id) })
router.push({ }
path: '/details', const selectOne = (id) => {
query: { console.log('点击===============》', id)
id: id, // router.push({
}, // path: '/details',
}) // query: {
} // id: id,
// },
// })
const detailPage = router.resolve({
path: '/details', //
query: {
id: id,
hiddenBackFlag: true,
},
})
window.open(detailPage.href, '_blank')
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.popular-ability { .popular-ability {
height: 6.8rem; height: 6.8rem;
background: url('~@/assets/newHome/popular-bg.png') no-repeat; background: url('~@/assets/newHome/popular-bg.png') no-repeat;
background-size: 100%; background-size: 100%;
display: flex;
justify-content: center;
.main {
width: 13rem;
margin-top: 0.78rem;
display: flex; display: flex;
flex-direction: column; justify-content: center;
flex-wrap: wrap; .main {
.top { width: 13rem;
font-size: 0.3rem; margin-top: 0.78rem;
color: #fff;
text-align: center;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; .top {
align-items: center; font-size: 0.3rem;
.line { color: #fff;
width: 0.34rem; text-align: center;
height: 0.03rem;
background-color: #fff;
margin-top: 0.08rem;
}
}
.bottom {
display: flex;
justify-content: space-between;
margin-top: 0.52rem;
.left {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: wrap; flex-wrap: wrap;
.select { justify-content: center;
cursor: pointer; align-items: center;
.line {
width: 0.34rem;
height: 0.03rem;
background-color: #fff;
margin-top: 0.08rem;
}
}
.bottom {
display: flex;
justify-content: space-between;
margin-top: 0.52rem;
.left {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; .select {
justify-content: center; cursor: pointer;
width: 1.05rem;
height: 2.1rem;
background: rgba(255, 255, 255, 0.08);
margin-bottom: 0.01rem;
border-right: 0.02rem solid rgba(233, 233, 233, 0.3);
.img {
width: 0.36rem;
height: 0.36rem;
background-size: 100%;
}
.fwl {
background: url('~@/assets/newHome/fwl-no.png') no-repeat;
background-size: contain;
}
.sgl {
background: url('~@/assets/newHome/sgl-no.png') no-repeat;
background-size: contain;
}
.scl {
background: url('~@/assets/newHome/scl-no.png') no-repeat;
background-size: contain;
}
.text {
color: rgba(255, 255, 255, 0.6);
font-size: 0.14rem;
}
}
.select:hover {
background: rgba(255, 255, 255, 0.12);
}
.checked {
background: rgba(255, 255, 255, 0.18) !important;
border-right: 0.02rem solid #fff;
}
}
.right {
cursor: pointer;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
margin-left: 0.2rem;
.item {
width: 3.78rem;
height: 2rem;
display: flex;
.item-left {
width: 0.83rem;
height: 100%;
display: flex; display: flex;
justify-content: center; flex-direction: column;
flex-wrap: wrap;
align-items: center; align-items: center;
background: #eef1f8; justify-content: center;
width: 1.05rem;
height: 2.1rem;
background: rgba(255, 255, 255, 0.08);
margin-bottom: 0.01rem;
border-right: 0.02rem solid rgba(233, 233, 233, 0.3);
.img { .img {
width: 0.56rem; width: 0.36rem;
height: 0.56rem; height: 0.36rem;
background-size: 100%; background-size: 100%;
} }
.zj { .fwl {
background: url('~@/assets/newHome/popular-zj.png') no-repeat; background: url('~@/assets/newHome/fwl-no.png') no-repeat;
background-size: contain; background-size: contain;
} }
.yy { .sgl {
background: url('~@/assets/newHome/popular-yy.png') no-repeat; background: url('~@/assets/newHome/sgl-no.png') no-repeat;
background-size: contain; background-size: contain;
} }
.jc { .scl {
background: url('~@/assets/newHome/popular-jc.png') no-repeat; background: url('~@/assets/newHome/scl-no.png') no-repeat;
background-size: contain; background-size: contain;
} }
.sj {
background: url('~@/assets/newHome/popular-sj.png') no-repeat;
background-size: contain;
}
.zs {
background: url('~@/assets/newHome/popular-zs.png') no-repeat;
background-size: contain;
}
}
.item-right {
width: 100%;
height: 100%;
background: #fff;
.fw {
width: 100%;
padding-right: 0.1rem;
padding-top: 0.03rem;
text-align: right;
color: 666;
font-size: 0.14rem;
color: #666;
}
.name {
font-size: 0.18rem;
color: #212121;
text-align: center;
margin-top: 0.05rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.dec {
margin: 8px 8px;
text-align: center;
padding-right: 10px;
color: #0058e1;
span {
background: rgba(0, 88, 225, 0.1);
padding: 5px 5px;
}
}
.text { .text {
width: 100%; color: rgba(255, 255, 255, 0.6);
padding: 0rem 0.03rem;
font-size: 0.14rem; font-size: 0.14rem;
color: #212121;
line-height: 0.24rem;
height: 1rem;
word-break: break-all;
overflow: hidden;
} }
} }
.select:hover {
background: rgba(255, 255, 255, 0.12);
}
.checked {
background: rgba(255, 255, 255, 0.18) !important;
border-right: 0.02rem solid #fff;
}
} }
.item:nth-of-type(4), .right {
.item:nth-of-type(5), cursor: pointer;
.item:nth-of-type(6) { display: flex;
margin-top: 0.2rem; justify-content: space-between;
} flex-wrap: wrap;
.item:hover { margin-left: 0.2rem;
border-radius: 0.02rem; .item {
border: 0.01rem solid #0058e1; width: 3.78rem;
box-shadow: 0rem 0.08rem 0.2rem rgba(0, 88, 225, 0.3); height: 2rem;
display: flex;
.item-left {
width: 0.83rem;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background: #eef1f8;
.img {
width: 0.56rem;
height: 0.56rem;
background-size: 100%;
}
.zj {
background: url('~@/assets/newHome/popular-zj.png') no-repeat;
background-size: contain;
}
.yy {
background: url('~@/assets/newHome/popular-yy.png') no-repeat;
background-size: contain;
}
.jc {
background: url('~@/assets/newHome/popular-jc.png') no-repeat;
background-size: contain;
}
.sj {
background: url('~@/assets/newHome/popular-sj.png') no-repeat;
background-size: contain;
}
.zs {
background: url('~@/assets/newHome/popular-zs.png') no-repeat;
background-size: contain;
}
}
.item-right {
width: 100%;
height: 100%;
background: #fff;
.fw {
width: 100%;
padding-right: 0.1rem;
padding-top: 0.03rem;
text-align: right;
color: 666;
font-size: 0.14rem;
color: #666;
}
.name {
font-size: 0.18rem;
color: #212121;
text-align: center;
margin-top: 0.05rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.dec {
margin: 8px 8px;
text-align: center;
padding-right: 10px;
color: #0058e1;
span {
background: rgba(0, 88, 225, 0.1);
padding: 5px 5px;
}
}
.text {
width: 100%;
padding: 0rem 0.03rem;
font-size: 0.14rem;
color: #212121;
line-height: 0.24rem;
height: 1rem;
word-break: break-all;
overflow: hidden;
}
}
}
.item:nth-of-type(4),
.item:nth-of-type(5),
.item:nth-of-type(6) {
margin-top: 0.2rem;
}
.item:hover {
border-radius: 0.02rem;
border: 0.01rem solid #0058e1;
box-shadow: 0rem 0.08rem 0.2rem rgba(0, 88, 225, 0.3);
}
} }
} }
} .bottom-btn {
.bottom-btn { cursor: pointer;
cursor: pointer; text-align: center;
text-align: center; margin-top: 0.24rem;
margin-top: 0.24rem; color: #fff;
color: #fff; width: 1rem;
width: 1rem; height: 0.24rem;
height: 0.24rem; line-height: 0.24rem;
line-height: 0.24rem; margin-left: 6rem;
margin-left: 6rem; span {
span { display: inline-block;
display: inline-block; width: 0.1rem;
width: 0.1rem; height: 0.1rem;
height: 0.1rem; background: url('~@/assets/newHome/gd.png') no-repeat;
background: url('~@/assets/newHome/gd.png') no-repeat; background-size: contain;
background-size: contain; }
}
.bottom-btn:hover {
background: rgba(0, 88, 225, 0.1);
} }
}
.bottom-btn:hover {
background: rgba(0, 88, 225, 0.1);
} }
} }
}
</style> </style>

View File

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

View File

@ -536,6 +536,8 @@
a.click() a.click()
document.body.removeChild(a) document.body.removeChild(a)
URL.revokeObjectURL(url) URL.revokeObjectURL(url)
} else {
message.warning('下载失败')
} }
} }
} }

View File

@ -157,6 +157,8 @@
a.click() a.click()
document.body.removeChild(a) document.body.removeChild(a)
URL.revokeObjectURL(url) URL.revokeObjectURL(url)
} else {
message.warning('下载失败')
} }
} }
} }

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: 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
<span>{{ item.attrType + '' + item.attrValue }}</span> v-for="item in props.refObj.dto.infoList"
</p> :key="item.attrType"
>
<p v-if="arr.indexOf(item.attrType) === -1">
<span>{{ item.attrType + '' + item.attrValue }}</span>
</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;