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

This commit is contained in:
a0049873 2022-06-22 14:15:33 +08:00
commit b0c667eb00
27 changed files with 3270 additions and 731 deletions

3
.gitignore vendored
View File

@ -1,7 +1,4 @@
back/dist-西海岸-后台管理.zip
front/public/index.html
front/public/index.html
back/public/index.html
back/dist-西海岸-后台管理-带配置文件.zip
back/dist-市局-后台管理-带配置文件.zip
front/public/index.html

View File

@ -545,4 +545,19 @@ t.notice.new = '有新通知'
t.notice.disconnect = '连接断开'
t.notice.disconnectMessage = 'WebSocket连接已断开请检查网络'
t.projectList = {}
t.projectList.projectName='项目名称'
t.projectList.projectUnit='申请单位'
t.projectList.departm='责任处室'
t.projectList.date='申请日期'
t.projectList.district='所属区市'
t.projectList.contacts='业务联系人'
t.projectList.contactstel='业务联系人电话'
t.projectList.technology='技术联系人电话'
t.projectList.technologytel='技术联系人电话'
export default t

View File

@ -2,7 +2,7 @@ import Cookies from 'js-cookie'
import qs from 'qs'
import { deepClone } from '@/utils/form-generator/index'
export default {
data () {
data() {
/* eslint-disable */
return {
// 设置属性
@ -17,8 +17,8 @@ export default {
exportURL: '', // 导出接口API地址
requestCallback: null // 获取列表以后执行的回调
},
flag:false,
time:null,
flag: false,
time: null,
// 默认属性
dataForm: {
}, // 查询条件
@ -38,19 +38,19 @@ export default {
}
/* eslint-enable */
},
created () {
created() {
if (this.mixinViewModuleOptions.createdIsNeed) {
this.query()
}
},
activated () {
activated() {
if (this.mixinViewModuleOptions.activatedIsNeed) {
this.query()
}
},
methods: {
// 获取数据列表
query () {
query() {
this.dataListLoading = true
this.$http.get(
this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({
@ -118,11 +118,11 @@ export default {
})
},
// 多选
dataListSelectionChangeHandle (val) {
dataListSelectionChangeHandle(val) {
this.dataListSelections = val
},
// 排序
dataListSortChangeHandle (data) {
dataListSortChangeHandle(data) {
if (!data.order || !data.prop) {
this.order = ''
this.orderField = ''
@ -133,13 +133,13 @@ export default {
this.query()
},
// 分页, 每页条数
pageSizeChangeHandle (val) {
pageSizeChangeHandle(val) {
this.page = 1
this.limit = val
this.query()
},
// 分页, 当前页
pageCurrentChangeHandle (val) {
pageCurrentChangeHandle(val) {
this.page = val
this.query()
},
@ -148,7 +148,7 @@ export default {
this.query()
},
// 新增
addOrUpdateHandle (id) {
addOrUpdateHandle(id) {
this.addOrUpdateVisible = true
this.disabled = false
this.$nextTick(() => {
@ -159,7 +159,7 @@ export default {
},
// 组件服务新增
addOrUpdateHandleAI (id) {
addOrUpdateHandleAI(id) {
// const infoList = []
let showList = []
this.$http.get('category/getCategoryTree').then(({ data: res }) => {
@ -217,7 +217,7 @@ export default {
}, 100)
},
// 应用资源新增
addOrUpdateHandleServe (id) {
addOrUpdateHandleServe(id) {
// const infoList = []
let showList = []
this.$http.get('category/getCategoryTree').then(({ data: res }) => {
@ -275,7 +275,7 @@ export default {
}, 100)
},
// 修改
UpdateHandle (val) {
UpdateHandle(val) {
this.addOrUpdateVisible = true
this.disabled = false
const cloneVal = deepClone(val)
@ -300,7 +300,7 @@ export default {
})
},
// 关闭当前窗口
closeCurrentTab (data) {
closeCurrentTab(data) {
var tabName = this.$store.state.contentTabsActiveName
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName)
if (this.$store.state.contentTabs.length <= 0) {
@ -312,7 +312,7 @@ export default {
}
},
// 删除
deleteHandle (id) {
deleteHandle(id) {
if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) {
return this.$message({
message: this.$t('prompt.deleteBatch'),
@ -346,7 +346,7 @@ export default {
}).catch(() => { })
},
deleteHandle2 (id) {
deleteHandle2(id) {
console.log('删除========================》', id, this.dataListSelections)
const ids = []
if (id) {
@ -364,7 +364,7 @@ export default {
})
},
// 导出
exportHandle () {
exportHandle() {
var params = qs.stringify({
token: Cookies.get('ucsToken'),
...this.dataForm

View File

@ -2,7 +2,7 @@
* @Author: kongjun qdkongjun@gmail.com
* @Date: 2022-06-20 09:29:59
* @LastEditors: kongjun qdkongjun@gmail.com
* @LastEditTime: 2022-06-21 10:37:47
* @LastEditTime: 2022-06-22 10:04:56
* @FilePath: \back\src\views\main-sidebar.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@ -47,7 +47,19 @@ export default {
width: 266px;
.aui-sidebar__inner {
width: 260px;
overflow-y: hidden;
//overflow-y: hidden;
/*滚动条样式*/
&::-webkit-scrollbar {
width: 0px;
}
&::-webkit-scrollbar-thumb {
border-radius: 5;
background: rgba(0, 0, 0, 0.25);
}
&::-webkit-scrollbar-track {
border-radius: 0;
background: #f2f2f2;
}
.aui-sidebar__menu {
width: 266px;
}

View File

@ -136,8 +136,5 @@ export default {
<style scoped lang="scss">
.aui-content__wrapper {
margin-left: 266px;
.aui-content > .el-tabs > .el-tabs__header {
left: 230px;
}
}
</style>

View File

@ -1,10 +1,7 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-ability__bsabilityai">
<el-form
:inline="true"
:model="dataForm"
>
<el-form :inline="true" :model="dataForm">
<el-form-item>
<el-input
v-model="dataForm.name"
@ -13,7 +10,7 @@
></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList2(dataForm.name)">{{
<el-button type="primary" @click="getDataList2(dataForm.name)">{{
$t("query")
}}</el-button>
</el-form-item>
@ -49,7 +46,7 @@
:height="qp ? '650px' : '650px'"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;"
style="width: 100%"
>
<el-table-column
type="selection"
@ -71,9 +68,7 @@
align="center"
>
<template slot-scope="scope">
{{
findValue(scope.row.infoList, item.attrType)
}}
{{ findValue(scope.row.infoList, item.attrType) }}
</template>
</af-table-column>
<el-table-column
@ -129,187 +124,196 @@
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './bsabilityai-add-or-update'
import dictionaries from '@/utils/dictionaries'
import qs from 'qs'
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./bsabilityai-add-or-update";
import dictionaries from "@/utils/dictionaries";
import qs from "qs";
export default {
mixins: [mixinViewModule],
data () {
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/resource/page',
getDataListURL: "/resource/page",
getDataListIsPage: true,
exportURL: '/ability/bsabilityai/export',
deleteURL: '/resource/delete',
deleteIsBatch: true
exportURL: "/ability/bsabilityai/export",
deleteURL: "/resource/delete",
deleteIsBatch: true,
},
disabled: false,
sceneArr: dictionaries.sceneArr,
fieldArr: dictionaries.fieldArr,
shareFormArr: dictionaries.shareFormArr,
dataForm: {
name: '',
creator: '',
name: "",
creator: "",
delFlag: 0,
selectType: 0,
type: '组件服务'
type: "组件服务",
},
qp: false
}
qp: false,
};
},
watch: {},
components: {
AddOrUpdate
AddOrUpdate,
},
created () {
this.dataForm.name = ''
this.dataForm.type = '组件服务'
created() {
this.dataForm.name = "";
this.dataForm.type = "组件服务";
},
mounted () {
window.addEventListener('resize', this.a)
this.fullScreen()
mounted() {
window.addEventListener("resize", this.a);
this.fullScreen();
},
methods: {
reset () {
this.$http.get(
this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({
reset() {
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
"?" +
qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '',
page: 1,
limit: 10,
creator: '',
creator: "",
selectType: 0,
delFlag: 0,
type: '组件服务',
name: ''
type: "组件服务",
name: "",
})
)
.then(({ data: res }) => {
this.dataForm.name = ''
this.dataForm.name = "";
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
this.dataList = [];
this.total = 0;
return this.$message.error(res.msg);
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
? res.data.list
: res.data
: res.data;
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0
: 0;
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data)
this.mixinViewModuleOptions.requestCallback(res.data);
}
this.dataListLoading = false
this.dataListLoading = false;
})
.catch(() => {
this.dataListLoading = false
})
this.dataListLoading = false;
});
},
findValue (list, type) {
const found = list.find(item => item.attrType === type)
findValue(list, type) {
const found = list.find((item) => item.attrType === type);
if (found) {
return found.attrValue
return found.attrValue;
} else {
return '暂无数据'
return "暂无数据";
}
},
showDetail (val) {
showDetail(val) {
// this.addOrUpdateHandle(id)
this.addOrUpdateVisible = true
this.disabled = false
console.log('显示数据=============》', val)
this.addOrUpdateVisible = true;
this.disabled = false;
console.log("显示数据=============》", val);
this.$nextTick(() => {
this.$refs.addOrUpdate.UpdateState = false
this.$refs.addOrUpdate.dataFormShowDetails = val
this.$refs.addOrUpdate.init()
})
this.disabled = true
this.$refs.addOrUpdate.UpdateState = false;
this.$refs.addOrUpdate.dataFormShowDetails = val;
this.$refs.addOrUpdate.init();
});
this.disabled = true;
},
showDocument (val) {
console.log(val)
window.open(window.SITE_CONFIG.frontUrl + '?id=' + val.id + '&&type=' + val.type, '_blank')
showDocument(val) {
console.log(val);
window.open(
window.SITE_CONFIG.frontUrl + "?id=" + val.id + "&&type=" + val.type,
"_blank"
);
},
getDataList2 (names) {
getDataList2(names) {
if (names != null) {
this.$http.get(
this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
"?" +
qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '',
pageNum: 1,
pageSize: this.limit,
type: '组件服务',
creator: '',
type: "组件服务",
creator: "",
selectType: 0,
delFlag: 0,
name: names
name: names,
})
)
.then(({ data: res }) => {
console.log('res', res)
console.log("res", res);
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
this.dataList = [];
this.total = 0;
return this.$message.error(res.msg);
}
if (res.data.list.length !== 0) {
this.dataList = res.data.list
this.dataList = res.data.list;
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0
: 0;
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data)
this.mixinViewModuleOptions.requestCallback(res.data);
}
this.dataListLoading = false
this.dataListLoading = false;
} else {
this.$message.error('未查询到相关信息')
this.reset()
this.$message.error("未查询到相关信息");
this.reset();
}
})
.catch(() => {
this.dataListLoading = false
})
this.dataListLoading = false;
});
} else {
this.$message.error('查询信息不能为空')
this.$message.error("查询信息不能为空");
}
},
fullScreen () {
fullScreen() {
if (window.outerHeight === screen.availHeight) {
if (window.outerWidth === screen.availWidth) {
console.log(
'全屏1',
"全屏1",
window.outerHeight,
screen.availHeight,
window.outerWidth,
screen.availWidth
)
this.qp = false
);
this.qp = false;
} else {
console.log(
'不是全屏2',
"不是全屏2",
window.outerHeight,
screen.availHeight,
window.outerWidth,
screen.availWidth
)
this.qp = true
);
this.qp = true;
}
} else {
console.log(
'不是全屏3',
"不是全屏3",
window.outerHeight,
screen.availHeight,
window.outerWidth,
screen.availWidth
)
this.qp = true
);
this.qp = true;
}
}
}
}
},
},
};
</script>
<style lang="scss" scoped>
.el-tooltip__popper {

View File

@ -0,0 +1,86 @@
<!-- 数据资源目录编制 /bscatalogue/dataResources -->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-pay__order">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.orderId" :placeholder="$t('order.orderId')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.userId" :placeholder="$t('order.userId')" clearable></el-input>
</el-form-item>
<el-form-item>
<ren-select v-model="dataForm.status" dict-type="order_status" :placeholder="$t('order.status')"></ren-select>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="orderId" :label="$t('order.orderId')" header-align="center" align="center"></el-table-column>
<el-table-column prop="productName" :label="$t('order.productName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="payAmount" :label="$t('order.payAmount')" header-align="center" align="center"></el-table-column>
<el-table-column prop="status" :label="$t('order.status')" header-align="center" align="center">
<template slot-scope="scope">
{{ $getDictLabel("order_status", scope.row.status) }}
</template>
</el-table-column>
<el-table-column prop="payAt" :label="$t('order.payAt')" header-align="center" align="center"></el-table-column>
<el-table-column prop="createDate" :label="$t('order.createDate')" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="payHandle(scope.row.orderId)">{{ $t('order.pay') }}</el-button>
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<!-- <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> -->
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
// import AddOrUpdate from './order-add-or-update'
import {addDynamicRoute} from "@/router";
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/pay/order/page',
getDataListIsPage: true,
deleteURL: '/pay/order',
deleteIsBatch: true
},
dataForm: {
orderId: '',
status: '',
userId: ''
}
}
},
components: {
// AddOrUpdate
},
methods: {
payHandle (orderId) {
window.open(`${window.SITE_CONFIG['apiURL']}/pay/alipay/webPay?orderId=` + orderId);
}
}
}
</script>

View File

@ -0,0 +1,86 @@
<!-- 基础设施目录编制 /bscatalogue/infrastructure -->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-pay__order">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.orderId" :placeholder="$t('order.orderId')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.userId" :placeholder="$t('order.userId')" clearable></el-input>
</el-form-item>
<el-form-item>
<ren-select v-model="dataForm.status" dict-type="order_status" :placeholder="$t('order.status')"></ren-select>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="orderId" :label="$t('order.orderId')" header-align="center" align="center"></el-table-column>
<el-table-column prop="productName" :label="$t('order.productName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="payAmount" :label="$t('order.payAmount')" header-align="center" align="center"></el-table-column>
<el-table-column prop="status" :label="$t('order.status')" header-align="center" align="center">
<template slot-scope="scope">
{{ $getDictLabel("order_status", scope.row.status) }}
</template>
</el-table-column>
<el-table-column prop="payAt" :label="$t('order.payAt')" header-align="center" align="center"></el-table-column>
<el-table-column prop="createDate" :label="$t('order.createDate')" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="payHandle(scope.row.orderId)">{{ $t('order.pay') }}</el-button>
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<!-- <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> -->
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
// import AddOrUpdate from './order-add-or-update'
import {addDynamicRoute} from "@/router";
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/pay/order/page',
getDataListIsPage: true,
deleteURL: '/pay/order',
deleteIsBatch: true
},
dataForm: {
orderId: '',
status: '',
userId: ''
}
}
},
components: {
// AddOrUpdate
},
methods: {
payHandle (orderId) {
window.open(`${window.SITE_CONFIG['apiURL']}/pay/alipay/webPay?orderId=` + orderId);
}
}
}
</script>

View File

@ -0,0 +1,515 @@
<template>
<div>
<el-dialog
:visible.sync="visible"
:title="disabled ? '能力展示' : '挂接'"
@close="guanbi"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<!-- 挂载和修改-->
<div key="1" v-if="!disabled">
<!-- 挂接 -->
<el-form v-if="!UpdateState" ref="dataForm" :model="dataForm">
<el-form-item
v-for="(item, index) in dataList"
:key="index"
:label="item.attrType"
>
<el-input
v-model="dataForm.name"
v-if="item.type == 'name'"
></el-input>
<el-input
v-model="dataForm.apiUrl"
v-if="item.type == 'link'"
></el-input>
<el-input
type="textarea"
v-model="item.attrValue"
v-if="item.type == 'textarea'"
></el-input>
<el-select
v-if="item.type == 'select'"
v-model="item.attrValue"
placeholder="请选择活动区域"
>
<el-option
:label="itemSelect"
v-for="(itemSelect, indexSelect) in item.children"
:key="indexSelect"
:value="itemSelect"
></el-option>
</el-select>
<upload
:child="dataForm"
limit="1"
accept=".jpg,.png"
v-if="item.type == 'photo'"
></upload>
</el-form-item>
</el-form>
<!-- 修改 -->
<el-form
v-else
:model="dataFormUpdate"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
>
<el-form-item label="场景名称">
<el-input
v-model="dataFormUpdate.name"
placeholder="场景名称"
></el-input>
</el-form-item>
<el-form-item label="场景url">
<el-input
v-model="dataFormUpdate.apiUrl"
placeholder="场景url"
></el-input>
</el-form-item>
<el-form-item
v-for="item in dataFormUpdate.infoList"
:key="item.index"
:label="item.attrType"
>
<el-input
v-model="item.attrValue"
:placeholder="item.attrType"
v-if="item.attrType != '应用领域'"
></el-input>
<el-select
v-else
v-model="item.attrValue"
:placeholder="item.attrType"
>
<el-option
:value="item2"
v-for="(item2, index2) in dataList[2].children"
:key="index2"
:label="item2"
></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<!-- 展示 -->
<el-form key="2" class="detial-form" v-else>
<el-form-item label="场景名称" prop="name">
{{ dataFormShowDetails.name || "--" }}
</el-form-item>
<el-form-item label="场景url" prop="name">
{{ dataFormShowDetails.apiUrl || "--" }}
</el-form-item>
<el-form-item
v-for="item in dataFormShowDetails.infoList"
:key="item.index"
:label="item.attrType"
:prop="item.attrValue"
>
{{ item.attrValue || "--" }}
</el-form-item>
</el-form>
<template slot="footer" v-if="true">
<el-button @click="visible = false">{{ $t("cancel") }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{
$t("confirm")
}}</el-button>
</template>
</el-dialog>
<div>
<el-dialog :visible.sync="dialogVisibleImg">
<img width="100%" :src="previewImg" />
</el-dialog>
</div>
</div>
</template>
<script>
import debounce from "lodash/debounce";
import dictionaries from "@/utils/dictionaries";
import { mapState } from "vuex";
import { getIconList } from "@/utils";
import Cookies from "js-cookie";
import upload from "./upload.vue";
import qs from "qs";
export default {
components: {
upload,
},
data() {
return {
checkList: [],
dialogVisibleImg: false,
previewImg: "", //
dialogVisible: false,
fileUploadUrl: window.SITE_CONFIG.apiURL + "/upload",
uploadUrl:
window.SITE_CONFIG.apiURL +
"/sys/oss/upload?token=" +
Cookies.get("ucsToken"),
companyArr: dictionaries.companyArr,
visible: false,
sceneArr: dictionaries.sceneArr,
fieldArr: dictionaries.fieldArr,
shareFormArr: dictionaries.shareFormArr,
shareTypeArr: dictionaries.shareTypeArr,
iconList: [],
iconListVisible: false,
UpdateState: false,
dataForm: {
id: "",
deptId: "",
deptContacts: "",
deptPhone: "",
dataVolume: "",
shareCondition: "",
shareType: "",
shareMode: "",
delFlag: 0,
description: "",
downloads: 0,
image: "",
infoList: [],
link: "",
name: "",
note1: "",
note2: "",
note3: "",
note4: "",
note5: "",
score: "",
type: "赋能案例",
apiMethodType: "",
apiUrl: "",
visits: 0,
},
deptId: "",
fangwendizhi: "",
mingzi: "",
dataFormUpdate: {},
dataFormShowDetails: {},
infoList2: [],
infoList3: [],
dataList: [
{ attrType: "场景名称", attrValue: "", type: "name" },
{
attrType: "图片",
attrValue: "",
type: "photo",
child: { node1: "" },
},
{
attrType: "应用领域",
attrValue: "",
type: "select",
children: [],
},
{ attrType: "场景url", attrValue: "", type: "link" },
{ attrType: "案例背景", attrValue: "", type: "textarea" },
{ attrType: "业务挑战", attrValue: "", type: "textarea" },
{ attrType: "解决方案", attrValue: "", type: "textarea" },
{ attrType: "案例成效", attrValue: "", type: "textarea" },
],
};
},
props: {
disabled: {
type: Boolean,
default: false,
},
},
methods: {
//
getUserInfo() {
this.$http.get("/sys/user/info").then(({ data: res }) => {
this.dataForm.deptId = res.data.deptId;
this.deptId = res.data.deptId;
console.log("depid", this.dataForm);
});
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
//
uploadBeforeUploadHandle(file) {
if (
file.type !== "image/jpg" &&
file.type !== "image/jpeg" &&
file.type !== "image/png" &&
file.type !== "image/gif"
) {
this.$message.error("只支持jpg、png、gif格式的图片");
return false;
}
},
imgUploadSuccess(res, file, fileList) {
console.log("zzzzzzz", res, file, fileList);
if (res.code !== 0) {
return this.$message.error(res.msg);
}
},
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs.dataForm && this.$refs.dataForm.resetFields();
this.iconList = getIconList();
if (this.dataForm.id) {
this.getInfo();
}
});
},
// ,
iconListCurrentChangeHandle(icon) {
this.dataForm.imgurl = icon;
this.iconListVisible = false;
},
//
getInfo() {
const params = {
page: 1,
limit: 99,
dictTypeId: "1513712507692818433",
};
debugger;
this.$http
.get("/sys/dict/data/page" + "?" + qs.stringify(params))
.then(({ data: res }) => {
res.data.list.map((item) => {
this.dataList[2].children.push(item.dictLabel);
});
});
},
//
dataFormSubmitHandle: debounce(
function () {
this.$refs.dataForm.validate((valid) => {
this.getUserInfo();
this.dataForm.deptId = this.deptId;
console.log("表单数据=======================》", this.dataForm);
if (!this.UpdateState) {
this.dataList.map((item) => {
if (item.attrType != "场景名称" && item.attrType != "场景url") {
if (item.attrType == "图片" && this.dataForm.note1) {
const params = {
attrType: item.attrType,
attrValue: this.dataForm.note1,
delFlag: 0,
};
this.dataForm.infoList.push(params);
} else if (item.attrType != "图片" && item.attrValue) {
const params = {
attrType: item.attrType,
attrValue: item.attrValue,
delFlag: 0,
};
this.dataForm.infoList.push(params);
}
}
});
this.$http
.post("/resource/insert?source= b", this.dataForm)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
} else {
this.$http
.put("/resource/update", this.dataFormUpdate)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
}
});
},
1000,
{ leading: true, trailing: false }
),
},
watch: {
visible: {
immediate: true,
deep: true,
handler() {
this.dataForm = {
id: "",
deptId: "",
deptContacts: "",
deptPhone: "",
dataVolume: "",
shareCondition: "",
shareType: "",
shareMode: "",
delFlag: 0,
description: "",
downloads: 0,
image: "",
infoList: [],
link: "",
name: "",
note1: "",
note2: "",
note3: "",
note4: "",
note5: "",
score: "",
type: "赋能案例",
apiMethodType: "",
apiUrl: "",
visits: 0,
};
this.dataList = [
{ attrType: "场景名称", attrValue: "", type: "name" },
{
attrType: "图片",
attrValue: "",
type: "photo",
child: { node1: "" },
},
{
attrType: "应用领域",
attrValue: "",
type: "select",
children: [],
},
{ attrType: "场景url", attrValue: "", type: "link" },
{ attrType: "案例背景", attrValue: "", type: "textarea" },
{ attrType: "业务挑战", attrValue: "", type: "textarea" },
{ attrType: "解决方案", attrValue: "", type: "textarea" },
{ attrType: "案例成效", attrValue: "", type: "textarea" },
];
this.getInfo();
this.getUserInfo();
},
},
},
mounted() {
this.getInfo();
this.getUserInfo();
},
beforeDestroy() {
console.log("销毁~~~~~~~~~~~~~~~~~~~~");
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-form-item__content {
width: 90%;
}
::v-deep .el-dialog__body {
height: 580px;
overflow: auto;
}
.icon-input ::v-deep .el-input__inner {
cursor: pointer;
}
::v-deep .upload-demo {
width: 800px;
}
::v-deep .el-form-item {
margin-bottom: 30px;
width: 100%;
line-height: 32px;
display: flex;
}
::v-deep .el-form-item__label {
line-height: 32px;
width: 120px;
margin-right: 20px;
text-align: center;
}
::v-deep textarea {
width: 800px;
}
::v-deep .el-form-item__content {
line-height: 32px;
}
::v-deep .el-input {
width: 800px;
}
::v-deep .el-checkbox-button__inner {
width: 130px;
margin: 0 10px 5px;
border-left: unset !important;
border-radius: unset !important;
border: 1px solid #dcdfe6 !important;
}
</style>
<style lang="scss">
.canassigncase-add-or-update {
position: relative;
}
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
.submit-father {
position: absolute;
}
.previewImg {
position: fixed;
z-index: 9999;
}
</style>

View File

@ -0,0 +1,327 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-ability__bsabilityai">
<el-form :inline="true" :model="dataForm">
<el-form-item>
<el-input
v-model="dataForm.name"
placeholder="名称"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList2(dataForm.name)">{{
$t("query")
}}</el-button>
</el-form-item>
<el-form-item>
<el-button type="info" @click="exportHandle()">{{
$t("export")
}}</el-button>
</el-form-item>
<el-form-item>
<el-button
v-if="$hasPermission('ability:bsabilityai:save')"
type="primary"
@click="addOrUpdateHandleServe()"
>挂接</el-button
>
</el-form-item>
<el-form-item>
<el-button
v-if="$hasPermission('ability:bsabilityai:delete')"
type="danger"
@click="deleteHandle2()"
>{{ $t("deleteBatch") }}</el-button
>
</el-form-item>
<el-form-item>
<el-button @click="reset">重置</el-button>
</el-form-item>
</el-form>
<el-table
v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%"
:height="qp ? '810px' : '650px'"
>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="name"
label="场景名称"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="apiUrl"
label="场景url"
header-align="center"
align="center"
></el-table-column>
<el-table-column
v-for="(item, index) in dataList[0].infoList"
:key="index"
:label="item.attrType"
header-align="center"
align="center"
show-overflow-tooltip="true"
>
<template slot-scope="scope">
{{ findValue(scope.row.infoList, item.attrType) }}
</template>
</el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="94"
right="0"
>
<template slot-scope="scope">
<el-button
v-if="$hasPermission('ability:bsabilityai:update')"
type="text"
size="small"
@click="UpdateHandle(scope.row)"
>{{ $t("update") }}</el-button
>
<el-button
v-if="$hasPermission('ability:bsabilityai:delete')"
type="text"
size="small"
@click="deleteHandle2(scope.row.id)"
>{{ $t("delete") }}</el-button
>
<el-button type="text" size="small" @click="showDetail(scope.row)"
>展示</el-button
>
<el-button type="text" size="small" @click="showDocument(scope.row)"
>开发文档</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="Number(total)"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update
:disabled="disabled"
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./canassigncase-add-or-update";
import dictionaries from "@/utils/dictionaries";
import qs from "qs";
import { type } from "os";
export default {
mixins: [mixinViewModule],
data() {
return {
mixinViewModuleOptions: {
getDataListURL: "/resource/page",
getDataListIsPage: true,
exportURL: "/ability/bsabilityai/export",
deleteURL: "/resource/delete",
deleteIsBatch: true,
},
disabled: false,
sceneArr: dictionaries.sceneArr,
fieldArr: dictionaries.fieldArr,
shareFormArr: dictionaries.shareFormArr,
dataForm: {
name: "",
creator: "",
selectType: 0,
delFlag: 0,
type: "赋能案例",
},
qp: false,
};
},
watch: {},
components: {
AddOrUpdate,
},
created() {
this.dataForm.name = "";
this.dataForm.type = "赋能案例";
},
mounted() {
window.addEventListener("resize", this.a);
this.fullScreen();
},
methods: {
reset() {
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
"?" +
qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '',
page: 1,
selectType: 0,
limit: 10,
delFlag: 0,
creator: "",
type: "赋能案例",
name: "",
})
)
.then(({ data: res }) => {
this.dataForm.name = "";
if (res.code !== 0) {
this.dataList = [];
this.total = 0;
return this.$message.error(res.msg);
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
? res.data.list
: res.data;
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0;
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data);
}
this.dataListLoading = false;
})
.catch(() => {
this.dataListLoading = false;
});
},
showDetail(val) {
this.addOrUpdateVisible = true;
this.disabled = false;
this.$nextTick(() => {
this.$refs.addOrUpdate.UpdateState = false;
this.$refs.addOrUpdate.dataFormShowDetails = val;
this.$refs.addOrUpdate.init();
});
this.disabled = true;
},
showDocument(val) {
console.log(val);
window.open(
window.SITE_CONFIG.frontUrl + "?id=" + val.id + "&&type=" + val.type,
"_blank"
);
},
findValue(list, type) {
const found = list.find((item) => item.attrType === type);
if (found) {
return found.attrValue;
} else {
return "暂无数据";
}
},
getDataList2(names) {
if (names != null) {
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
"?" +
qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '',
pageNum: 1,
pageSize: this.limit,
type: "赋能案例",
creator: "",
selectType: 0,
delFlag: 0,
name: names,
})
)
.then(({ data: res }) => {
if (res.code !== 0) {
this.dataList = [];
this.total = 0;
return this.$message.error(res.msg);
}
if (res.data.list.length !== 0) {
this.dataList = res.data.list;
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0;
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data);
}
this.dataListLoading = false;
} else {
this.$message.error("未查询到相关信息");
this.reset();
}
})
.catch(() => {
this.dataListLoading = false;
});
} else {
this.$message.error("查询不能输入为空");
}
},
fullScreen() {
if (window.outerHeight === screen.availHeight) {
if (window.outerWidth === screen.availWidth) {
console.log(
"全屏1",
window.outerHeight,
screen.availHeight,
window.outerWidth,
screen.availWidth
);
this.qp = false;
} else {
console.log(
"不是全屏2",
window.outerHeight,
screen.availHeight,
window.outerWidth,
screen.availWidth
);
this.qp = true;
}
} else {
console.log(
"不是全屏3",
window.outerHeight,
screen.availHeight,
window.outerWidth,
screen.availWidth
);
this.qp = true;
}
},
},
};
</script>
<style lang="scss" scoped>
.el-tooltip__popper {
max-width: 50%;
}
</style>

View File

@ -0,0 +1,101 @@
<template>
<div>
<el-upload
ref="addUpload"
class="upload-demo"
:accept="accept"
:action="fileUploadUrl"
:on-success="onSuccess"
:on-remove="onRemove"
:on-exceed="onExceed"
:limit="limit"
:on-preview="onPreview"
list-type="text"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传{{ accept }}文件最多上传{{ limit }}个附件
</div>
</el-upload>
</div>
</template>
<script>
export default {
name: "",
components: {},
props: {
child: {
type: Object,
default: () => {
return {};
},
},
limit: {
type: Number,
default: 1,
},
accept: {
type: String,
default: ".jpg,.png",
},
},
data() {
return {
fileUploadUrl: window.SITE_CONFIG.apiURL + "/upload",
};
},
methods: {
onSuccess(res, file) {
console.log("limit", this.limit);
console.log(res, file, this.child);
if (res.code !== 0) {
return this.$message.error("上传图片失败");
}
if (this.child.note1 == "") {
this.child.note1 = res.data;
} else {
this.child.note1 += ";" + res.data;
}
// this.dataForm.infoList.map((item, index) => {
// if (item.attrType == '') {
// if (!this.dataForm.infoList[index].attrValue) {
// this.dataForm.infoList[index].attrValue = res.data
// } else {
// this.dataForm.infoList[index].attrValue += ';' + res.data
// }
// console.log('', this.dataForm.infoList[index])
// }
// })
},
onRemove(file, fileList) {
// this.$refs.addUpload.clearFiles()
// ;
const arr = this.child.note1.split(";");
fileList.forEach((item, index) => {
if (item === file.response.data) {
fileList.splice(index, 1);
}
});
arr.forEach((item, index) => {
if (item === file.response.data) {
arr.splice(index, 1);
}
});
if (arr.length == 0) {
this.child.note1 = "";
} else {
this.child.note1 = arr.join(";");
}
console.log(this.child.note1);
},
onPreview(file) {
console.log("点击预览===============>", file);
window.open(file.response.data);
},
onExceed(files, fileList) {
this.$message.warning("当前附件数量已达上限,请先删除部分附件!");
},
},
};
</script>
<style lang="scss" scoped></style>

View File

@ -3,10 +3,13 @@
<div class="mod-pay__order">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.orderId" :placeholder="$t('order.orderId')" clearable></el-input>
<el-input v-model="dataForm.orderId" :placeholder="$t('projectList.projectName')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.userId" :placeholder="$t('order.userId')" clearable></el-input>
<el-input v-model="dataForm.userId" :placeholder="$t('projectList.projectUnit')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.departm" :placeholder="$t('projectList.departm')" clearable></el-input>
</el-form-item>
<el-form-item>
<ren-select v-model="dataForm.status" dict-type="order_status" :placeholder="$t('order.status')"></ren-select>
@ -20,9 +23,9 @@
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="orderId" :label="$t('order.orderId')" header-align="center" align="center"></el-table-column>
<el-table-column prop="productName" :label="$t('order.productName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="payAmount" :label="$t('order.payAmount')" header-align="center" align="center"></el-table-column>
<el-table-column prop="orderId" :label="$t('projectList.projectName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="productName" :label="$t('projectList.projectUnit')" header-align="center" align="center"></el-table-column>
<el-table-column prop="payAmount" :label="$t('projectList.district')" header-align="center" align="center"></el-table-column>
<el-table-column prop="status" :label="$t('order.status')" header-align="center" align="center">
<template slot-scope="scope">
{{ $getDictLabel("order_status", scope.row.status) }}
@ -69,7 +72,8 @@ export default {
dataForm: {
orderId: '',
status: '',
userId: ''
userId: '',
departm:''
}
}
},

View File

@ -1,32 +1,75 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable></el-input>
<el-input
v-model="dataForm.username"
:placeholder="$t('user.username')"
clearable
></el-input>
</el-form-item>
<el-form-item>
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
<ren-select
v-model="dataForm.gender"
dict-type="gender"
:placeholder="$t('user.gender')"
></ren-select>
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.postId" :placeholder="$t('user.postIdList')" clearable>
<el-option :label="data.postName" v-for="data in postList" :key="data.id" :value ="data.id">{{data.postName}}</el-option>
<el-select
v-model="dataForm.postId"
:placeholder="$t('user.postIdList')"
clearable
>
<el-option
:label="data.postName"
v-for="data in postList"
:key="data.id"
:value="data.id"
>{{ data.postName }}</el-option
>
</el-select>
</el-form-item>
<el-form-item>
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true"></ren-dept-tree>
<ren-dept-tree
v-model="dataForm.deptId"
:placeholder="$t('dept.title')"
:query="true"
></ren-dept-tree>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
<el-button type="primary" @click="getDataList()">{{
$t("query")
}}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:user:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
<el-button
v-if="$hasPermission('sys:user:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t("add") }}</el-button
>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:user:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
<el-button
v-if="$hasPermission('sys:user:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t("deleteBatch") }}</el-button
>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:user:export')" type="info" @click="exportHandle()">{{ $t('export') }}</el-button>
<el-button
v-if="$hasPermission('sys:user:export')"
type="info"
@click="exportHandle()"
>{{ $t("export") }}</el-button
>
</el-form-item>
<el-form-item>
<el-button @click="reset()">重置</el-button>
@ -38,28 +81,97 @@
border
@selection-change="dataListSelectionChangeHandle"
@sort-change="dataListSortChangeHandle"
style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="username" :label="$t('user.username')" sortable="custom" header-align="center" align="center"></el-table-column>
<el-table-column prop="deptName" :label="$t('user.deptName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" :label="$t('user.mobile')" sortable="custom" header-align="center" align="center"></el-table-column>
<el-table-column prop="gender" :label="$t('user.gender')" sortable="custom" header-align="center" align="center">
style="width: 100%"
>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="username"
:label="$t('user.username')"
sortable="custom"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="deptName"
:label="$t('user.deptName')"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="email"
:label="$t('user.email')"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="mobile"
:label="$t('user.mobile')"
sortable="custom"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="gender"
:label="$t('user.gender')"
sortable="custom"
header-align="center"
align="center"
>
<template slot-scope="scope">
{{ $getDictLabel("gender", scope.row.gender) }}
</template>
</el-table-column>
<el-table-column prop="status" :label="$t('user.status')" sortable="custom" header-align="center" align="center">
<el-table-column
prop="status"
:label="$t('user.status')"
sortable="custom"
header-align="center"
align="center"
>
<template slot-scope="scope">
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('user.status0') }}</el-tag>
<el-tag v-else size="small" type="success">{{ $t('user.status1') }}</el-tag>
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{
$t("user.status0")
}}</el-tag>
<el-tag v-else size="small" type="success">{{
$t("user.status1")
}}</el-tag>
</template>
</el-table-column>
<el-table-column prop="createDate" :label="$t('user.createDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<el-table-column
prop="createDate"
:label="$t('user.createDate')"
sortable="custom"
header-align="center"
align="center"
width="180"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope">
<el-button v-if="$hasPermission('sys:user:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('sys:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
<el-button
v-if="$hasPermission('sys:user:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t("update") }}</el-button
>
<el-button
v-if="$hasPermission('sys:user:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t("delete") }}</el-button
>
</template>
</el-table-column>
</el-table>
@ -70,84 +182,100 @@
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './user-add-or-update'
import qs from 'qs'
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./user-add-or-update";
import qs from "qs";
export default {
mixins: [mixinViewModule],
data () {
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/sys/user/page',
getDataListURL: "/sys/user/page",
getDataListIsPage: true,
deleteURL: '/sys/user',
deleteURL: "/sys/user",
deleteIsBatch: true,
exportURL: '/sys/user/export'
exportURL: "/sys/user/export",
},
postList: [],
dataForm: {
username: '',
deptId: '',
postId: '',
gender: ''
}
}
username: "",
deptId: "",
postId: "",
gender: "",
},
};
},
components: {
AddOrUpdate
AddOrUpdate,
},
created () {
this.getPostList()
created() {
this.getPostList();
},
methods: {
reset () {
this.$http.get(
this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({
reset() {
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
"?" +
qs.stringify({
page: 1,
limit: 10,
username: '',
deptId: '',
postId: '',
gender: ''
username: "",
deptId: "",
postId: "",
gender: "",
})
).then(({ data: res }) => {
this.dataForm.username = ''
this.dataForm.deptId = ''
this.dataForm.postId = ''
this.dataForm.gender = ''
)
.then(({ data: res }) => {
this.dataForm.username = "";
this.dataForm.deptId = "";
this.dataForm.postId = "";
this.dataForm.gender = "";
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
this.dataList = [];
this.total = 0;
return this.$message.error(res.msg);
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
? res.data.list
: res.data;
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0;
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data)
this.mixinViewModuleOptions.requestCallback(res.data);
}
this.dataListLoading = false
}).catch(() => {
this.dataListLoading = false
this.dataListLoading = false;
})
.catch(() => {
this.dataListLoading = false;
});
},
getPostList () {
this.$http.get('/sys/post/list').then(({ data: res }) => {
getPostList() {
this.$http
.get("/sys/post/list")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.postList = res.data
}).catch(() => {})
}
}
}
this.postList = res.data;
})
.catch(() => {});
},
},
};
</script>

