提交 00636e6f authored 作者: 龙菲's avatar 龙菲

新增展览审批的文物单个、批量及展览的详情页面

上级 52986b37
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
@keyup.enter.native="handleSearch" @keyup.enter.native="handleSearch"
clearable clearable
></el-input> ></el-input>
<!-- @input="handleInputChange" -->
<el-select <el-select
v-if="item.type == 'select'" v-if="item.type == 'select'"
v-model="searchData[item.prop]" v-model="searchData[item.prop]"
...@@ -29,7 +28,6 @@ ...@@ -29,7 +28,6 @@
></el-option> ></el-option>
</el-select> </el-select>
<!-- @change="handleSelectChange" -->
<el-date-picker <el-date-picker
v-if="item.type == 'dateTimeRange'" v-if="item.type == 'dateTimeRange'"
v-model="searchData[item.prop]" v-model="searchData[item.prop]"
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
> >
<el-table-column type="index" width="50" label="序号" align="center"> </el-table-column> <el-table-column type="index" width="50" label="序号" align="center">
</el-table-column>
<el-table-column v-if="hasMultiSelection" type="selection" width="55" /> <el-table-column v-if="hasMultiSelection" type="selection" width="55" />
<el-table-column <el-table-column
v-for="(item, index) in tableTitle" v-for="(item, index) in tableTitle"
...@@ -29,6 +30,9 @@ ...@@ -29,6 +30,9 @@
<template v-if="item.prop == 'faceImageUrl'"> <template v-if="item.prop == 'faceImageUrl'">
<slot name="faceImageUrl" :scope="scope.row"></slot> <slot name="faceImageUrl" :scope="scope.row"></slot>
</template> </template>
<template v-else-if="item.prop == 'faceImagePressUrl'">
<slot name="faceImagePressUrl" :scope="scope.row"></slot>
</template>
<template v-else-if="item.prop == 'images'"> <template v-else-if="item.prop == 'images'">
<slot name="images" :scope="scope.row"></slot> <slot name="images" :scope="scope.row"></slot>
</template> </template>
...@@ -41,12 +45,12 @@ ...@@ -41,12 +45,12 @@
<template v-else-if="item.isStatus"> <template v-else-if="item.isStatus">
<slot name="status" :scope="scope.row"></slot> <slot name="status" :scope="scope.row"></slot>
</template> </template>
<template v-else-if="item.prop=='checkStatus'"> <template v-else-if="item.prop == 'checkStatus'">
<slot name="checkStatus" :scope="scope.row"></slot> <slot name="checkStatus" :scope="scope.row"></slot>
</template> </template>
<template v-else-if="item.prop == 'years'"> <template v-else-if="item.prop == 'years'">
<slot name="years" :scope="scope.row"></slot> <slot name="years" :scope="scope.row"></slot>
</template> </template>
<template v-else-if="item.prop == 'level'"> <template v-else-if="item.prop == 'level'">
<slot name="level" :scope="scope.row"></slot> <slot name="level" :scope="scope.row"></slot>
...@@ -69,7 +73,7 @@ ...@@ -69,7 +73,7 @@
<template v-else-if="item.needTimeTag"> <template v-else-if="item.needTimeTag">
<slot name="createTime" :scope="scope.row"></slot> <slot name="createTime" :scope="scope.row"></slot>
</template> </template>
<template v-else-if="item.prop=='optType'"> <template v-else-if="item.prop == 'optType'">
<slot name="optType" :scope="scope.row"></slot> <slot name="optType" :scope="scope.row"></slot>
</template> </template>
<span v-else>{{ scope.row[item.prop] }}</span> <span v-else>{{ scope.row[item.prop] }}</span>
...@@ -137,5 +141,4 @@ export default { ...@@ -137,5 +141,4 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>
<template> <template>
<div class="m-video"> <div class="m-video">
<video-player ref="videoPlayer" @play="autoIncrement" @timeupdate="onPlayerTimeupdate($event)" <video-player
@ready="playerReadied" :playsinline="true" :options="playerOptions"> ref="videoPlayer"
@play="autoIncrement"
@timeupdate="onPlayerTimeupdate($event)"
@ready="playerReadied"
:playsinline="true"
:options="playerOptions"
>
</video-player> </video-player>
</div> </div>
</template> </template>
...@@ -16,14 +22,14 @@ export default { ...@@ -16,14 +22,14 @@ export default {
}, },
computed: { computed: {
player() { player() {
return this.$refs.videoPlayer.player return this.$refs.videoPlayer.player;
}, },
}, },
watch:{ watch: {
src(newSrc){ src(newSrc) {
console.log('newSrc',newSrc); console.log("newSrc", newSrc);
this.toggle(newSrc) this.toggle(newSrc);
} },
}, },
data() { data() {
return { return {
...@@ -76,11 +82,11 @@ export default { ...@@ -76,11 +82,11 @@ export default {
let player = this.$refs.videoPlayer.player; let player = this.$refs.videoPlayer.player;
player.play(); player.play();
}, },
playerReadied(player) { }, playerReadied(player) {},
toggle(newSrc){ toggle(newSrc) {
this.player.src(newSrc) this.player.src(newSrc);
} },
}, },
}; };
</script> </script>
...@@ -91,10 +97,9 @@ export default { ...@@ -91,10 +97,9 @@ export default {
::v-deep .video-player { ::v-deep .video-player {
height: 100%; height: 100%;
.video-js { .video-js {
&:hover{ &:hover {
.vjs-big-play-button{ .vjs-big-play-button {
// background-color: #fff; // background-color: #fff;
// color: $themeColor; // color: $themeColor;
} }
......
// 关于审核的常量
export const APPROVAL_STATUS = {
PENDING_APPROVAL: {
value: 0,
desc: '待审核'
},
PASSED: {
value: 1,
desc: '已通过'
},
FAILED: {
value: -1,
desc: '未通过'
}
}
\ No newline at end of file
// 关于审核的常量
export const APPROVAL_STATUS = {
PENDING_APPROVAL: {
value: 0,
desc: '待审核'
},
PASSED: {
value: 1,
desc: '已通过'
},
FAILED: {
value: -1,
desc: '未通过'
}
}
\ No newline at end of file
// 关于展览的常量
export const THEME_TYPE = {
NORMAL_STYLE: {
value: '1',
desc: '默认风格'
},
CH_STYLE: {
value: '2',
desc: '中国风'
},
RED_STYLE: {
value: '3',
desc: '红色文化'
}
}
\ No newline at end of file
...@@ -14,17 +14,21 @@ import router from './router' ...@@ -14,17 +14,21 @@ import router from './router'
import '@/icons' // icon import '@/icons' // icon
import '@/permission' // permission control import '@/permission' // permission control
import VideoPlayer from 'vue-video-player' import VideoPlayer from 'vue-video-player'
import 'video.js/dist/video-js.css'
import 'vue-video-player/src/custom-theme.css'
import { import {
getFullUrl getFullUrl
} from '@/utils/index' } from '@/utils/index'
import { file } from '@/utils/file'
import * as echarts from 'echarts'; import * as echarts from 'echarts';
Vue.use(VideoPlayer) Vue.use(VideoPlayer)
Vue.prototype.$getFullUrl = getFullUrl Vue.prototype.$getFullUrl = getFullUrl
Vue.prototype.$echarts = echarts Vue.prototype.$echarts = echarts
Vue.prototype.$file = file
Vue.use(ElementUI) Vue.use(ElementUI)
......
...@@ -145,3 +145,13 @@ export function downloadBlob(url, fileName, typeSuffix) { ...@@ -145,3 +145,13 @@ export function downloadBlob(url, fileName, typeSuffix) {
}) })
}) })
}; };
// 因为之前的全部都是单独引入,为了不改变以前的代码因此单独用file导出,后期方便$file.uploadFile进行使用
export const file = {
uploadFile,
uploadV1,
importZip,
downloadFile,
previewFile,
downloadBlob
}
\ No newline at end of file
...@@ -77,9 +77,6 @@ ...@@ -77,9 +77,6 @@
$getFullUrl(data.scope.faceImagePressUrl || data.scope.faceImageUrl) $getFullUrl(data.scope.faceImagePressUrl || data.scope.faceImageUrl)
" "
alt="暂无图片" alt="暂无图片"
v-if="
$getFullUrl(data.scope.faceImagePressUrl || data.scope.faceImageUrl)
"
style=" style="
cursor: pointer; cursor: pointer;
width: 80px; width: 80px;
......
...@@ -336,7 +336,6 @@ export default { ...@@ -336,7 +336,6 @@ export default {
let that = this; let that = this;
var checkFaceImage = (rule, value, callback) => { var checkFaceImage = (rule, value, callback) => {
if (that.faceImage.length == 0) { if (that.faceImage.length == 0) {
// this.$message.info('请上传封面')
return callback(new Error("请上传封面")); return callback(new Error("请上传封面"));
} else { } else {
callback(); callback();
...@@ -451,7 +450,6 @@ export default { ...@@ -451,7 +450,6 @@ export default {
}; };
setTimeout(async () => { setTimeout(async () => {
// debugger
that.loading = false; that.loading = false;
let res = await getVirtualListPer(params); let res = await getVirtualListPer(params);
if (res.code == 0) { if (res.code == 0) {
...@@ -477,7 +475,6 @@ export default { ...@@ -477,7 +475,6 @@ export default {
}; };
setTimeout(async () => { setTimeout(async () => {
// debugger
that.loading = false; that.loading = false;
const res = await that.$store.dispatch("dict/getCrList", { const res = await that.$store.dispatch("dict/getCrList", {
params, params,
......
<template>
<el-dialog
:visible.sync="visible"
fullscreen
:before-close="handleClose"
lock-scroll
>
<div class="title" slot="title">
<div class="divider"></div>
<div class="label">{{ prviewType == "view" ? "预览" : "审核" }}</div>
</div>
<div class="dialog-content">
<el-tabs v-model="activeName">
<el-tab-pane
v-for="(item, index) in tabs"
:key="index"
:label="item"
:name="item"
>
<ApprovalInfo :info="aprrovalInfo" v-if="item == '审批详情'" />
<CulturalRelicBaseInfo
:info="culturalRelicBaseInfo"
v-if="item == '文物基本信息'"
/>
<CulturalRelicTable :crList="crList" v-if="item == '文物列表'" />
<DisplayBaseInfo :info="displayInfo" v-if="item == '展览基本信息'" />
<DisplayRender :info="displayInfo" v-if="item == '展览基本信息'" />
</el-tab-pane>
</el-tabs>
</div>
</el-dialog>
</template>
<script>
import { mapGetters } from "vuex";
import CulturalRelicBaseInfo from "./culturalRelic/CulturalRelicInfo.vue";
import CulturalRelicTable from "./culturalRelic/CulturalRelicTable.vue";
import DisplayBaseInfo from "./display/DisplayBaseInfo.vue";
import ApprovalInfo from "./approval/ApprovalInfo.vue";
import { cr, crList, display } from "../mock";
export default {
name: "PreviewDialog",
components: {
CulturalRelicBaseInfo,
CulturalRelicTable,
ApprovalInfo,
DisplayBaseInfo
},
props: {
// 预览类型,view or approval
prviewType: {
type: String,
default: "view",
},
aprrovalInfo: {
type: Object,
default: () => ({}),
},
},
computed: {
...mapGetters(["dicts"]),
tabs() {
const tabs = ["审批详情"];
const { sourceType, addWay } = this.aprrovalInfo;
switch (sourceType) {
case "展览":
tabs.push("展览基本信息", "效果预览");
break;
case "文物":
if (addWay == "单个") {
tabs.push("文物基本信息");
} else {
tabs.push("文物列表");
}
break;
}
return tabs;
},
},
data() {
return {
visible: false,
activeName: "审批详情",
culturalRelicBaseInfo: cr, //单个文物的信息
crList,
displayInfo: display,
};
},
methods: {
handleClose(done) {
this.visible = false;
},
},
};
</script>
<style lang="scss" scoped></style>
<template>
<div>
<!-- 审批表单 -->
<el-button
size="mini"
@click.native="handleCancel"
style="margin-right: 6px"
>取消</el-button
>
<el-popover
placement="top-end"
width="400"
trigger="manual"
v-model="popoverVisible"
>
<div>
<el-form
size="mini"
:model="dialogForm"
prop="remark"
:rules="rules"
ref="form"
>
<el-form-item label="驳回意见" prop="remark">
<el-input
type="textarea"
placeholder="驳回意见"
v-model="dialogForm.remark"
size="mini"
:rows="4"
>
</el-input>
<el-button
size="mini"
type="primary"
style="float: right; margin-top: 16px"
@click.native="handleCheck(-2)"
>确定</el-button
>
</el-form-item>
</el-form>
</div>
<el-button
size="mini"
slot="reference"
type="danger"
icon="el-icon-close"
@click.native="handleShowPopover"
>驳回</el-button
>
</el-popover>
<el-button
size="mini"
style="margin-left: 6px"
type="primary"
icon="el-icon-check"
@click.native="handleCheck(1)"
>同意</el-button
>
</div>
</template>
<script>
export default {
data() {
return {
rules: {
remark: [
{
required: true,
message: "请输入驳回意见",
trigger: "blur",
},
],
},
};
},
methods: {
async handleCheck(checkStatus) {
if (checkStatus == -2) {
this.$refs.form.validate(async (valid) => {
if (valid) {
this.dialogLoading = true;
const params = {
sourceId: this.displayDetail.exhibitionId,
checkStatus,
remark: this.dialogForm.remark,
sourceType: "biz_exhibition",
sourceName: this.displayDetail.title,
};
let res = await postCheck(params);
if (res.code == 0) {
this.$message.success("操作成功!");
this.handleClose();
this.$emit("refresh");
this.$refs.form.resetFields();
}
this.dialogLoading = false;
this.popoverVisible = false;
}
});
} else {
this.dialogLoading = true;
const params = {
sourceId: this.displayDetail.exhibitionId,
checkStatus,
remark: this.dialogForm.remark,
sourceType: "biz_exhibition",
sourceName: this.displayDetail.title,
};
let res = await postCheck(params);
if (res.code == 0) {
this.$message.success("操作成功!");
this.handleClose();
this.$emit("refresh");
this.$refs.form.resetFields();
}
this.dialogLoading = false;
this.popoverVisible = false;
}
},
},
};
</script>
<style></style>
<template>
<!-- 审核的基本信息 -->
<div>
<el-card class="card" shadow="hover">
<el-descriptions title="审核基本详情">
<el-descriptions-item
:label="item.label"
v-for="(item, index) in approvleTableTitle"
:key="index"
>{{ info[item.prop] }}</el-descriptions-item
>
</el-descriptions>
</el-card>
<el-card shadow="hover">
<h3>审核流程</h3>
<el-steps :active="historyChecks.length">
<el-step
v-for="(item, index) in historyChecks"
:title="getStepTitle(item)"
:key="index"
:icon="getStepIcon(item)"
>
<div slot="description">
<div class="name">{{ item.createName }}</div>
<div class="time">{{ item.createTime }}</div>
<div class="desc">{{ item.remark }}</div>
</div>
</el-step>
</el-steps>
</el-card>
</div>
</template>
<script>
import { approvleTableTitle } from "../../config";
import { historyChecks } from "../../mock";
export default {
name: "AprrovalInfo",
props: {
// 审核的信息
info: {
type: Object,
default: () => ({}),
},
},
computed: {
getStepTitle(item) {
return (item) => {
switch (item.checkStatus) {
case 0:
return "发起审核";
case 1:
return "审核通过";
case -2:
return "驳回";
}
};
},
getStepIcon(item) {
return (item) => {
switch (item.checkStatus) {
case 0:
return "el-icon-s-promotion";
case 1:
return "el-icon-s-claim";
case -2:
return "el-icon-circle-close";
}
};
},
},
data() {
return {
approvleTableTitle,
historyChecks, //mock历史记录,后期通过后端接口返
};
},
};
</script>
<style lang="scss" scoped>
.card {
margin-bottom: 20px;
}
</style>
<template>
<!-- 文物基本信息 -->
<div>
<el-card shadow="hover">
<el-descriptions title="文物基本详情" :column="1" labelClassName="label">
<el-descriptions-item
:label="item.label"
v-for="(item, index) in crTabletitle"
:key="index"
>
<el-image
class="image"
v-if="item.prop == 'faceImagePressUrl'"
:src="info['faceImagePressUrl']"
fit="contain"
>
</el-image>
<div v-else-if="item.prop == 'imagesVo'">
<el-image
v-for="(v, i) in info['imagesVo']"
:key="i"
class="image"
:src="v.pressUrl"
fit="contain"
>
</el-image>
</div>
<div v-else-if="item.prop == 'videosVo'">
<VideoPlayer
class="video"
v-for="(v, i) in info['videosVo']"
:key="i"
:src="v.url"
/>
</div>
<div v-else-if="item.prop == 'audiosVo'">
<AudioPlayer
v-for="(v, i) in info['audiosVo']"
:key="i"
:url="v.url"
ref="AudioPlayer"
/>
</div>
<div v-else-if="item.prop == 'literatureVo'">
<el-table stripe border :data="info['literatureVo']">
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column prop="authors" label="作者"></el-table-column>
<el-table-column prop="source" label="来源"></el-table-column>
<el-table-column prop="source" label="操作">
<template slot-scope="scope">
<el-button type='text'>预览</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-else-if="item.prop === 'intro'" v-html="info['intro']"></div>
<span v-else>{{ info[item.prop] || "无" }}</span>
</el-descriptions-item>
</el-descriptions>
</el-card>
</div>
</template>
<script>
import { crTabletitle } from "../../config";
import VideoPlayer from "@/components/VideoPlayer";
import AudioPlayer from "@/components/AudioPlayer";
export default {
components: {
VideoPlayer,
AudioPlayer,
},
props: {
info: {
type: Object,
default: () => ({}),
},
},
data() {
return {
crTabletitle,
};
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-descriptions-item__label {
width: 90px;
display: inline-block;
}
::v-deep .el-descriptions-item__content {
flex: 1;
}
.image {
margin-right: 20px;
width: 200px;
height: 200px;
border: 1px solid #dadada;
border-radius: 4px;
}
.video {
width: 200px;
height: 200px;
border: 1px solid #dadada;
border-radius: 4px;
}
</style>
<template>
<div>
<!-- 文物清单表格 -->
<TablePage :data="crList.records" :tableTitle="crTabletitle">
<template v-slot:status="data">
<el-switch
slot="reference"
:value="Boolean(Number(data.scope.status))"
></el-switch>
</template>
<template v-slot:faceImagePressUrl="data">
<img
:src="
$getFullUrl(data.scope.faceImagePressUrl)
"
alt="暂无图片"
style="
cursor: pointer;
width: 80px;
height: 80px;
object-fit: contain;
"
@click="handelPreviewImages(data.scope.faceImagePressUrl)"
/>
</template>
</TablePage>
<!-- <el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="Number(crList.current)"
:page-sizes="[10, 20, 40, 50]"
:page-size="Number(crList.size)"
layout="total, sizes, prev, pager, next, jumper"
:total="Number(crList.total)"
class="pagination"
>
</el-pagination> -->
</div>
</template>
<script>
import TablePage from "@/components/Table/TablePage.vue";
import { crTabletitle } from "../../config";
export default {
components: {
TablePage,
},
props: {
crList: {
type: Object,
default: () => ({}),
},
},
data() {
return {
crTabletitle,
};
},
methods: {
// 改变页容量
handleSizeChange(value) {
this.list.size = value;
this.loadData();
},
// 改变当前显示页
handleCurrentChange(value) {
this.list.current = value;
this.loadData();
},
},
};
</script>
<style></style>
<template>
<!-- 文物基本信息 -->
<div>
<el-card shadow="hover">
<el-descriptions title="文物基本详情" :column="1" labelClassName="label">
<el-descriptions-item
:label="item.label"
v-for="(item, index) in displayTabletitle"
:key="index"
>
<el-image
class="image"
v-if="item.prop == 'faceImagePressUrl'"
:src="info['faceImagePressUrl']"
fit="contain"
>
</el-image>
<div v-else-if="item.prop == 'imagesVo'">
<el-image
v-for="(v, i) in info['imagesVo']"
:key="i"
class="image"
:src="v.pressUrl"
fit="contain"
>
</el-image>
</div>
<div v-else-if="item.prop == 'videosVo'">
<VideoPlayer
class="video"
v-for="(v, i) in info['videosVo']"
:key="i"
:src="v.url"
/>
</div>
<div v-else-if="item.prop == 'audiosVo'">
<AudioPlayer
v-for="(v, i) in info['audiosVo']"
:key="i"
:url="v.url"
ref="AudioPlayer"
/>
</div>
<div v-else-if="item.prop == 'literatureVo'">
<el-table stripe border :data="info['literatureVo']">
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column prop="authors" label="作者"></el-table-column>
<el-table-column prop="source" label="来源"></el-table-column>
<el-table-column prop="source" label="操作">
<template slot-scope="scope">
<el-button type='text'>预览</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-else-if="item.prop === 'intro'" v-html="info['intro']"></div>
<span v-else>{{ info[item.prop] || "无" }}</span>
</el-descriptions-item>
</el-descriptions>
</el-card>
</div>
</template>
<script>
import { displayTabletitle } from "../../config";
import VideoPlayer from "@/components/VideoPlayer";
import AudioPlayer from "@/components/AudioPlayer";
export default {
components: {
VideoPlayer,
AudioPlayer,
},
props: {
info: {
type: Object,
default: () => ({}),
},
},
data() {
return {
displayTabletitle,
};
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-descriptions-item__label {
width: 90px;
display: inline-block;
}
::v-deep .el-descriptions-item__content {
flex: 1;
}
.image {
margin-right: 20px;
width: 200px;
height: 200px;
border: 1px solid #dadada;
border-radius: 4px;
}
.video {
width: 200px;
height: 200px;
border: 1px solid #dadada;
border-radius: 4px;
}
</style>
<template>
<!-- 展览效果预览图 -->
<div class="container" v-if="dicts && Object.keys(displayDetail).length > 0">
<NavBar />
<NormalStyle
v-if="displayDetail.themeType == NORMAL_STYLE.value"
:displayDetail="displayDetail"
:dicts="dicts"
/>
<ChStyle
v-if="displayDetail.themeType == CH_STYLE.value"
:displayDetail="displayDetail"
:dicts="dicts"
/>
<RedStyle
v-if="displayDetail.themeType == RED_STYLE.value"
:displayDetail="displayDetail"
:dicts="dicts"
/>
<Footer />
</div>
</template>
<script>
import NormalStyle from "@/views/display/components/templates/NormalStyle.vue";
import ChStyle from "@/views/display/components/templates/ChStyle.vue";
import RedStyle from "@/views/display/components/templates/RedStyle.vue";
import NavBar from "@/components/NavBar";
import Footer from "@/components/Footer";
import { THEME_TYPE } from "@/contants/display";
export default {
components: {
NormalStyle,
ChStyle,
RedStyle,
NavBar,
Footer,
},
props: {
// 展览本身信息
info: {
type: Object,
default: () => ({}),
},
// 字典值
dicts: {
type: Object,
default: () => ({}),
},
},
data(){
return {
...THEME_TYPE,
}
}
};
</script>
<style></style>
export const displayTabletitle = [{ export const displayTabletitle = [{
prop: "title", prop: "title",
label: "标题", label: "标题",
columnAlign: 'center', columnAlign: 'center',
width: 120,
showOverFlowToolTip: true, showOverFlowToolTip: true,
}, },
// {
// prop: "keyword",
// label: "关键词",
// columnAlign: 'center',
// showOverFlowToolTip: true,
// },
{ {
prop: "deptName", prop: "keyword",
label: "展览单位", label: "关键词",
columnAlign: 'center', columnAlign: 'center',
showOverFlowToolTip: true, showOverFlowToolTip: true,
}, },
{ {
...@@ -25,7 +21,20 @@ export const displayTabletitle = [{ ...@@ -25,7 +21,20 @@ export const displayTabletitle = [{
}, },
{ {
prop: "faceImageUrl", prop: "deptName",
label: "展览单位",
columnAlign: 'center',
showOverFlowToolTip: true,
},
{
prop: "regionName",
label: "所在地区",
columnAlign: 'center',
showOverFlowToolTip: true,
},
{
prop: "faceImagePressUrl",
label: "封面", label: "封面",
columnAlign: 'center', columnAlign: 'center',
isFaceImage: true, isFaceImage: true,
...@@ -33,16 +42,46 @@ export const displayTabletitle = [{ ...@@ -33,16 +42,46 @@ export const displayTabletitle = [{
}, },
{ {
prop: "checkStatus", prop: "intro",
label: "状态", label: "展览介绍",
columnAlign: 'center',
},
{
prop: "literatureVo",
label: "关联文献",
columnAlign: 'center',
width:100
},
{
prop: "themeType",
label: "模板主题",
columnAlign: 'center', columnAlign: 'center',
}, },
{ {
prop: "checkRemark", prop: "remark",
label: "备注", label: "备注",
columnAlign: 'center', columnAlign: 'center',
showOverFlowToolTip: true, showOverFlowToolTip: true,
}, },
{
prop: "imagesVo",
label: "展览图片",
columnAlign: 'center',
isImages: true
},
{
prop: "audiosVo",
label: "展览音频",
columnAlign: 'center',
isAudios: true
},
{
prop: "videosVo",
label: "展览视频",
columnAlign: 'center',
isVideos: true
},
] ]
export const operates = { export const operates = {
...@@ -54,16 +93,29 @@ export const operates = { ...@@ -54,16 +93,29 @@ export const operates = {
columnAlign: "center", columnAlign: "center",
} }
export const approvalOperations = [{ // export const approvalOperations = [
type: 'approval', // {
title: '审批' // type: 'approval',
} // title: '审批'
] // }
// ]
export const viewOperations = [{ // export const viewOperations = [{
type: 'view', // type: 'view',
title: '查看详情' // title: '查看详情'
} // }
// ]
export const operations = [
{
type: 'view',
title: '查看详情'
},
{
type: 'approval',
title: '审批'
}
] ]
...@@ -75,38 +127,38 @@ export const crTabletitle = [{ ...@@ -75,38 +127,38 @@ export const crTabletitle = [{
columnAlign: 'center', columnAlign: 'center',
showOverFlowToolTip: true, showOverFlowToolTip: true,
}, },
// { {
// prop: "level", prop: "levelLabel",
// label: "文物级别", label: "文物级别",
// columnAlign: 'center', columnAlign: 'center',
// }, },
// { {
// prop: "detailSize", prop: "detailSize",
// label: "尺寸", label: "尺寸",
// columnAlign: 'center', columnAlign: 'center',
// }, },
// { {
// prop: "textureType", prop: "textureTypeLabel",
// label: "质地", label: "质地",
// columnAlign: 'center', columnAlign: 'center',
// }, },
// { {
// prop: "type", prop: "typeLabel",
// label: "类别", label: "类别",
// width: 100, width: 100,
// columnAlign: 'center', columnAlign: 'center',
// isCulturalRelicType:true isCulturalRelicType:true
// }, },
// { {
// prop: "createId", prop: "createId",
// label: "创建人", label: "创建人",
// columnAlign: 'center', columnAlign: 'center',
// }, },
// { {
// prop: "createTime", prop: "createTime",
// label: "创建时间", label: "创建时间",
// columnAlign: 'center', columnAlign: 'center',
// }, },
{ {
prop: "deptName", prop: "deptName",
...@@ -120,13 +172,13 @@ export const crTabletitle = [{ ...@@ -120,13 +172,13 @@ export const crTabletitle = [{
columnAlign: 'center', columnAlign: 'center',
showOverFlowToolTip: true, showOverFlowToolTip: true,
}, },
// { {
// prop: "intro", prop: "intro",
// label: "馆藏介绍", label: "馆藏介绍",
// columnAlign: 'center', columnAlign: 'center',
// showOverFlowToolTip: true, showOverFlowToolTip: true,
// width: 120, width: 120,
// }, },
{ {
prop: "themeWord", prop: "themeWord",
...@@ -135,13 +187,37 @@ export const crTabletitle = [{ ...@@ -135,13 +187,37 @@ export const crTabletitle = [{
showOverFlowToolTip: true, showOverFlowToolTip: true,
}, },
{ {
prop: "faceImageUrl", prop: "faceImagePressUrl",
label: "封面", label: "封面",
columnAlign: 'center', columnAlign: 'center',
isFaceImage: true, isFaceImage: true,
}, },
{ {
prop: "status", prop:"imagesVo",
label: "文物图片",
columnAlign: 'center',
isFaceImage: true,
},
{
prop:"audiosVo",
label: "文物音频",
columnAlign: 'center',
isFaceImage: true,
},
{
prop:"videosVo",
label: "文物视频",
columnAlign: 'center',
isFaceImage: true,
},
{
prop:"literatureVo",
label: "相关文献",
columnAlign: 'center',
isFaceImage: true,
},
{
prop: "statusLabel",
label: "上下架状态", label: "上下架状态",
width: 100, width: 100,
columnAlign: 'center', columnAlign: 'center',
...@@ -187,4 +263,48 @@ export const importOperates = { ...@@ -187,4 +263,48 @@ export const importOperates = {
export const importOperations = [{ export const importOperations = [{
type: 'delete', type: 'delete',
title: '删除记录及文物' title: '删除记录及文物'
},] },]
\ No newline at end of file
export const approvleTableTitle = [
{
prop: "title",
label: "标题",
columnAlign: 'center',
},
{
prop: "deptName",
label: "所属博物馆",
columnAlign: 'center',
},
{
prop: "sourceType",
label: "资源类型",
columnAlign: 'center',
},
{
prop: "addWay",
label: "添加方式",
columnAlign: 'center',
},
{
prop: "status",
label: "审核状态",
columnAlign: 'center',
isStatus: true
},
{
prop: "createUser",
label: "创建人",
columnAlign: 'center',
},
{
prop: "createTime",
label: "创建时间",
columnAlign: 'center',
},
{
prop: "remark",
label: "备注",
columnAlign: 'center',
},
]
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论