Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ec840a0781
52
web/src/api/zshow/zShow.js
Normal file
52
web/src/api/zshow/zShow.js
Normal file
@ -0,0 +1,52 @@
|
||||
/**
|
||||
* @description 演出表
|
||||
* Created on 2024-11-27
|
||||
* @author yxz
|
||||
*/
|
||||
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function fetchList() {
|
||||
return request({
|
||||
url: '/admin/zshow/list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function fetPage(page) {
|
||||
return request({
|
||||
url: '/admin/zshow/page',
|
||||
method: 'get',
|
||||
params: page
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj (id) {
|
||||
return request({
|
||||
url: '/admin/zshow/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj (obj) {
|
||||
return request({
|
||||
url: '/admin/zshow',
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj (obj) {
|
||||
return request({
|
||||
url: '/admin/zshow',
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj (id) {
|
||||
return request({
|
||||
url: '/admin/zshow/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
52
web/src/api/zshow/zShowSchedule.js
Normal file
52
web/src/api/zshow/zShowSchedule.js
Normal file
@ -0,0 +1,52 @@
|
||||
/**
|
||||
* @description 演出场次关联表
|
||||
* Created on 2024-11-27
|
||||
* @author yxz
|
||||
*/
|
||||
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function fetchList() {
|
||||
return request({
|
||||
url: '/admin/zshowschedule/list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function fetPage(page) {
|
||||
return request({
|
||||
url: '/admin/zshowschedule/page',
|
||||
method: 'get',
|
||||
params: page
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj (id) {
|
||||
return request({
|
||||
url: '/admin/zshowschedule/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj (obj) {
|
||||
return request({
|
||||
url: '/admin/zshowschedule',
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj (obj) {
|
||||
return request({
|
||||
url: '/admin/zshowschedule',
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj (id) {
|
||||
return request({
|
||||
url: '/admin/zshowschedule/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
52
web/src/api/zshow/zTicketTier.js
Normal file
52
web/src/api/zshow/zTicketTier.js
Normal file
@ -0,0 +1,52 @@
|
||||
/**
|
||||
* @description 票档和场次关联表
|
||||
* Created on 2024-11-27
|
||||
* @author yxz
|
||||
*/
|
||||
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function fetchList() {
|
||||
return request({
|
||||
url: '/admin/ztickettier/list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function fetPage(page) {
|
||||
return request({
|
||||
url: '/admin/ztickettier/page',
|
||||
method: 'get',
|
||||
params: page
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj (id) {
|
||||
return request({
|
||||
url: '/admin/ztickettier/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj (obj) {
|
||||
return request({
|
||||
url: '/admin/ztickettier',
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj (obj) {
|
||||
return request({
|
||||
url: '/admin/ztickettier',
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function delTierObj (id) {
|
||||
return request({
|
||||
url: '/admin/ztickettier/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
33
web/src/api/zshow/zwriteOff.js
Normal file
33
web/src/api/zshow/zwriteOff.js
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @description y演出核销权限设置
|
||||
* Created on 2024-11-27
|
||||
* @author yxz
|
||||
*/
|
||||
|
||||
import request from '@/utils/request'
|
||||
|
||||
|
||||
export function fetPage(page) {
|
||||
return request({
|
||||
url: '/admin/zticketverificationauth/page',
|
||||
method: 'get',
|
||||
params: page
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function addObj (obj) {
|
||||
return request({
|
||||
url: '/admin/zticketverificationauth',
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function delTierObj (id) {
|
||||
return request({
|
||||
url: '/admin/zticketverificationauth/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
113
web/src/views/zshow/zShow/form.vue
Normal file
113
web/src/views/zshow/zShow/form.vue
Normal file
@ -0,0 +1,113 @@
|
||||
<template>
|
||||
<el-dialog title="演出表" :visible.sync="show" width="600px">
|
||||
<el-form ref="form" :model="form" label-width="90px" :rules="rules">
|
||||
<el-form-item label="演出名称" prop="showName">
|
||||
<el-input v-model="form.showName" placeholder="请输入演出名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="站点" prop="site">
|
||||
<el-input v-model="form.site" placeholder="请输入站点"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="地点" prop="place">
|
||||
<el-input v-model="form.place" placeholder="请输入地点"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="价格" prop="price">
|
||||
<el-input v-model="form.price" placeholder="请输入价格"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="演出时间" prop="showTime">
|
||||
<!-- <el-input v-model="form.showTime"></el-input> -->
|
||||
<SelectDateTime v-model="form.showTime" placeholder="请选择演出时间"></SelectDateTime>
|
||||
</el-form-item>
|
||||
<el-form-item label="小图" prop="thumbnail">
|
||||
<!-- <el-input v-model="form.thumbnail"></el-input> -->
|
||||
<Upload v-model="form.thumbnail" :limit="1" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button v-loading="loading" type="primary" @click="saveHandler">{{btn_title}}</el-button>
|
||||
<el-button @click="close">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* Created on 2024-11-27
|
||||
* @description 演出表
|
||||
* @author yxz
|
||||
*/
|
||||
import { addObj, putObj } from "@/api/zshow/zShow";
|
||||
import customSelect from "@/components/CustomSelect";
|
||||
import SelectDateTime from "@/components/SelectDateTime/SelectDateTime.vue";
|
||||
import Upload from "@/components/Upload";
|
||||
|
||||
export default {
|
||||
components: { customSelect,SelectDateTime ,Upload},
|
||||
name: "zShowForm",
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
show: false,
|
||||
loading: false,
|
||||
rules: {
|
||||
// example :
|
||||
// field: [{ required: true, trigger: "blur" }],
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
formState() {
|
||||
return !this.form.showId;
|
||||
},
|
||||
btn_title() {
|
||||
return this.formState ? "新建" : "保存";
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open(origin) {
|
||||
if (origin) {
|
||||
// 编辑初始化
|
||||
let form = Object.assign({}, origin);
|
||||
this.form = form;
|
||||
} else {
|
||||
// 新建初始化
|
||||
this.form = {};
|
||||
}
|
||||
this.show = true;
|
||||
},
|
||||
close() {
|
||||
this.show = false;
|
||||
},
|
||||
saveHandler() {
|
||||
this.$refs.form.validate(valid => {
|
||||
if(!valid) return;
|
||||
this.loading = true;
|
||||
console.log(this.formState)
|
||||
if (this.formState) this.createHandler();
|
||||
else this.editHandler();
|
||||
});
|
||||
},
|
||||
createHandler() {
|
||||
addObj(this.form).then(res => {
|
||||
if (res.code === 'success') {
|
||||
this.finish();
|
||||
}
|
||||
}).finally(()=> {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
editHandler() {
|
||||
putObj(this.form).then(res => {
|
||||
if (res.code === 'success') {
|
||||
this.finish();
|
||||
}
|
||||
}).finally(()=> {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
finish() {
|
||||
this.close();
|
||||
this.$emit("reloadTable");
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
179
web/src/views/zshow/zShow/index.vue
Normal file
179
web/src/views/zshow/zShow/index.vue
Normal file
@ -0,0 +1,179 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="zshow">
|
||||
<el-form :inline="true" :model="page" class="demo-form-inline">
|
||||
<!-- <el-form-item>
|
||||
<el-input v-model="page.keyword" clearable placeholder="" prefix-icon="el-icon-search"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="find" type="primary">查找</el-button>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button @click="createHandler" type="primary">新建</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<custom-table
|
||||
ref="table"
|
||||
index
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
:data="listData"
|
||||
:page="page"
|
||||
@loadHandler="fetPage"
|
||||
>
|
||||
<template #listFlag="{ row }">
|
||||
<el-tag :type="row.listFlag === 1 ? 'success' :'danger'">
|
||||
{{ row.listFlag === 1 ? '已上架' : '未上架'}}
|
||||
</el-tag>
|
||||
</template>
|
||||
<template #thumbnail="{ row }">
|
||||
<el-image class="img-evetNot" :src="row.thumbnail" />
|
||||
</template>
|
||||
<template #operation="{row, index}">
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-date"
|
||||
size="small"
|
||||
plain
|
||||
@click="openDialog(row , index)"
|
||||
>日程安排</el-button>
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-user"
|
||||
size="small"
|
||||
plain
|
||||
@click="openWeiteOff(row , index)"
|
||||
>核销权限</el-button>
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-edit-outline"
|
||||
size="small"
|
||||
plain
|
||||
@click="editHandler(row , index)"
|
||||
>编辑</el-button>
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
size="small"
|
||||
plain
|
||||
@click="deleteHandler(row, index)"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</custom-table>
|
||||
<zShowForm ref="form" @reloadTable="$refs.table.refreshTable()" />
|
||||
<zshowSchedule ref="schedule"></zshowSchedule>
|
||||
<write-off ref="writeOff" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* Created on 2024-11-27
|
||||
* @description 演出表
|
||||
* @author yxz
|
||||
*/
|
||||
import { fetPage, delObj } from "@/api/zshow/zShow";
|
||||
|
||||
import customTable from "@/components/CustomTable";
|
||||
import zShowForm from "./form";
|
||||
import zshowSchedule from "./zshowSchedule";
|
||||
import writeOff from "./writeOff";
|
||||
|
||||
const columns = [
|
||||
{
|
||||
label: "演出名称",
|
||||
prop: "showName"
|
||||
},
|
||||
{
|
||||
label: "站点",
|
||||
prop: "site"
|
||||
},
|
||||
{
|
||||
label: "地点",
|
||||
prop: "place"
|
||||
},
|
||||
{
|
||||
label: "价格",
|
||||
prop: "price"
|
||||
},
|
||||
{
|
||||
label: "演出时间",
|
||||
prop: "showTime"
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "listFlag",
|
||||
slot: true,
|
||||
},
|
||||
{
|
||||
label: "小图",
|
||||
prop: "thumbnail",
|
||||
slot: true,
|
||||
},
|
||||
];
|
||||
|
||||
export default {
|
||||
name: "zShowInfo",
|
||||
components: { customTable, zShowForm , zshowSchedule, writeOff},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
columns,
|
||||
listData: [],
|
||||
page: {
|
||||
current: 1,
|
||||
size: 10
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
fetPage() {
|
||||
this.loading = true;
|
||||
fetPage(this.page).then(res => {
|
||||
const { records, total } = res.data;
|
||||
this.listData = records;
|
||||
this.page.total = total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 打开演出日程弹窗
|
||||
openDialog(row,index) {
|
||||
this.$refs.schedule.open(row);
|
||||
},
|
||||
createHandler() {
|
||||
this.$refs.form.open();
|
||||
},
|
||||
editHandler(row, index) {
|
||||
this.$refs.form.open(row);
|
||||
},
|
||||
deleteHandler(row, index) {
|
||||
this.$confirm(`是否删除?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
delObj(row.showId + '').then(res => {
|
||||
if (res.code === 'success') {
|
||||
this.$message.success('删除成功!');
|
||||
this.$refs.table.refreshTable();
|
||||
}else{
|
||||
this.$message.error('删除失败');
|
||||
}
|
||||
});
|
||||
}).catch(() => {});
|
||||
},
|
||||
// 打开核销授权弹窗
|
||||
openWeiteOff(row,index){
|
||||
this.$refs.writeOff.open(row);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style land="scss" scope>
|
||||
.img-evetNot{
|
||||
width: 100px;
|
||||
}
|
||||
</style>
|
116
web/src/views/zshow/zShow/showScheduleForm.vue
Normal file
116
web/src/views/zshow/zShow/showScheduleForm.vue
Normal file
@ -0,0 +1,116 @@
|
||||
<template>
|
||||
<el-dialog title="添加日程" :visible.sync="show" width="600px">
|
||||
<el-form ref="form" :model="form" label-width="90px" :rules="rules">
|
||||
<el-form-item label="场次名称" prop="scheduleName">
|
||||
<el-input v-model="form.scheduleName" placeholder="请输入场次名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="场次时间" prop="scheduleTime">
|
||||
<!-- <el-input v-model="form.scheduleTime"></el-input> -->
|
||||
<SelectDateTime v-model="form.scheduleTime" placeholder="请选择场次时间"></SelectDateTime>
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="总座位数" prop="seatsTotal" min='0'>
|
||||
<el-input-number v-model="form.seatsTotal" placeholder='请输入总座位数'></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="可用座位数" prop="seatsAvailable" min='0'>
|
||||
<el-input-number v-model="form.seatsAvailable" placeholder='请输入可用座位数'></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button v-loading="loading" type="primary" @click="saveHandler">{{
|
||||
btn_title
|
||||
}}</el-button>
|
||||
<el-button @click="close">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* Created on 2024-11-27
|
||||
* @description 演出场次关联表
|
||||
* @author yxz
|
||||
*/
|
||||
import { addObj, putObj } from "@/api/zshow/zShowSchedule";
|
||||
import customSelect from "@/components/CustomSelect";
|
||||
import SelectDateTime from "@/components/SelectDateTime/SelectDateTime.vue";
|
||||
|
||||
export default {
|
||||
components: { customSelect , SelectDateTime},
|
||||
name: "zShowScheduleForm",
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
show: false,
|
||||
loading: false,
|
||||
rules: {
|
||||
// example :
|
||||
// field: [{ required: true, trigger: "blur" }],
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
formState() {
|
||||
return !this.form.scheduleId;
|
||||
},
|
||||
btn_title() {
|
||||
return this.formState ? "新建" : "保存";
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
open(origin) {
|
||||
if (origin.edit) {
|
||||
// 编辑初始化
|
||||
console.log("编辑");
|
||||
console.log(origin);
|
||||
|
||||
let form = Object.assign({}, origin.row);
|
||||
this.form = form;
|
||||
} else {
|
||||
// 新建初始化
|
||||
this.form = {};
|
||||
this.showId = origin.showId
|
||||
}
|
||||
this.show = true;
|
||||
},
|
||||
close() {
|
||||
this.show = false;
|
||||
},
|
||||
saveHandler() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (!valid) return;
|
||||
this.loading = true;
|
||||
if (this.formState) this.createHandler();
|
||||
else this.editHandler();
|
||||
});
|
||||
},
|
||||
createHandler() {
|
||||
addObj(this.form)
|
||||
.then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.finish();
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
editHandler() {
|
||||
putObj(this.form)
|
||||
.then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.finish();
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
finish() {
|
||||
this.close();
|
||||
this.$emit("reloadTable");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
120
web/src/views/zshow/zShow/tiketTierForm.vue
Normal file
120
web/src/views/zshow/zShow/tiketTierForm.vue
Normal file
@ -0,0 +1,120 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="(formState ? '添加' : '编辑') + '票档'"
|
||||
:visible.sync="show"
|
||||
width="600px"
|
||||
>
|
||||
<el-form ref="form" :model="form" label-width="90px" :rules="rules">
|
||||
<el-form-item label="票档名称" prop="tierName">
|
||||
<el-input v-model="form.tierName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="票档价格" prop="tierPrice">
|
||||
<el-input type="number" :min="0.01" v-model="form.tierPrice" placeholder="请输入票档价格"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="座位数" prop="seatsInTier">
|
||||
<el-input-number
|
||||
v-model="form.seatsInTier"
|
||||
placeholder="请输入可用座位数"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="可用座位数" prop="seatsAvailableInTier">
|
||||
<el-input-number
|
||||
v-model="form.seatsAvailableInTier"
|
||||
placeholder="请输入可用座位数"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button v-loading="loading" type="primary" @click="saveHandler">{{
|
||||
btn_title
|
||||
}}</el-button>
|
||||
<el-button @click="close">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* Created on 2024-11-27
|
||||
* @description 票档和场次关联表
|
||||
* @author yxz
|
||||
*/
|
||||
import { addObj, putObj } from "@/api/zshow/zTicketTier";
|
||||
import customSelect from "@/components/CustomSelect";
|
||||
|
||||
export default {
|
||||
components: { customSelect },
|
||||
name: "zTicketTierForm",
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
show: false,
|
||||
loading: false,
|
||||
rules: {
|
||||
// example :
|
||||
// field: [{ required: true, trigger: "blur" }],
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
formState() {
|
||||
return !this.form.tierId;
|
||||
},
|
||||
btn_title() {
|
||||
return this.formState ? "新建" : "保存";
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
open(origin) {
|
||||
if (origin) {
|
||||
// 编辑初始化
|
||||
let form = Object.assign({}, origin.row);
|
||||
this.form = form;
|
||||
} else {
|
||||
// 新建初始化
|
||||
this.form = {};
|
||||
this.form.showId = origin.showId;
|
||||
this.form.scheduleId = origin.scheduleId;
|
||||
}
|
||||
this.show = true;
|
||||
},
|
||||
close() {
|
||||
this.show = false;
|
||||
},
|
||||
saveHandler() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (!valid) return;
|
||||
this.loading = true;
|
||||
if (this.formState) this.createHandler();
|
||||
else this.editHandler();
|
||||
});
|
||||
},
|
||||
createHandler() {
|
||||
addObj(this.form)
|
||||
.then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.finish();
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
editHandler() {
|
||||
putObj(this.form)
|
||||
.then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.finish();
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
finish() {
|
||||
this.close();
|
||||
this.$emit("reloadTable");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
159
web/src/views/zshow/zShow/writeOff.vue
Normal file
159
web/src/views/zshow/zShow/writeOff.vue
Normal file
@ -0,0 +1,159 @@
|
||||
<template>
|
||||
<el-dialog title="核销授权" :visible.sync="show" v-if="show" width="800px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5">当前演出</el-col>
|
||||
<el-col :span="15">{{ form.showName }}</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5">添加用户</el-col>
|
||||
<el-col :span="12"
|
||||
><user-select @chooseItem="chooseUserHandler" v-if="show"
|
||||
/></el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table :data="memberList">
|
||||
<el-table-column prop="username" label="手机号" />
|
||||
<el-table-column prop="nickname" label="用户名" />
|
||||
<el-table-column label="操作">
|
||||
<template v-slot="scope">
|
||||
<el-button
|
||||
@click="removeItemHandler(scope.$index)"
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
circle
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button v-loading="loading" type="primary" @click="saveHandler"
|
||||
>保存</el-button
|
||||
>
|
||||
<el-button @click="close">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* Created on 2022-10-11
|
||||
* @description nft
|
||||
* @author BboySpider
|
||||
*/
|
||||
import {
|
||||
postZnftverificationauth,
|
||||
getWhiteList,
|
||||
} from "@/api/collection/couponCoupons";
|
||||
import { fetPage, addObj, delTierObj } from "@/api/zshow/zwriteOff";
|
||||
import userSelect from "@/components/UserSelect";
|
||||
|
||||
export default {
|
||||
name: "nftWhiteList",
|
||||
components: { userSelect },
|
||||
data() {
|
||||
return {
|
||||
datas: [],
|
||||
form: {},
|
||||
show: false,
|
||||
loading: false,
|
||||
memberList: [
|
||||
// {
|
||||
// nickname: 1234566,
|
||||
// username: "张三",
|
||||
// },
|
||||
],
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
setPicker(e) {
|
||||
console.log(e);
|
||||
},
|
||||
open(origin) {
|
||||
// 编辑初始化
|
||||
let form = Object.assign({}, origin);
|
||||
this.form = form;
|
||||
console.log("form", form);
|
||||
this. getList()
|
||||
},
|
||||
getList() {
|
||||
fetPage(this.form.showId).then((res) => {
|
||||
this.memberList = res.data.records;
|
||||
console.log(res);
|
||||
});
|
||||
this.show = true;
|
||||
},
|
||||
close() {
|
||||
this.memberList = [];
|
||||
this.show = false;
|
||||
},
|
||||
saveHandler() {
|
||||
if (this.memberList.length < 1) {
|
||||
this.$message.warning("请添加用户");
|
||||
return;
|
||||
}
|
||||
|
||||
const data = this.memberList.map((m) => ({
|
||||
categoryId: this.form.id,
|
||||
userId: m.userId,
|
||||
}));
|
||||
console.log("postZnftverificationauth", postZnftverificationauth);
|
||||
|
||||
postZnftverificationauth(data).then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.$message.success(res.msg);
|
||||
this.finish();
|
||||
}
|
||||
});
|
||||
},
|
||||
finish() {
|
||||
this.close();
|
||||
this.$emit("reloadTable");
|
||||
},
|
||||
chooseUserHandler(user) {
|
||||
console.log("user", user);
|
||||
addObj({
|
||||
memberId: user.id,
|
||||
showId: this.form.showId,
|
||||
}).then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.$message.success("添加用户成功");
|
||||
this.getList()
|
||||
}
|
||||
});
|
||||
// this.memberList.push({
|
||||
// userId: user.id,
|
||||
// nickname: user.nickname,
|
||||
// username: user.username
|
||||
// });
|
||||
},
|
||||
removeItemHandler(index) {
|
||||
this.memberList.splice(index, 1);
|
||||
this.memberList = [...this.memberList];
|
||||
},
|
||||
|
||||
tset() {
|
||||
const obj = {};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-table {
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.el-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
margin-bottom: 20px;
|
||||
font-size: 16px;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
234
web/src/views/zshow/zShow/zshowSchedule.vue
Normal file
234
web/src/views/zshow/zShow/zshowSchedule.vue
Normal file
@ -0,0 +1,234 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog title="演出日程" :visible.sync="show" width="70%">
|
||||
<template #title>
|
||||
<h3>演出日程</h3>
|
||||
<el-button @click="createHandler" type="primary">新建</el-button>
|
||||
</template>
|
||||
<el-table
|
||||
:data="listData"
|
||||
style="width: 100%;"
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
:cell-style="{ 'text-align': 'center' }"
|
||||
:loading="loading"
|
||||
:border="true"
|
||||
>
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="!scope.row.ticketTiers.length" class="center">
|
||||
该日程暂无票档,快去添加票档吧~
|
||||
</div>
|
||||
<el-table
|
||||
:data="scope.row.ticketTiers"
|
||||
style="width: 100%;"
|
||||
:header-cell-style="{
|
||||
'text-align': 'center',
|
||||
'background-color': '#f5f7fa',
|
||||
}"
|
||||
:cell-style="{ 'text-align': 'center' }"
|
||||
:loading="loading"
|
||||
:border="true"
|
||||
v-else
|
||||
>
|
||||
<el-table-column label="票档名称" prop="tierName">
|
||||
</el-table-column>
|
||||
<el-table-column label="票档价格" prop="tierPrice">
|
||||
</el-table-column>
|
||||
<el-table-column label="票档状态" prop="status">
|
||||
<template slot-scope="scope">
|
||||
<el-tag type="info" v-if="scope.row.status === 0">
|
||||
待开售
|
||||
</el-tag>
|
||||
<el-tag type="success" v-if="scope.row.status === 1">
|
||||
开售中
|
||||
</el-tag>
|
||||
<el-tag type="danger" v-if="scope.row.status === 2">
|
||||
已售罄
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="座位数" prop="seatsInTier">
|
||||
</el-table-column>
|
||||
<el-table-column label="可用座位数" prop="seatsAvailableInTier">
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="180">
|
||||
<template slot-scope="scopeChe">
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-edit-outline"
|
||||
size="small"
|
||||
plain
|
||||
@click="editHandlerTier(scopeChe.row)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
size="small"
|
||||
plain
|
||||
@click="deleteHandlerTier(scopeChe.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="场次名称" prop="scheduleName">
|
||||
</el-table-column>
|
||||
<el-table-column label="日程时间" prop="scheduleTime">
|
||||
</el-table-column>
|
||||
<el-table-column label="总座位数" prop="seatsTotal"> </el-table-column>
|
||||
<el-table-column label="可用座位数" prop="seatsAvailable">
|
||||
</el-table-column>
|
||||
<el-table-column label="场次状态" prop="status">
|
||||
<template slot-scope="scope">
|
||||
<el-tag type="info" v-if="scope.row.status === 0">
|
||||
待开售
|
||||
</el-tag>
|
||||
<el-tag type="success" v-if="scope.row.status === 1">
|
||||
开售中
|
||||
</el-tag>
|
||||
<el-tag type="danger" v-if="scope.row.status === 2">
|
||||
已售罄
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column fixed="right" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-circle-plus-outline"
|
||||
size="small"
|
||||
plain
|
||||
@click="addTierDialog(scope.row)"
|
||||
>添加票档</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-edit-outline"
|
||||
size="small"
|
||||
plain
|
||||
@click="editHandler(scope.row)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
size="small"
|
||||
plain
|
||||
@click="deleteHandler(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
|
||||
<showScheduleForm
|
||||
ref="scheduleForm"
|
||||
@reloadTable="fetPage()"
|
||||
></showScheduleForm>
|
||||
|
||||
<tiketTierForm ref="tiketTierForm" @reloadTable="fetPage()"></tiketTierForm>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { fetPage, delObj } from "@/api/zshow/zShowSchedule";
|
||||
import { delTierObj } from "@/api/zshow/zTicketTier";
|
||||
|
||||
import showScheduleForm from "./showScheduleForm.vue";
|
||||
import tiketTierForm from "./tiketTierForm.vue";
|
||||
|
||||
export default {
|
||||
components: { showScheduleForm, tiketTierForm },
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
showId: undefined,
|
||||
loading: false,
|
||||
listData: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
open(row) {
|
||||
console.log(row);
|
||||
this.show = true;
|
||||
this.showId = row.showId;
|
||||
this.fetPage();
|
||||
},
|
||||
fetPage() {
|
||||
this.loading = true;
|
||||
fetPage(this.page).then((res) => {
|
||||
const { records, total } = res.data;
|
||||
this.listData = records;
|
||||
// this.page.total = total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 新建日程
|
||||
createHandler() {
|
||||
this.$refs.scheduleForm.open({ edit: false, showId: this.showId });
|
||||
},
|
||||
// 编辑日程
|
||||
editHandler(row) {
|
||||
this.$refs.scheduleForm.open({ edit: true, row: row });
|
||||
},
|
||||
// 删除日程
|
||||
deleteHandler(row) {
|
||||
this.$confirm("此操作将永久删除该日程, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
}).then(() => {
|
||||
delObj(row.scheduleId).then((res) => {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "删除成功!",
|
||||
});
|
||||
this.fetPage();
|
||||
});
|
||||
});
|
||||
},
|
||||
// 添加票档
|
||||
addTierDialog(row) {
|
||||
this.$refs.tiketTierForm.open({
|
||||
edit: false,
|
||||
showId: this.showId,
|
||||
scheduleId: row.scheduleId,
|
||||
});
|
||||
},
|
||||
// 编辑票档
|
||||
editHandlerTier(row) {
|
||||
this.$refs.tiketTierForm.open({ edit: true, row: row });
|
||||
},
|
||||
// 删除票档
|
||||
deleteHandlerTier(row) {
|
||||
this.$confirm(`是否删除${row.tierName}票档?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
delTierObj(row.tierId).then((res) => {
|
||||
if (res.code === "success") {
|
||||
this.$message.success("删除成功!");
|
||||
this.fetPage();
|
||||
} else {
|
||||
this.$message.error("删除失败");
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
@ -4,7 +4,7 @@ const defaultSettings = require('./src/settings.js')
|
||||
// 测试 https://192.168.3.130:8088
|
||||
// 正式 http://139.159.250.24:8088
|
||||
// const url ='http://43.139.12.226:8888/admin';
|
||||
const url = 'http://localhost:8088';
|
||||
const url = 'http://192.168.3.18:8088';
|
||||
|
||||
function resolve(dir) {
|
||||
return path.join(__dirname, dir)
|
||||
|
Loading…
x
Reference in New Issue
Block a user