View File

@ -1,27 +1,26 @@
<!--
* @Author: hisense.wuhongjian
* @Date: 2022-03-29 16:45:25
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-20 18:38:34
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-21 17:21:23
* @Description: 告诉大家这是什么
-->
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<title><%= htmlWebpackPlugin.options.title %></title>
<meta
content="vab,vab官网,后台管理框架,vue后台管理框架,vue-admin-beautiful,vue-admin-beautiful-pro,vue-admin-beautiful官网,vue-admin-beautiful文档,vue-element-admin,vue-element-admin官网,vue-element-admin文档,vue-admin,vue-admin官网,vue-admin文档"
name="keywords" />
name="keywords"
/>
<meta
content="<%= VUE_APP_TITLE %>官网与文档基于vue-admin-beautiful-pro构建简称vab是一款超棒的vue+element中后台前端快速开发框架QQ群972435319作者<%= VUE_APP_AUTHOR %>"
name="description" />
name="description"
/>
<meta content="<%= VUE_APP_AUTHOR %>" name="author" />
<link href="<%= BASE_URL %>static/css/loading.css" rel="stylesheet" />
<script>
@ -44,10 +43,10 @@
// window.SITE_CONFIG['frontUrl'] = 'http://10.134.135.9:9796/document/#/devModelFile/';
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
// 开发
window.SITE_CONFIG['backUrl'] = 'http://15.2.21.239:9797';
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.239:9796';
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.239:9796/document/#/devModelFile/';
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin';
window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796';
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin';
// 穿透版本
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
@ -66,7 +65,6 @@
<script type="text/javascript" src="./static/config/basicConfig.js"></script>
<script type="text/javascript" src="./static/config/mapConfig.js"></script>
<script type="text/javascript" src="./static/config/footerData.js"></script>
<!-- 数据资源、导航栏参数引用 -->
<script type="text/javascript" src="./static/config/location.js"></script>
<!-- ==========地图相关配置========== -->
<script type="text/javascript" src="./leaflet/libs/leaflet/1.3.1/leaflet.js"></script>
@ -97,9 +95,8 @@
<script type="text/javascript" src="./static/js/encrypt.js"></script>
<script type="text/javascript" src="./static/js/DHWs.js"></script>
</head>
<body>
</head>
<body>
<noscript>
<strong>
We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
@ -116,12 +113,9 @@
<i></i>
</span>
</div>
<h1>
<%= VUE_APP_TITLE %>
</h1>
<h1><%= VUE_APP_TITLE %></h1>
</div>
</div>
<!-- built files will be auto injected -->
</body>
</body>
</html>

