Browse Source

排版相关页

master
pengda 1 month ago
parent
commit
4cab49d837
  1. 31
      src/router/index.js
  2. 210
      src/views/super/paiban/college.vue
  3. 166
      src/views/super/paiban/orderlist.vue
  4. 131
      src/views/super/paiban/tpl.vue

31
src/router/index.js

@ -572,7 +572,32 @@ const routes = [{
}
},
// 管理员end
// 排版 start
{
path: '/super/paiban/tpl',
name: '模板管理',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/paiban/tpl.vue'),
meta: {
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: '/super/paiban/college',
name: '收录申请',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/paiban/college.vue'),
meta: {
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: '/super/paiban/orderlist',
name: '订单管理',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/paiban/orderlist.vue'),
meta: {
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
// 排版 end
]
first_child_router = routes.filter(item => item.isFirst);
const router = new VueRouter({
@ -616,6 +641,10 @@ router.beforeEach((to, from, next) => {
store.commit('SET_CUSTOMIZE', true);
store.commit('SET_SLIDER_MENU', 'rankMenuData');
}
if (to.path.includes('/super/paiban/')) { //匹配包含此路径的 侧边栏数据
store.commit('SET_SIDEBAR', false);
}
}
if (blackFooterList.includes(to.path)) {
store.commit('SET_FOOTER', false); // 页面不显示底部

210
src/views/super/paiban/college.vue

@ -0,0 +1,210 @@
<template>
<div class="main-content12 recharge-wrap">
<div class="flex-common">
<el-form class="mt24">
<div class="flex-between">
<div class="flex filter-area">
<label for="">收录申请</label>
<GuipSelect width="150px" clearable label="状态" :options="['麻辣烫','提拉米苏']" v-model="review_status" />
<GuipSelect width="150px" clearable label="学历" :options="['麻辣烫','提拉米苏']" v-model="degree" />
<GuipInput ref="GuipInput" label="学校" placeholder="输入学校名称" v-model="school" />
</div>
<GuipButton>收录成功通知</GuipButton>
</div>
<GuipTable :tableData="tableList" :key="tableKey" ref="multipleTable" autoColumn="true" :loading="tableLoading" style="flex:1">
<template>
<el-table-column fixed="left" prop="school_name" label="学校" min-width="200"></el-table-column>
<el-table-column prop="degree_name" label="学历" min-width="200"></el-table-column>
<el-table-column prop="college_name" label="学院" min-width="200"></el-table-column>
<el-table-column prop="review_status_desc" label="要求" min-width="200"></el-table-column>
<el-table-column prop="review_status_desc" label="论文" min-width="200"></el-table-column>
<el-table-column prop="review_status_desc" label="上传时间" min-width="200"></el-table-column>
<el-table-column prop="review_status_desc" label="状态" min-width="200"></el-table-column>
<el-table-column fixed="right" prop="tid" label="操作" min-width="100">
<template slot-scope="scope">
<div class="flex">
<GuipButton type="text" @click="handleConfirm(scope.row.id)">收录</GuipButton>
<GuipButton type="text" @click="handleRefuse(scope.row)">拒绝</GuipButton>
</div>
</template>
</el-table-column>
</template>
</GuipTable>
<el-pagination background @size-change='handleSizeChange' @current-change='handleCurrentChange'
:current-page="currentPage" :page-size=pageSize layout="prev, pager, next,jumper"
:total="parseInt(total)">
</el-pagination>
</el-form>
</div>
<GuipDialog :dialogVisible="isShowDialog" title="拒绝收录原因" :show-close-button="false"
:show-cancel-button="true" @confirm="handleConfirmRefuse" @cancel="handleCancelRefuse">
<!-- 自定义内容 -->
<el-form>
<GuipTextarea :label="'拒绝收录'+tpl_name+'模板'" :styleObject="{ width: '450px' }" placeholder="说明原因,发送短信给用户手机" autosize v-model="refuse_reason" />
</el-form>
</GuipDialog>
</div>
</template>
<script>
import GuipButton from "@/components/GuipButton.vue";
import GuipTable from "@/components/GuipTable.vue";
import GuipSelect from "@/components/GuipSelect.vue";
import GuipInput from "@/components/GuipInput.vue";
import GuipDialog from "@/components/GuipDialog.vue";
import GuipTextarea from "@/components/GuipTextarea.vue";
export default {
components: {
GuipTextarea,
GuipDialog,
GuipInput, GuipSelect,
GuipTable,
GuipButton,
},
options: { styleIsolation: "shared" },
data() {
return {
tableLoading:false,
tableKey: '',
school:'',
degree:'',
review_status: -1,
tableList:[],
currentPage: 1, //
pageSize: 20, //
total: 0, //
isShowDialog:false,
refuse_id:0,
tpl_name:'',
refuse_reason:''
}
},
mounted() {
this.$nextTick(()=>{
this.init()
})
},
methods: {
init(){
this.tableList = []
this.total = 0
this.total_money = 0
this.currentPage = 1
this.pageSize = 20
this.getList()
},
getList() {
try {
this.$http('POST', '/supernew/ajax_get_paiban_review_list', {
school: this.school,
degree: this.degree,
review_status: this.review_status,
page: this.currentPage,
}).then(response => {
this.$nextTick(() => {
this.tableList = response.data.list
this.total = response.data.count
})
}).catch(error => {
console.error(error, 'error')
})
} catch (error) {
console.error('数据加载失败:', error)
}
},
handleSizeChange(val) {
this.pageSize = val
this.getList()
},
handleCurrentChange(val) {
this.currentPage = val
this.getList()
},
handleConfirm(id){
console.log(id)
this.isShowDialog = false
try {
this.$http('POST', '/supernew/ajax_update_paiban_template_review_status', {
template_id: id,
review_status: 1,
}).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
this.getList()
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
} catch (error) {
console.error('数据加载失败:', error)
}
},
handleRefuse(row){
this.isShowDialog = true
this.refuse_id = row.id
this.tpl_name += row.school_name
if(row.degree_name) this.tpl_name += '-'+row.degree_name
if(row.college_name) this.tpl_name += '-'+row.college_name
},
handleCancelRefuse(){
this.isShowDialog = false
},
handleConfirmRefuse(){
try {
this.$http('POST', '/supernew/ajax_update_paiban_template_review_status', {
template_id: this.refuse_id,
review_status: 3,
refuse_reason: this.refuse_reason
}).then(response => {
this.$nextTick(() => {
this.isShowDialog = false;
if (response.status) {
this.$Message.success(response.info);
this.getList()
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
} catch (error) {
console.error('数据加载失败:', error)
}
},
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-form-item{
margin: 0;
}
::v-deep .el-form-item__label{
margin-bottom: 12px;
}
.filter-area{
margin-bottom: 20px;
gap: 32px;
label{
letter-spacing: 0.08em;
font-size: 14px;
font-weight: bold;
line-height: normal;
color: #1E2226;
}
}
</style>

166
src/views/super/paiban/orderlist.vue

@ -0,0 +1,166 @@
<template>
<div class="main-content12 recharge-wrap">
<div class="flex-common">
<el-form class="mt24">
<div class="flex-between filter-area">
<label for="">订单管理</label>
<div class="flex gap12">
<GuipInput ref="GuipInput" label="订单号" placeholder="请输入订单号" v-model="orderId" />
<GuipButton type="system">搜索</GuipButton>
</div>
</div>
<GuipTable :tableData="tableList" :key="tableKey" ref="multipleTable" autoColumn="true" :loading="tableLoading" style="flex:1">
<template>
<el-table-column fixed="left" prop="school_name" label="ID" min-width="200"></el-table-column>
<el-table-column prop="degree_name" label="订单号" min-width="200"></el-table-column>
<el-table-column prop="college_name" label="支付方式" min-width="200"></el-table-column>
<el-table-column prop="src" label="渠道" min-width="200">
<template slot-scope="scope">
<div class="flex">
<GuipToolTip :content="scope.row.src_desc">
<img class="wh-16" :src="getChannelImg(scope.row.src)" alt="">
</GuipToolTip>
</div>
</template>
</el-table-column>
<el-table-column prop="review_status_desc" label="IP" min-width="200"></el-table-column>
<el-table-column prop="review_status_desc" label="销售时间" min-width="200"></el-table-column>
<el-table-column prop="review_status_desc" label="订单收入" min-width="200"></el-table-column>
<el-table-column prop="status_desc" label="状态" min-width="200">
<template slot-scope="scope">
<div class="flex">
<div v-if="scope.row.status == 1" class="status-item divgreen">
<span class="fontgreen">{{ scope.row.status_desc }}</span>
</div>
<div v-else-if="scope.row.status == 3 || scope.row.status == 11 || scope.row.status == 12"
class="status-item divblue">
<span class="fontblue">{{ scope.row.status_desc }}</span>
</div>
<div v-else-if="scope.row.status == 2 || scope.row.status == 10 || scope.row.status == 4"
class="status-item divred">
<span class="fontred">{{ scope.row.status_desc }}</span>
</div>
<div v-else-if="scope.row.status == 0 || scope.row.status == 8"
class="status-item divgray">
<span class="fontgray">{{ scope.row.status_desc }}</span>
</div>
<div v-else-if="scope.row.status == 5" class="status-item divorange">
<span class="fontorange">{{ scope.row.status_desc }}</span>
</div>
<div v-else-if="scope.row.status == 6 || scope.row.status == 7"
class="status-item divpurple">
<span class="fontpurple">{{ scope.row.status_desc }}</span>
</div>
<GuipToolTip v-if="scope.row.status == 1 && scope.row.is_downloaded_report == 1"
content="已下载报告标识">
<img class="wh-16 ml-7" src="@/assets/downloaded.svg" />
</GuipToolTip>
</div>
</template>
</el-table-column>
<el-table-column prop="status_desc" label="原论文" min-width="200"></el-table-column>
<el-table-column fixed="right" prop="tid" label="操作" min-width="100">
<template slot-scope="scope">
<GuipButton type="text" @click="handleShowInfo(scope.row.tid)">编辑</GuipButton>
<GuipButton type="text" @click="handleShowInfo(scope.row.tid)">拒绝</GuipButton>
</template>
</el-table-column>
</template>
</GuipTable>
<el-pagination background @size-change='handleSizeChange' @current-change='handleCurrentChange'
:current-page="currentPage" :page-size=pageSize layout="prev, pager, next,jumper"
:total="parseInt(total)">
</el-pagination>
</el-form>
</div>
</div>
</template>
<script>
import GuipButton from "@/components/GuipButton.vue";
import GuipTable from "@/components/GuipTable.vue";
import GuipInput from "@/components/GuipInput.vue";
import GuipToolTip from "@/components/GuipToolTip.vue";
export default {
components: {
GuipToolTip,
GuipInput,
GuipTable,
GuipButton,
},
options: { styleIsolation: "shared" },
data() {
return {
tableLoading:false,
tableKey: '',
orderId:'',
tableList:[],
currentPage: 1, //
pageSize: 20, //
total: 0, //
}
},
mounted() {
this.$nextTick(()=>{
this.init()
})
},
methods: {
init(){
this.tableList = []
this.total = 0
this.total_money = 0
this.currentPage = 1
this.pageSize = 20
this.getList()
},
getList() {
try {
this.$http('POST', '/supernew/ajax_get_paiban_template_list', {
orderId: this.orderId
}).then(response => {
this.$nextTick(() => {
this.tableList = response.data.list
this.total = response.data.count
})
}).catch(error => {
console.error(error, 'error')
})
} catch (error) {
console.error('数据加载失败:', error)
}
},
handleSizeChange(val) {
this.pageSize = val
this.getList()
},
handleCurrentChange(val) {
this.currentPage = val
this.getList()
},
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-form-item{
margin: 0;
}
.filter-area{
margin-bottom: 20px;
gap: 32px;
label{
letter-spacing: 0.08em;
font-size: 14px;
font-weight: bold;
line-height: normal;
color: #1E2226;
}
}
</style>

131
src/views/super/paiban/tpl.vue

@ -0,0 +1,131 @@
<template>
<div class="main-content12 recharge-wrap">
<div class="flex-common">
<el-form class="mt24">
<div class="flex-between">
<div class="flex filter-area">
<label for="">模板列表</label>
<GuipSelect width="150px" clearable label="学历" :options="['麻辣烫','提拉米苏']" v-model="degree" />
<GuipInput ref="GuipInput" label="学校" placeholder="输入学校名称" v-model="school" />
</div>
<GuipButton>添加模板</GuipButton>
</div>
<GuipTable :tableData="tableList" :key="tableKey" ref="multipleTable" autoColumn="true" :loading="tableLoading" style="flex:1">
<template>
<el-table-column fixed="left" prop="school_name" label="学校" min-width="200"></el-table-column>
<el-table-column prop="degree_name" label="学历" min-width="200"></el-table-column>
<el-table-column prop="college_name" label="学院" min-width="200"></el-table-column>
<el-table-column prop="status_desc" label="更新时间" min-width="200"></el-table-column>
<el-table-column prop="status_desc" label="状态" min-width="200"></el-table-column>
<el-table-column fixed="right" prop="tid" label="操作" min-width="100">
<template slot-scope="scope">
<GuipButton type="text" @click="jumpEdit(scope.row.id)">编辑</GuipButton>
</template>
</el-table-column>
</template>
</GuipTable>
<el-pagination background @size-change='handleSizeChange' @current-change='handleCurrentChange'
:current-page="currentPage" :page-size=pageSize layout="prev, pager, next,jumper"
:total="parseInt(total)">
</el-pagination>
</el-form>
</div>
</div>
</template>
<script>
import GuipButton from "@/components/GuipButton.vue";
import GuipTable from "@/components/GuipTable.vue";
import GuipSelect from "@/components/GuipSelect.vue";
import GuipInput from "@/components/GuipInput.vue";
export default {
components: {
GuipInput,
GuipSelect,
GuipTable,
GuipButton,
},
options: { styleIsolation: "shared" },
data() {
return {
tableLoading:false,
tableKey: '',
school:'',
degree:'',
status:'',
tableList:[],
currentPage: 1, //
pageSize: 20, //
total: 0, //
}
},
mounted() {
this.$nextTick(()=>{
this.init()
})
},
methods: {
init(){
this.tableList = []
this.total = 0
this.total_money = 0
this.currentPage = 1
this.pageSize = 20
this.getList()
},
getList() {
try {
this.$http('POST', '/supernew/ajax_get_paiban_template_list', {
school: this.school,
degree: this.degree,
status: this.status,
page: this.currentPage,
}).then(response => {
this.$nextTick(() => {
this.tableList = response.data.list
this.total = response.data.count
})
}).catch(error => {
console.error(error, 'error')
})
} catch (error) {
console.error('数据加载失败:', error)
}
},
handleSizeChange(val) {
this.pageSize = val
this.getList()
},
handleCurrentChange(val) {
this.currentPage = val
this.getList()
},
jumpEdit(id){
console.log(id)
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-form-item{
margin: 0;
}
.filter-area{
margin-bottom: 20px;
gap: 32px;
label{
letter-spacing: 0.08em;
font-size: 14px;
font-weight: bold;
line-height: normal;
color: #1E2226;
}
}
</style>
Loading…
Cancel
Save