View File

@ -1,32 +1,23 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-21 16:58:56
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-04-01 10:51:45
* @Description: 数据资源参数配置
*/
const newLocation = 'qingdao'
// const newLocation = 'qingdao'
// const newLocation = 'baotou'
// const newLocation = 'xihaian'
const newLocation = 'xihaian'
//
const whoShow = {}
const launchedDataNumObject = {}
//
const navListManagement = {}
// qingdao
if (newLocation === 'qingdao') {
//
launchedDataNumObject.launchedDataNum = [
{
num: 10374,
},
{
num: 1080,
},
{
num: 976,
},
]
whoShow.itShowQingDao = true
//
navListManagement.navList = [
{ name: '共享门户', key: 'home' },
@ -44,34 +35,7 @@ if (newLocation === 'qingdao') {
// baotou
else if (newLocation === 'baotou') {
//
launchedDataNumObject.launchedDataNum = [
{
num: 10373,
},
{
num: 1080,
},
{
num: 976,
},
]
//
navListManagement.navList = [
{ name: '共享门户', key: 'home' },
{ name: '能力集市', key: 'DetailsPageconetent' },
{ name: '能力云图', key: 'capabilityCloud' },
{ name: '能力统计', key: 'abilityStatistics' },
{ name: '开发指南', key: 'developmentGuide' },
{ name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' },
{ name: '赋能案例', key: 'assignCase' },
]
}
// xihaian
else if (newLocation === 'xihaian') {
//
whoShow.itShowBaoTou = true
launchedDataNumObject.launchedDataNum = [
{
num: 10372,
@ -97,3 +61,21 @@ else if (newLocation === 'xihaian') {
{ name: '赋能案例', key: 'assignCase' },
]
}
// xihaian
else if (newLocation === 'xihaian') {
//
whoShow.itShowXiHaiAn = true
//
navListManagement.navList = [
{ name: '共享门户', key: 'home' },
{ name: '能力集市', key: 'DetailsPageconetent' },
{ name: '能力云图', key: 'capabilityCloud' },
{ name: '能力统计', key: 'abilityStatistics' },
{ name: '开发指南', key: 'developmentGuide' },
{ name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' },
{ name: '赋能案例', key: 'assignCase' },
]
}

View File

@ -1,8 +1,8 @@
<!--
* @Author: hisense.wuhongjian
* @Date: 2022-05-06 11:12:00
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-13 17:45:49
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-21 16:59:46
* @Description: 告诉大家这是什么
-->
<template>
@ -26,4 +26,11 @@
</script>
<style lang="less">
@import '~@/vab/styles/vab.less';
#vue-admin-beautiful{
max-width: 1920px;
max-height: 1080px;
margin: auto;
height: 100%;
position: relative;
}
</style>

View File

@ -78,6 +78,14 @@ export function scInsert(data) {
})
}
//
export function getBsList(params) {
return request({
url: '/resourceBrowse/page',
method: 'get',
params,
})
}
//
export function getScList(params) {
return request({
@ -86,7 +94,6 @@ export function getScList(params) {
params,
})
}
//
export function scDel(data) {
return request({
@ -95,6 +102,14 @@ export function scDel(data) {
data,
})
}
//
export function BsDel(data) {
return request({
url: '/resourceBrowse/delete',
method: 'delete',
data,
})
}
//
export function wodepage(params) {
return request({

View File

@ -277,7 +277,6 @@
let params = {
type: name,
}
debugger
componentServiceRank(params).then((res) => {
dataList.value = res.data.data
console.log('res', dataList.value)
@ -530,12 +529,19 @@
border: 0.01rem rgba(0, 108, 188, 0.7) solid;
color: rgba(255, 255, 255, 0.8);
& > div {
height: 0.32rem;
& > span {
display: inline-block;
height: 0.32rem;
line-height: 0.32rem;
border-right: 0.01rem rgba(0, 108, 188, 0.7) solid;
border-bottom: 0.01rem rgba(0, 108, 188, 0.7) solid;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
& > span:first-child {
width: 0.47rem;

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-19 10:15:33
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-19 18:45:10
* @LastEditTime: 2022-06-21 17:14:35
* @Description: 告诉大家这是什么
-->
<template>
@ -84,7 +84,7 @@
}
getVideoList(params).then((res) => {
            //
            myDataList.value[1].sum = res.data.data.total
            myDataList.value[1].snum = res.data.data.total
          })
</script>
<style lang="less" scoped>

View File

@ -63,7 +63,6 @@
})
}
}
const onTrial = ref('http://localhost:8080/#/details?id=1522550194535735298')
//
const copyFunction = (data, name) => {
let url = data

View File

@ -1,5 +1,713 @@
<template>
<div class="details-pageconetent">
<!-- 青岛 -->
<div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao">
<home-header></home-header>
<div class="details-pageconetent-left">
<detailsPageconetentTree />
</div>
<div class="top" v-if="Cardsname != '知识库'">
<div class="top-title">
<div
v-for="item in titleName"
:key="item.name"
:class="item.name === Cardsname ? 'sel' : ''"
@click="changeCards(item.name)"
>
<span
class="photo"
:style="{
backgroundImage: `url(${item.photo}) `,
backgroundSize: 'cover',
}"
></span>
<span>{{ item.name }}</span>
</div>
</div>
<div
v-show="Cardsname !== '基础设施' && Cardsname !== '数据资源'"
class="resultListSearchInput-father"
>
<div class="resultListSearchInput-son">
模糊搜索
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getAppResources"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
<div class="hengxian"></div>
</div>
</div>
<div class="top-content-father" :key="listKey">
<template
v-if="
Cardsname == '组件服务' ||
Cardsname == '应用资源' ||
Cardsname == ''
"
>
<div class="top-content-son">
<div
v-for="(item, index) in ListContent.records"
:key="index"
class="top-content"
>
<span class="top-content-title">
{{ item.name }}
</span>
<div
class="leixingsumfather"
:class="!item.shrinkFlag ? 'shrink' : ''"
>
<div
v-for="(item2, index2) in item.typeList"
:key="index2"
class="leixingsum"
>
<a-checkable-tag
:checked="
item.selectedTags &&
item.selectedTags.indexOf(item2.dict_label) !== -1
"
@change="
(checked) => handleChange(item2, checked, item.name)
"
>
{{ item2.dict_label }}
</a-checkable-tag>
</div>
</div>
<div
class="shrinkTag"
v-if="item.showShrink"
:key="item.shrinkFlag"
>
<up-outlined
v-show="!item.shrinkFlag"
@click="changeShrink(item.name)"
/>
<down-outlined
v-show="item.shrinkFlag"
@click="changeShrink(item.name)"
/>
</div>
</div>
<div class="top-content">
<span class="top-content-title">共享条件</span>
<div class="leixingsumfather">
<div class="leixingsum">
<a-checkable-tag
:checked="tagFlag == '申请'"
@change="() => chagneTag('申请')"
>
申请
</a-checkable-tag>
<a-checkable-tag
:checked="tagFlag == '免批申请'"
@change="() => chagneTag('免批申请')"
>
免批申请
</a-checkable-tag>
</div>
</div>
</div>
</div>
</template>
</div>
<searchResultList
v-show="resourceList.data?.length > 0 && Cardsname !== '基础设施'"
:key="listKey2"
:resourceList="resourceList"
:resourceTotal="resourceTotal"
:select-cardsname="Cardsname"
/>
<div class="pagination">
<a-pagination
v-if="resourceList.data?.length > 0 && Cardsname !== '基础设施'"
v-model:current="currentPage"
v-model:pageSize="currentPageSize"
show-size-changer
show-less-items
show-quick-jumper
:total="resourceTotal"
:page-size-options="pageSizeOptions"
@change="pageChange"
@showSizeChange="onShowSizeChange"
/>
</div>
<div class="jichusheshi" v-if="Cardsname == '基础设施'">
<!-- <div class="yunziyuan">
<div class="yunziyuan-title">
<div class="tupian"></div>
<div class="title" @click="dianjitiaozhaun('青岛市云资源管理平台')">
青岛市云资源管理平台
</div>
</div>
<div class="fenlei">
<div>可用资源情况</div>
<div>更新时间2020-10-29</div>
</div>
<div class="keyongziyuan">
<div v-for="item in keyongziyuanqingkaung" :key="item">
<div>{{ item.name }}</div>
<div>{{ item.value }}</div>
</div>
</div>
<div class="shuoming">
说明政务云资源目前通过青岛市云资源管理平台进行申请
</div>
</div> -->
<!-- <div class="shipin">
<div class="shipin-title">
<div class="tupian"></div>
<div
class="title"
@click="dianjitiaozhaun('青岛市视频资源管理平台')"
>
青岛市视频资源管理平台
</div>
</div>
<div class="fenlei">
<div>
视频总数
<span class="shuzi">23</span>
万路
</div>
<div>更新时间2022-05-06</div>
</div>
<div class="top-content-father">
<div class="top-content-son">
<div class="top-content">
<span class="top-content-title" :style="{ marginRight: '.08rem' }">
标签
</span>
<div
class="leixingsumfather leixingsumfather2"
style="height: unset"
>
<div class="leixingsum" v-for="tag in bqTags" :key="tag">
<a-checkable-tag
:checked="selBqTags.indexOf(tag) > -1"
@change="(checked) => handleChangeBqTags(tag, checked)"
style="width: 1rem"
>
{{ tag }}
</a-checkable-tag>
</div>
</div>
</div>
<div class="top-content">
<span class="top-content-title" :style="{ marginRight: '.08rem' }">
在线状态
</span>
<div class="leixingsumfather leixingsumfather2">
<div class="leixingsum" v-for="tag in stateTags" :key="tag">
<a-checkable-tag
:checked="selStateTags.indexOf(tag) > -1"
@change="(checked) => handleChangeStateTag(tag, checked)"
style="width: 1rem"
>
{{ tag }}
</a-checkable-tag>
</div>
</div>
</div>
</div>
</div>
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getAppResources"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
<div class="itemList" style="margin-top: .2rem">
<a-card :loading="loading">
<a-card-grid
style="width: 20%; text-align: center"
v-for="item in videoList.data"
:key="item.id"
>
<a-tooltip placement="topLeft">
<template #title>
<span>
{{ item.name }}
</span>
</template>
<video-camera-outlined />
{{ item.name }}
</a-tooltip>
</a-card-grid>
</a-card>
<a-pagination
v-model:current="currentPage"
pageSize="20"
:total="resourceTotal"
show-less-items
@change="pageChange"
hideOnSinglePage
/>
</div>
</div> -->
<VideoSurveillance></VideoSurveillance>
</div>
<div class="shujuziyuan" v-if="Cardsname == '数据资源'">
<div class="yunziyuan">
<div class="yunziyuan-title">
<div class="tupian"></div>
<div
class="title"
@click="dianjitiaozhaun('青岛市政务资源管理平台')"
>
青岛市政务资源管理平台{{ dataShowdev }}
</div>
</div>
<div class="keyongziyuan">
<div v-for="item in shujuziyuanqingkuang" :key="item">
<div>{{ item.name }}</div>
<div>{{ item.value }}</div>
{{ item.danwei }}
</div>
</div>
<div class="shuoming">
说明数据资源目前通过青岛市政务信息网进行申请
</div>
</div>
</div>
<div v-if="resourceList.data?.length <= 0" style="margin-top: 2rem">
<a-empty
v-if="!(Cardsname == '基础设施') && !(Cardsname == '数据资源')"
/>
</div>
</div>
<!-- <div class="top" v-else-if="Cardsname == '数据资源' && dataShowbt">
<div class="top-title">
<div
v-for="item in titleName"
:key="item.name"
:class="item.name === Cardsname ? 'sel' : ''"
@click="changeCards(item.name)"
>
<span
class="photo"
:style="{
backgroundImage: `url(${item.photo}) `,
backgroundSize: 'cover',
}"
></span>
<span>{{ item.name }}</span>
</div>
</div>
<details-page-resource></details-page-resource>
</div> -->
<div class="top" v-else>
<div class="top-title">
<div
v-for="item in titleName"
:key="item.name"
:class="item.name === Cardsname ? 'sel' : ''"
@click="changeCards(item.name)"
>
<span
class="photo"
:style="{
backgroundImage: `url(${item.photo}) `,
backgroundSize: 'cover',
}"
></span>
<span>{{ item.name }}</span>
</div>
</div>
<div class="resultListSearchInput-father" style="background: unset">
<div class="resultListSearchInput-son">
模糊搜索
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getAppResources"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
</div>
</div>
<KnowledgeBase
:resourceList="resourceList"
:resourceTotal="resourceTotal"
></KnowledgeBase>
</div>
<div class="talk-monitor" @click="openMonitor">
<a-tooltip>
<template #title>问答机器人</template>
<i></i>
</a-tooltip>
</div>
</div>
<!-- 西海岸 -->
<div
class="details-pageconetent"
v-else-if="whoShow1 && whoShow1.itShowXiHaiAn"
>
<home-header></home-header>
<div class="details-pageconetent-left">
<detailsPageconetentTree />
</div>
<div class="top" v-if="Cardsname != '知识库'">
<div class="top-title">
<div
v-for="item in titleName"
:key="item.name"
:class="item.name === Cardsname ? 'sel' : ''"
@click="changeCards(item.name)"
>
<span
class="photo"
:style="{
backgroundImage: `url(${item.photo}) `,
}"
></span>
<span>{{ item.name }}</span>
</div>
</div>
<!-- v-show="Cardsname !== '基础设施'" -->
<!-- 搜索框 -->
<div class="resultListSearchInput-father">
<div class="resultListSearchInput-son">
模糊搜索
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getAppResources"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
<div class="hengxian"></div>
</div>
</div>
<!-- 分类 -->
<div class="top-content-father" :key="listKey">
<template
v-if="
Cardsname == '组件服务' ||
Cardsname == '应用资源' ||
Cardsname == ''
"
>
<div class="top-content-son">
<div
v-for="(item, index) in ListContent.records"
:key="index"
class="top-content"
>
<span class="top-content-title">
{{ item.name }}
</span>
<div
class="leixingsumfather"
:class="!item.shrinkFlag ? 'shrink' : ''"
>
<div
v-for="(item2, index2) in item.typeList"
:key="index2"
class="leixingsum"
>
<a-checkable-tag
:checked="
item.selectedTags &&
item.selectedTags.indexOf(item2.dict_label) !== -1
"
@change="
(checked) => handleChange(item2, checked, item.name)
"
>
{{ item2.dict_label }}
</a-checkable-tag>
</div>
</div>
<div
class="shrinkTag"
v-if="item.showShrink"
:key="item.shrinkFlag"
>
<up-outlined
v-show="!item.shrinkFlag"
@click="changeShrink(item.name)"
/>
<down-outlined
v-show="item.shrinkFlag"
@click="changeShrink(item.name)"
/>
</div>
</div>
<div class="top-content">
<span class="top-content-title">共享条件</span>
<div class="leixingsumfather">
<div class="leixingsum">
<a-checkable-tag
:checked="tagFlag == '申请'"
@change="() => chagneTag('申请')"
>
申请
</a-checkable-tag>
<a-checkable-tag
:checked="tagFlag == '免批申请'"
@change="() => chagneTag('免批申请')"
>
免批申请
</a-checkable-tag>
</div>
</div>
</div>
</div>
</template>
</div>
<!-- 中心内容 -->
<searchResultList
v-show="resourceList.data?.length > 0"
:key="listKey2"
:resourceList="resourceList"
:resourceTotal="resourceTotal"
:select-cardsname="Cardsname"
/>
<!-- 分页 -->
<div class="pagination">
<a-pagination
v-if="
resourceList.data?.length > 0 &&
Cardsname != '基础设施' &&
Cardsname != '数据资源'
"
v-model:current="currentPage"
v-model:pageSize="currentPageSize"
show-size-changer
show-less-items
show-quick-jumper
:total="resourceTotal"
:page-size-options="pageSizeOptions"
@change="pageChange"
@showSizeChange="onShowSizeChange"
/>
<a-pagination
v-else
v-model:current="currentPage"
v-model:pageSize="currentPageSize"
show-size-changer
show-less-items
show-quick-jumper
:total="resourceTotal"
:page-size-options="pageSizeOptions"
@change="pageChangeOther"
@showSizeChange="onShowSizeChangeOther"
/>
</div>
<!-- <div class="jichusheshi" v-if="Cardsname == '基础设施'">
<div class="yunziyuan">
<div class="yunziyuan-title">
<div class="tupian"></div>
<div class="title" @click="dianjitiaozhaun('青岛市云资源管理平台')">
青岛市云资源管理平台
</div>
</div>
<div class="fenlei">
<div>可用资源情况</div>
<div>更新时间2020-10-29</div>
</div>
<div class="keyongziyuan">
<div v-for="item in keyongziyuanqingkaung" :key="item">
<div>{{ item.name }}</div>
<div>{{ item.value }}</div>
</div>
</div>
<div class="shuoming">
说明政务云资源目前通过青岛市云资源管理平台进行申请
</div>
</div>
<div class="shipin">
<div class="shipin-title">
<div class="tupian"></div>
<div
class="title"
@click="dianjitiaozhaun('青岛市视频资源管理平台')"
>
青岛市视频资源管理平台
</div>
</div>
<div class="fenlei">
<div>
视频总数
<span class="shuzi">23</span>
万路
</div>
<div>更新时间2022-05-06</div>
</div>
<div class="top-content-father">
<div class="top-content-son">
<div class="top-content">
<span class="top-content-title" :style="{ marginRight: '8px' }">
标签
</span>
<div
class="leixingsumfather leixingsumfather2"
style="height: unset"
>
<div class="leixingsum" v-for="tag in bqTags" :key="tag">
<a-checkable-tag
:checked="selBqTags.indexOf(tag) > -1"
@change="(checked) => handleChangeBqTags(tag, checked)"
style="width: 100px"
>
{{ tag }}
</a-checkable-tag>
</div>
</div>
</div>
<div class="top-content">
<span class="top-content-title" :style="{ marginRight: '8px' }">
在线状态
</span>
<div class="leixingsumfather leixingsumfather2">
<div class="leixingsum" v-for="tag in stateTags" :key="tag">
<a-checkable-tag
:checked="selStateTags.indexOf(tag) > -1"
@change="(checked) => handleChangeStateTag(tag, checked)"
style="width: 100px"
>
{{ tag }}
</a-checkable-tag>
</div>
</div>
</div>
</div>
</div>
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getAppResources"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
<div class="itemList" style="margin-top: 20px">
<a-card :loading="loading">
<a-card-grid
style="width: 20%; text-align: center"
v-for="item in videoList.data"
:key="item.id"
>
<a-tooltip placement="topLeft">
<template #title>
<span>
{{ item.name }}
</span>
</template>
<video-camera-outlined />
{{ item.name }}
</a-tooltip>
</a-card-grid>
</a-card>
<a-pagination
v-model:current="currentPage"
pageSize="20"
:total="resourceTotal"
show-less-items
@change="pageChange"
hideOnSinglePage
/>
</div>
</div>
<VideoSurveillance></VideoSurveillance>
</div> -->
<!-- <div class="shujuziyuan" v-if="Cardsname == '数据资源'">
<div class="yunziyuan">
<div class="yunziyuan-title">
<div class="tupian"></div>
<div
class="title"
@click="dianjitiaozhaun('青岛市政务资源管理平台')"
>
青岛市政务资源管理平台
</div>
</div>
<div class="keyongziyuan">
<div v-for="item in shujuziyuanqingkuang" :key="item">
<div>{{ item.name }}</div>
<div>{{ item.value }}</div>
{{ item.danwei }}
</div>
</div>
<div class="shuoming">
说明数据资源目前通过青岛市政务信息网进行申请
</div>
</div>
</div> -->
<div v-if="resourceList.data?.length <= 0" style="margin-top: 200px">
<a-empty />
</div>
</div>
<div class="top" v-else>
<div class="top-title">
<div
v-for="item in titleName"
:key="item.name"
:class="item.name === Cardsname ? 'sel' : ''"
@click="changeCards(item.name)"
>
<span
class="photo"
:style="{
backgroundImage: `url(${item.photo}) `,
}"
></span>
<span>{{ item.name }}</span>
</div>
</div>
<div class="resultListSearchInput-father" style="background: unset">
<div class="resultListSearchInput-son">
模糊搜索
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getAppResources"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
</div>
</div>
<KnowledgeBase
:resourceList="resourceList"
:resourceTotal="resourceTotal"
></KnowledgeBase>
</div>
<div class="talk-monitor" @click="openMonitor">
<a-tooltip>
<template #title>问答机器人</template>
<i></i>
</a-tooltip>
</div>
</div>
<!-- 包头 -->
<div
class="details-pageconetent"
v-else-if="whoShow1 && whoShow1.itShowBaoTou"
>
<home-header></home-header>
<div class="details-pageconetent-left">
<detailsPageconetentTree />
@ -257,7 +965,7 @@
</div> -->
<VideoSurveillance></VideoSurveillance>
</div>
<!-- <div class="shujuziyuan" v-if="Cardsname == '数据资源'">
<div class="shujuziyuan" v-if="Cardsname == '数据资源'">
<div class="yunziyuan">
<div class="yunziyuan-title">
<div class="tupian"></div>
@ -265,7 +973,7 @@
class="title"
@click="dianjitiaozhaun('青岛市政务资源管理平台')"
>
青岛市政务资源管理平台
青岛市政务资源管理平台{{ dataShowdev }}
</div>
</div>
<div class="keyongziyuan">
@ -279,7 +987,8 @@
说明数据资源目前通过青岛市政务信息网进行申请
</div>
</div>
</div> -->
</div>
-->
<div v-if="resourceList.data?.length <= 0" style="margin-top: 2rem">
<a-empty
v-if="!(Cardsname == '基础设施') && !(Cardsname == '数据资源')"
@ -459,6 +1168,11 @@
value: '2022-05-06',
},
])
// 西
// const dataShowbt = ref(whoShow.itshow)
//
const whoShow1 = ref(whoShow)
console.log(whoShow, 'dataShowdev==========================>')
//
const loading = ref(true)
const currentPage = ref(1)
@ -960,6 +1674,7 @@
handleChangeBqTags,
loading,
getShoppingCartList,
whoShow1,
}
},
components: {

View File

@ -301,6 +301,7 @@
.home-header {
height: 0.64rem;
width: 100%;
max-width: 1920px;
display: flex;
justify-content: center;
align-items: center;

View File

@ -372,6 +372,13 @@
}
}
}
:deep(.ant-list-item-meta-title) {
display: flex;
justify-content: space-between;
span {
margin-right: 0.3rem;
}
}
.ant-list::-webkit-scrollbar {
width: 0 !important;
}

View File

@ -0,0 +1,447 @@
<template>
<div class="title">我的浏览</div>
<div class="sousuokuang">
<a-input-search
v-model:value="name"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@change="onSearch"
@search="getList"
/>
<a-button
type="primary"
style="width: 80px; height: 36px; margin-left: 10px"
@click="clean"
>
重置
</a-button>
</div>
<div class="tab">
<span>筛选</span>
<div
:class="tabIndex == index ? 'tabclass' : ' '"
@click="changeTab(index)"
v-for="(item, index) in tabList"
:key="index"
>
{{ item }}
</div>
</div>
<a-list
class="demo-loadmore-list"
:loading="initLoading"
item-layout="horizontal"
:data-source="list"
:key="showKey"
>
<template #renderItem="{ item }">
<a-list-item>
<a-skeleton avatar :title="false" :loading="!!item.loading" active>
<a-list-item-meta
:description="item.description || '--'"
style="position: relative"
>
<template #title>
<span
@click="showItem(item.resourceId, item.type, item.delFlag)"
style="cursor: pointer"
class="name"
>
{{ item.name }}
</span>
<span class="time">浏览时间{{ item.createDate }}</span>
<svg
t="1652233950228"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="5970"
data-spm-anchor-id="a313x.7781069.0.i8"
width="50"
height="50"
v-if="item.delFlag == 4 || item.delFlag == 5"
style="position: absolute; top: 0; left: 100px"
>
<path
d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z"
fill="#515151"
opacity=".5"
p-id="5971"
></path>
<path
d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z"
fill="#515151"
opacity=".5"
p-id="5972"
></path>
<path
d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z"
fill="#515151"
opacity=".5"
p-id="5973"
></path>
<path
d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z"
fill="#515151"
opacity=".5"
p-id="5974"
></path>
</svg>
</template>
<template #avatar>
<a-checkbox
:checked="item.checked"
@click.stop="checkedItem(item)"
@change="checkedItem(item)"
></a-checkbox>
</template>
</a-list-item-meta>
</a-skeleton>
</a-list-item>
</template>
</a-list>
<a-pagination
v-model:current="pageNum"
v-model:page-size="pageSize"
:page-size-options="pageSizeOptions"
:total="total"
show-size-changer
@showSizeChange="onShowSizeChange"
@change="pageChange"
:key="showKey"
>
<template #buildOptionText="props">
<span>{{ props.value }}/</span>
</template>
</a-pagination>
<div class="bottom">
<div class="left">
<a-checkbox v-model:checked="checkAll" @change="onCheckAllChange">
全选
</a-checkbox>
<a-popconfirm
:title="'是否批量删除已选中的' + checkedList.length + '条数据?'"
ok-text="是"
cancel-text="否"
@confirm="delList"
@cancel="cancel"
>
<a-button
type="primary"
style="width: 70px; height: 32px; margin-left: 10px"
>
删除
</a-button>
</a-popconfirm>
</div>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus'
import { getBsList, BsDel, getTopCategory } from '@/api/personalCenter'
const router = useRouter()
//
const pageNum = ref('1')
const pageSize = ref('5')
const pageSizeOptions = ref(['5', '10', '20'])
const total = ref(0)
//
const checkedList = ref([])
const checkAll = ref(false)
const initLoading = ref(true)
const showKey = ref(0)
//
const name = ref('')
const type = ref('')
const list = ref([])
const tabList = ref([])
//
onMounted(() => {
getList()
getCategory()
})
//
const getCategory = () => {
getTopCategory().then((res) => {
console.log('编目一级=============>', res.data)
res.data.data.forEach((val) => {
// tabList.value.push(val.name)
if (val.name == '应用资源' || val.name == '组件服务') {
tabList.value.push(val.name)
}
})
})
}
//
const onCheckAllChange = () => {
console.log(checkedList)
if (checkAll.value) {
// checkedList.value = []
list.value.forEach((val) => {
if (checkedList.value.indexOf(val.id) != -1) {
checkedList.value.splice(checkedList.value.indexOf(val.id), 1)
}
val.checked = true
checkedList.value.push(val.id)
dataResourceId.value.push(val.id)
arr.value.push(val.name)
})
console.log(checkAll.value)
} else {
list.value.forEach((val) => {
val.checked = false
if (checkedList.value.indexOf(val.id) != -1) {
checkedList.value.splice(checkedList.value.indexOf(val.id), 1)
}
})
// checkedList.value = []
dataResourceId.value = []
arr.value = []
console.log(checkAll.value)
}
}
//
const clean = () => {
name.value = ''
type.value = ''
pageNum.value = '1'
pageSize.value = '5'
showKey.value++
checkAll.value = false
getList()
}
//
const getList = () => {
console.log(name.value)
getBsList({
limit: pageSize.value,
page: pageNum.value,
}).then((res) => {
checkAll.value = true
console.log('申购车列表================>', res)
initLoading.value = false
list.value = []
total.value = res.data.data.total
res.data.data.list.forEach((val) => {
const obj = {
loading: false,
name: val.resourceDTO.name,
id: val.id,
checked: false,
type: val.resourceDTO.type,
resourceId: val.resourceId,
createDate: val.createDate,
description: val.resourceDTO.description,
delFlag: val.resourceDTO.delFlag,
}
if (checkedList.value.indexOf(val.id) == -1) {
checkAll.value = false
} else {
obj.checked = true
}
list.value.push(obj)
})
})
}
const onShowSizeChange = (current, pageSize) => {
console.log(current, pageSize)
// pageNum.value = current
// pageSize.value = pageSize
// getList()
}
//
const pageChange = (val) => {
pageNum.value = val
pageNum.value = val
// checkedList.value = []
getList()
}
//
const onSearch = () => {
console.log('search======================>', name.value)
}
//id
const dataResourceId = ref([])
const arr = ref([])
//
const checkedItem = (item) => {
checkAll.value = true
list.value.forEach((val) => {
if (val.id === item.id) {
console.log(val)
val.checked = !val.checked
if (val.checked) {
checkedList.value.push(val.id)
dataResourceId.value.push(val.id)
arr.value.push(val.name)
} else {
checkedList.value.splice(checkedList.value.indexOf(val.id), 1)
dataResourceId.value.splice(checkedList.value.indexOf(val.id), 1)
arr.value.splice(arr.value.indexOf(val.name), 1)
}
}
console.log(checkedList.value, val.id)
if (checkedList.value.indexOf(val.id) == -1) {
checkAll.value = false
console.log('不存在', checkAll.value)
}
})
showKey.value++
}
//
const tabIndex = ref(-1)
const changeTab = (index) => {
console.log('tabIndex', tabIndex.value, index, tabList)
if (tabIndex.value == index) {
tabIndex.value = -1
type.value = ''
} else {
tabIndex.value = index
type.value = tabList.value[index]
}
getList()
}
//
const delList = () => {
if (checkedList.value.length == 0) {
message.error('请先选择需要操作的数据!')
} else {
BsDel(checkedList.value).then((res) => {
console.log('checkedList.value', checkedList.value)
if (res.data.msg === 'success') {
message.success('删除成功')
console.log('删除申购车列表================>', res)
checkAll.value = false
checkedList.value = []
dataResourceId.value = []
pageNum.value = '1'
showKey.value++
mybus.emit('getSgcNum')
getList()
}
})
}
}
const cancel = (e) => {
console.log(e)
}
//
const showItem = (id, type, delFlag) => {
if (delFlag == 0) {
console.log('进入详情')
mybus.emit('tabsChange', { flag: id })
router.push({
path: '/details',
query: {
id: id,
},
})
}
}
</script>
<style lang="less" scoped>
.ant-list {
height: 540px;
overflow-y: scroll;
.ant-list-item-meta {
align-items: center;
:deep(.ant-list-item-meta-avatar) {
padding-left: 20px;
margin-right: 30px;
}
.time {
margin-left: 30px;
font-size: 12px;
color: #ccc;
}
:deep(.ant-list-item-meta-description) {
max-height: 44px;
overflow: hidden;
margin-right: 10px;
}
}
:deep(.ant-list-item-meta-title) {
display: flex;
justify-content: space-between;
span {
margin-right: 0.3rem;
}
}
}
.ant-list::-webkit-scrollbar {
width: 0 !important;
}
.bottom {
margin: 10px;
display: flex;
justify-content: space-between;
align-items: center;
.left span {
margin-left: 10px;
}
}
.title {
font-size: 20px;
color: #000000;
font-family: 'Alibaba PuHuiTi';
font-weight: 500;
margin-top: 20px;
margin-left: 20px;
}
.sousuokuang {
margin: 10px 0px 21px 20px;
.ant-input-search {
max-width: 490px;
}
:deep(.ant-input) {
width: 400px;
height: 36px;
font-size: 14px;
color: #b2b2b2;
background: #f5f5f5;
}
:deep(.ant-input-group-addon) {
display: inline-block;
margin-left: 10px;
.ant-input-search-button {
width: 80px;
height: 36px;
border-radius: 4px;
font-size: 14px;
}
}
}
.tab {
margin-top: 10px;
margin-left: 20px;
margin-bottom: 10px;
display: flex;
font-size: 14px;
color: #999999;
div {
width: 70px;
height: 24px;
border: 1px solid #cccccc;
border-radius: 12px;
margin-left: 10px;
text-align: center;
color: #666666;
cursor: pointer;
}
.tabclass {
border: 1px solid #0087ff;
color: #0087ff;
}
}
.name:hover {
color: #0087ff;
}
</style>

View File

@ -58,6 +58,12 @@
imgActive: require('@/assets/personalCenter/collectactive.png'),
key: 'collect',
},
{
title: '我的浏览',
img: require('@/assets/personalCenter/recent.png'),
imgActive: require('@/assets/personalCenter/recentactive.png'),
key: 'recent',
},
{
title: '我的需求',
img: require('@/assets/personalCenter/demand.png'),
@ -70,12 +76,6 @@
imgActive: require('@/assets/personalCenter/remarkactive.png'),
key: 'remark',
},
// {
// title: '',
// img: require('@/assets/personalCenter/recent.png'),
// imgActive: require('@/assets/personalCenter/recentactive.png'),
// key: 'recent',
// },
]
const selectedKeys = ref(['PurchaseVehicle'])
const type = JSON.parse(window.sessionStorage.getItem('type'))

View File

@ -18,6 +18,7 @@
<collection v-else-if="showFlag === 'collect'"></collection>
<my-application v-else-if="showFlag === 'demand'"></my-application>
<my-comments v-else-if="showFlag === 'remark'"></my-comments>
<my-browse v-else-if="showFlag === 'recent'"></my-browse>
</div>
</article>
</div>
@ -32,7 +33,7 @@
import MyApplication from '@/views/personalCenter/components/MyApplication'
import MyComments from '@/views/personalCenter/components/MyComments'
import MyPublish from '@/views/personalCenter/components/MyPublish'
// MyPublish.vue
import MyBrowse from '@/views/personalCenter/components/MyBrowse'
import PurchaseVehicle from '@/views/personalCenter/components/PurchaseVehicle'
import Collection from '@/views/personalCenter/components/Collection'
import mybus from '@/myplugins/mybus'