Commit 92452b34 by Wangmin

Merge remote-tracking branch 'origin/master'

parents e307fa79 b14db3e2
# 页面标题
VUE_APP_TITLE = RuoYi-Vue-Plus后台管理系统
VUE_APP_TITLE = 闪陪科技
# 开发环境配置
ENV = 'development'
......
# 页面标题
VUE_APP_TITLE = RuoYi-Vue-Plus后台管理系统
VUE_APP_TITLE = 闪陪科技
# 生产环境配置
ENV = 'production'
# 若依管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_API = '/api'
# 应用访问路径 例如使用前缀 /admin/
VUE_APP_CONTEXT_PATH = '/'
......
{
"name": "ruoyi-vue-plus",
"version": "4.8.0",
"description": "RuoYi-Vue-Plus后台管理系统",
"description": "闪陪科技",
"author": "LionLi",
"license": "MIT",
"scripts": {
......@@ -32,7 +32,7 @@
],
"repository": {
"type": "git",
"url": "https://gitee.com/dromara/RuoYi-Vue-Plus.git"
"url": "https://gitee.com/dromara/陪诊.git"
},
"dependencies": {
"@riophae/vue-treeselect": "0.4.0",
......
No preview for this file type
......@@ -6,7 +6,8 @@
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
<!-- <title><%= webpackConfig.name %></title> -->
<title>闪陪科技</title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,
......
<!--
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-07 10:41:26
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-15 15:56:29
* @FilePath: \peizhen-vue\src\App.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div id="app">
<router-view />
......@@ -11,14 +19,18 @@ import ThemePicker from "@/components/ThemePicker";
export default {
name: "App",
components: { ThemePicker },
metaInfo() {
return {
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
titleTemplate: title => {
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
}
}
}
metaInfo() {
return {
title:
this.$store.state.settings.dynamicTitle &&
this.$store.state.settings.title,
titleTemplate: (title) => {
return title
? `${title} - ${process.env.VUE_APP_TITLE}`
: process.env.VUE_APP_TITLE;
},
};
},
};
</script>
<style scoped>
......@@ -26,3 +38,8 @@ export default {
display: none;
}
</style>
<style lang="css">
.el-tooltip__popper {
max-width: 50%;
}
</style>
import request from '@/utils/request'
// 查询商品分类列表
export function listGoodsCategory(query) {
return request({
url: '/system/goodsCategory/list',
method: 'get',
params: query
})
}
// 查询商品分类详细
export function getGoodsCategory(id) {
return request({
url: '/system/goodsCategory/' + id,
method: 'get'
})
}
// 新增商品分类
export function addGoodsCategory(data) {
return request({
url: '/system/goodsCategory',
method: 'post',
data: data
})
}
// 修改商品分类
export function updateGoodsCategory(data) {
return request({
url: '/system/goodsCategory',
method: 'put',
data: data
})
}
// 删除商品分类
export function delGoodsCategory(id) {
return request({
url: '/system/goodsCategory/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询陪诊员/商户提现列表
export function listIncome(query) {
return request({
url: '/system/income/list',
method: 'get',
params: query
})
}
// 查询陪诊员/商户提现详细
export function getIncome(id) {
return request({
url: '/system/income/' + id,
method: 'get'
})
}
// 新增陪诊员/商户提现
export function addIncome(data) {
return request({
url: '/system/income',
method: 'post',
data: data
})
}
// 修改陪诊员/商户提现
export function updateIncome(data) {
return request({
url: '/system/income',
method: 'put',
data: data
})
}
// 删除陪诊员/商户提现
export function delIncome(id) {
return request({
url: '/system/income/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询支付订单列表
export function listPaymentRecord(query) {
return request({
url: '/system/paymentRecord/list',
method: 'get',
params: query
})
}
// 查询支付订单详细
export function getPaymentRecord(id) {
return request({
url: '/system/paymentRecord/' + id,
method: 'get'
})
}
// 新增支付订单
export function addPaymentRecord(data) {
return request({
url: '/system/paymentRecord',
method: 'post',
data: data
})
}
// 修改支付订单
export function updatePaymentRecord(data) {
return request({
url: '/system/paymentRecord',
method: 'put',
data: data
})
}
// 删除支付订单
export function delPaymentRecord(id) {
return request({
url: '/system/paymentRecord/' + id,
method: 'delete'
})
}
import request from "@/utils/request";
// 查询用户退款列表
export function listUserRefund(query) {
return request({
url: "/system/userRefund/list",
method: "get",
params: query,
});
}
// 查询用户退款详细
export function getUserRefund(id) {
return request({
url: "/system/userRefund/" + id,
method: "get",
});
}
// 新增用户退款
export function addUserRefund(data) {
return request({
url: "/system/userRefund",
method: "post",
data: data,
});
}
// 修改用户退款
export function updateUserRefund(data) {
return request({
url: "/system/userRefund",
method: "put",
data: data,
});
}
// 删除用户退款
export function delUserRefund(id) {
return request({
url: "/system/userRefund/" + id,
method: "delete",
});
}
// 通过/拒绝
export function refundPUT(data) {
return request({
url: "/system/userRefund/refund",
method: "put",
data: data,
});
}
import request from '@/utils/request'
// 查询商品列表
export function listGoods(query) {
return request({
url: '/system/goods/list',
method: 'get',
params: query
})
}
// 查询商品详细
export function getGoods(id) {
return request({
url: '/system/goods/' + id,
method: 'get'
})
}
// 新增商品
export function addGoods(data) {
return request({
url: '/system/goods',
method: 'post',
data: data
})
}
// 修改商品
export function updateGoods(data) {
return request({
url: '/system/goods',
method: 'put',
data: data
})
}
// 删除商品
export function delGoods(id) {
return request({
url: '/system/goods/' + id,
method: 'delete'
})
}
/*
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-07 16:09:29
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-08 13:23:17
* @FilePath: \peizhen-vue\src\api\hispotalManage\doctor.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import request from '@/utils/request'
// 查询医生列表
export function listDoctor(query) {
return request({
url: '/system/doctor/list',
method: 'get',
params: query
})
}
// 查询医院列表
export function listHospital(query) {
return request({
url: '/system/hospital/list',
method: 'get',
params: query
})
}
// 查询医生详细
export function getDoctor(id) {
return request({
url: '/system/doctor/' + id,
method: 'get'
})
}
// 新增医生
export function addDoctor(data) {
return request({
url: '/system/doctor',
method: 'post',
data: data
})
}
// 修改医生
export function updateDoctor(data) {
return request({
url: '/system/doctor',
method: 'put',
data: data
})
}
// 删除医生
export function delDoctor(id) {
return request({
url: '/system/doctor/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询医院列表
export function listHospital(query) {
return request({
url: '/system/hospital/list',
method: 'get',
params: query
})
}
// 查询医院详细
export function getHospital(id) {
return request({
url: '/system/hospital/' + id,
method: 'get'
})
}
// 新增医院
export function addHospital(data) {
return request({
url: '/system/hospital',
method: 'post',
data: data
})
}
// 修改医院
export function updateHospital(data) {
return request({
url: '/system/hospital',
method: 'put',
data: data
})
}
// 删除医院
export function delHospital(id) {
return request({
url: '/system/hospital/' + id,
method: 'delete'
})
}
// 医院等级列表
export function hospitalLevelListGET(query) {
return request({
url: '/system/common/hospitalLevelList',
method: 'get',
params: query
})
}
// 医院类别列表
export function hospitalTypeListGET(query) {
return request({
url: '/system/common/hospitalTypeList',
method: 'get',
params: query
})
}
// 城市列表
export function cityVoListGET(query) {
return request({
url: '/system/common/cityVoList',
method: 'get',
params: query
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询科室列表
export function listDepartment(query) {
return request({
url: '/system/department/list',
method: 'get',
params: query
})
}
// 查询科室详细
export function getDepartment(id) {
return request({
url: '/system/department/' + id,
method: 'get'
})
}
// 新增科室
export function addDepartment(data) {
return request({
url: '/system/department',
method: 'post',
data: data
})
}
// 修改科室
export function updateDepartment(data) {
return request({
url: '/system/department',
method: 'put',
data: data
})
}
// 删除科室
export function delDepartment(id) {
return request({
url: '/system/department/' + id,
method: 'delete'
})
}
/*
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-13 14:18:29
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-13 14:25:22
* @FilePath: \peizhen-vue\src\api\income\index.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import request from '@/utils/request'
// 查询商城提现审批列表
export function listIncome(query) {
return request({
url: '/system/storeIncome/list',
method: 'get',
params: query
})
}
// 查询商城提现审批详细
export function getIncome(id) {
return request({
url: '/system/storeIncome/' + id,
method: 'get'
})
}
// 新增商城提现审批
export function addIncome(data) {
return request({
url: '/system/storeIncome',
method: 'post',
data: data
})
}
// 修改商城提现审批
export function updateIncome(data) {
return request({
url: '/system/storeIncome',
method: 'put',
data: data
})
}
// 删除商城提现审批
export function delIncome(id) {
return request({
url: '/system/storeIncome/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询商城商户申请列表
export function listApply(query) {
return request({
url: '/system/apply/list',
method: 'get',
params: query
})
}
// 查询商城商户申请详细
export function getApply(id) {
return request({
url: '/system/apply/' + id,
method: 'get'
})
}
// 新增商城商户申请
export function addApply(data) {
return request({
url: '/system/apply',
method: 'post',
data: data
})
}
// 修改商城商户申请
export function updateApply(data) {
return request({
url: '/system/apply',
method: 'put',
data: data
})
}
// 删除商城商户申请
export function delApply(id) {
return request({
url: '/system/apply/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询商城提现审批列表
export function listIncome(query) {
return request({
url: '/system/income/list',
method: 'get',
params: query
})
}
// 查询商城提现审批详细
export function getIncome(id) {
return request({
url: '/system/income/' + id,
method: 'get'
})
}
// 新增商城提现审批
export function addIncome(data) {
return request({
url: '/system/income',
method: 'post',
data: data
})
}
// 修改商城提现审批
export function updateIncome(data) {
return request({
url: '/system/income',
method: 'put',
data: data
})
}
// 删除商城提现审批
export function delIncome(id) {
return request({
url: '/system/income/' + id,
method: 'delete'
})
}
/*
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-11 10:51:38
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-11 11:43:47
* @FilePath: \peizhen-vue\src\api\mallManagement\order.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import request from '@/utils/request'
// 查询商城订单列表
export function listOrder(query) {
return request({
url: '/system/storeOrder/list',
method: 'get',
params: query
})
}
// 查询商城订单详细
export function getOrder(id) {
return request({
url: '/system/order/' + id,
method: 'get'
})
}
// 新增商城订单
export function addOrder(data) {
return request({
url: '/system/order',
method: 'post',
data: data
})
}
// 修改商城订单
export function updateOrder(data) {
return request({
url: '/system/order',
method: 'put',
data: data
})
}
// 删除商城订单
export function delOrder(id) {
return request({
url: '/system/order/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询文章列表
export function listArticle(query) {
return request({
url: '/system/article/list',
method: 'get',
params: query
})
}
// 查询文章详细
export function getArticle(id) {
return request({
url: '/system/article/' + id,
method: 'get'
})
}
// 新增文章
export function addArticle(data) {
return request({
url: '/system/article',
method: 'post',
data: data
})
}
// 修改文章
export function updateArticle(data) {
return request({
url: '/system/article',
method: 'put',
data: data
})
}
// 删除文章
export function delArticle(id) {
return request({
url: '/system/article/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询业务列表
export function listBusiness(query) {
return request({
url: '/system/business/list',
method: 'get',
params: query
})
}
// 查询业务详细
export function getBusiness(id) {
return request({
url: '/system/business/' + id,
method: 'get'
})
}
// 新增业务
export function addBusiness(data) {
return request({
url: '/system/business',
method: 'post',
data: data
})
}
// 修改业务
export function updateBusiness(data) {
return request({
url: '/system/business',
method: 'put',
data: data
})
}
// 删除业务
export function delBusiness(id) {
return request({
url: '/system/business/' + id,
method: 'delete'
})
}
//获取服务详细信息
export function getServe(id) {
return request({
url: 'system/services/' + id,
method: 'get'
})
}
// 新增服务
export function addServe(data) {
return request({
url: '/system/services',
method: 'post',
data: data
})
}
// 修改服务
export function updateServe(data) {
return request({
url: '/system/services',
method: 'put',
data: data
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询轮播图列表
export function listCarousel(query) {
return request({
url: '/system/carousel/list',
method: 'get',
params: query
})
}
// 查询轮播图详细
export function getCarousel(id) {
return request({
url: '/system/carousel/' + id,
method: 'get'
})
}
// 新增轮播图
export function addCarousel(data) {
return request({
url: '/system/carousel',
method: 'post',
data: data
})
}
// 修改轮播图
export function updateCarousel(data) {
return request({
url: '/system/carousel',
method: 'put',
data: data
})
}
// 删除轮播图
export function delCarousel(id) {
return request({
url: '/system/carousel/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询新闻资讯列表
export function listInformation(query) {
return request({
url: '/system/information/list',
method: 'get',
params: query
})
}
// 查询新闻资讯详细
export function getInformation(id) {
return request({
url: '/system/information/' + id,
method: 'get'
})
}
// 新增新闻资讯
export function addInformation(data) {
return request({
url: '/system/information',
method: 'post',
data: data
})
}
// 修改新闻资讯
export function updateInformation(data) {
return request({
url: '/system/information',
method: 'put',
data: data
})
}
// 删除新闻资讯
export function delInformation(id) {
return request({
url: '/system/information/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询公告列表
export function listNotice(query) {
return request({
url: '/system/notices/list',
method: 'get',
params: query
})
}
// 查询公告详细
export function getNotice(id) {
return request({
url: '/system/notices/' + id,
method: 'get'
})
}
// 新增公告
export function addNotice(data) {
return request({
url: '/system/notices',
method: 'post',
data: data
})
}
// 修改公告
export function updateNotice(data) {
return request({
url: '/system/notices',
method: 'put',
data: data
})
}
// 删除公告
export function delNotice(id) {
return request({
url: '/system/notices/' + id,
method: 'delete'
})
}
/*
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-13 09:41:06
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-13 09:41:28
* @FilePath: \peizhen-vue\src\api\orderManage\index.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import request from '@/utils/request'
// 查询预约陪诊订单列表
export function listOrder(query) {
return request({
url: '/system/storeOrder/list',
method: 'get',
params: query
})
}
// 查询预约陪诊订单详细
export function getOrder(id) {
return request({
url: '/system/storeOrder/' + id,
method: 'get'
})
}
// 新增预约陪诊订单
export function addOrder(data) {
return request({
url: '/system/storeOrder',
method: 'post',
data: data
})
}
// 修改预约陪诊订单
export function updateOrder(data) {
return request({
url: '/system/storeOrder',
method: 'put',
data: data
})
}
// 删除预约陪诊订单
export function delOrder(id) {
return request({
url: '/system/storeOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询代办挂号订单列表
export function listDbghOrder(query) {
return request({
url: '/system/dbghOrder/list',
method: 'get',
params: query
})
}
// 查询代办挂号订单详细
export function getDbghOrder(id) {
return request({
url: '/system/dbghOrder/' + id,
method: 'get'
})
}
// 新增代办挂号订单
export function addDbghOrder(data) {
return request({
url: '/system/dbghOrder',
method: 'post',
data: data
})
}
// 修改代办挂号订单
export function updateDbghOrder(data) {
return request({
url: '/system/dbghOrder',
method: 'put',
data: data
})
}
// 删除代办挂号订单
export function delDbghOrder(id) {
return request({
url: '/system/dbghOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询代办买药订单列表
export function listDbmyOrder(query) {
return request({
url: '/system/dbmyOrder/list',
method: 'get',
params: query
})
}
// 查询代办买药订单详细
export function getDbmyOrder(id) {
return request({
url: '/system/dbmyOrder/' + id,
method: 'get'
})
}
// 新增代办买药订单
export function addDbmyOrder(data) {
return request({
url: '/system/dbmyOrder',
method: 'post',
data: data
})
}
// 修改代办买药订单
export function updateDbmyOrder(data) {
return request({
url: '/system/dbmyOrder',
method: 'put',
data: data
})
}
// 删除代办买药订单
export function delDbmyOrder(id) {
return request({
url: '/system/dbmyOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询代办问诊订单列表
export function listDbwzOrder(query) {
return request({
url: '/system/dbwzOrder/list',
method: 'get',
params: query
})
}
// 查询代办问诊订单详细
export function getDbwzOrder(id) {
return request({
url: '/system/dbwzOrder/' + id,
method: 'get'
})
}
// 新增代办问诊订单
export function addDbwzOrder(data) {
return request({
url: '/system/dbwzOrder',
method: 'post',
data: data
})
}
// 修改代办问诊订单
export function updateDbwzOrder(data) {
return request({
url: '/system/dbwzOrder',
method: 'put',
data: data
})
}
// 删除代办问诊订单
export function delDbwzOrder(id) {
return request({
url: '/system/dbwzOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询预约陪诊订单列表
export function listOrder(query) {
return request({
url: '/system/yypzOrder/list',
method: 'get',
params: query
})
}
// 查询预约陪诊订单详细
export function getOrder(id) {
return request({
url: '/system/yypzOrder/' + id,
method: 'get'
})
}
// 新增预约陪诊订单
export function addOrder(data) {
return request({
url: '/system/yypzOrder',
method: 'post',
data: data
})
}
// 修改预约陪诊订单
export function updateOrder(data) {
return request({
url: '/system/yypzOrder',
method: 'put',
data: data
})
}
// 删除预约陪诊订单
export function delOrder(id) {
return request({
url: '/system/yypzOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询诊前挂号订单列表
export function listZqghOrder(query) {
return request({
url: '/system/zqghOrder/list',
method: 'get',
params: query
})
}
// 查询诊前挂号订单详细
export function getZqghOrder(id) {
return request({
url: '/system/zqghOrder/' + id,
method: 'get'
})
}
// 新增诊前挂号订单
export function addZqghOrder(data) {
return request({
url: '/system/zqghOrder',
method: 'post',
data: data
})
}
// 修改诊前挂号订单
export function updateZqghOrder(data) {
return request({
url: '/system/zqghOrder',
method: 'put',
data: data
})
}
// 删除诊前挂号订单
export function delZqghOrder(id) {
return request({
url: '/system/zqghOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询住院陪诊订单列表
export function listZyphOrder(query) {
return request({
url: '/system/zyphOrder/list',
method: 'get',
params: query
})
}
// 查询住院陪诊订单详细
export function getZyphOrder(id) {
return request({
url: '/system/zyphOrder/' + id,
method: 'get'
})
}
// 新增住院陪诊订单
export function addZyphOrder(data) {
return request({
url: '/system/zyphOrder',
method: 'post',
data: data
})
}
// 修改住院陪诊订单
export function updateZyphOrder(data) {
return request({
url: '/system/zyphOrder',
method: 'put',
data: data
})
}
// 删除住院陪诊订单
export function delZyphOrder(id) {
return request({
url: '/system/zyphOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询商品标签列表
export function listGoodsTag(query) {
return request({
url: '/system/goodsTag/list',
method: 'get',
params: query
})
}
// 查询商品标签详细
export function getGoodsTag(id) {
return request({
url: '/system/goodsTag/' + id,
method: 'get'
})
}
// 新增商品标签
export function addGoodsTag(data) {
return request({
url: '/system/goodsTag',
method: 'post',
data: data
})
}
// 修改商品标签
export function updateGoodsTag(data) {
return request({
url: '/system/goodsTag',
method: 'put',
data: data
})
}
// 删除商品标签
export function delGoodsTag(id) {
return request({
url: '/system/goodsTag/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";
// 查询用户列表
export function listUser(query) {
return request({
url: '/merchant/employees/list',
method: 'get',
params: query
})
}
// 查询用户详细
export function getUser(userId) {
return request({
url: '/merchant/user/' + parseStrEmpty(userId),
method: 'get'
})
}
// 新增用户
export function addUser(data) {
return request({
url: '/merchant/user',
method: 'post',
data: data
})
}
// 修改用户
export function updateUser(data) {
return request({
url: '/merchant/employees',
method: 'put',
data: data
})
}
// 删除用户
export function delUser(userId) {
return request({
url: '/merchant/user/' + userId,
method: 'delete'
})
}
// 用户密码重置
export function resetUserPwd(userId, password) {
const data = {
userId,
password
}
return request({
url: '/merchant/user/resetPwd',
method: 'put',
data: data
})
}
// 用户状态修改
export function changeUserStatus(userId, status) {
const data = {
userId,
status
}
return request({
url: '/merchant/user/changeStatus',
method: 'put',
data: data
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/merchant/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(data) {
return request({
url: '/merchant/user/profile',
method: 'put',
data: data
})
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
const data = {
oldPassword,
newPassword
}
return request({
url: '/merchant/user/profile/updatePwd',
method: 'put',
params: data
})
}
// 用户头像上传
export function uploadAvatar(data) {
return request({
url: '/merchant/user/profile/avatar',
method: 'post',
data: data
})
}
// 查询授权角色
export function getAuthRole(userId) {
return request({
url: '/merchant/user/authRole/' + userId,
method: 'get'
})
}
// 保存授权角色
export function updateAuthRole(data) {
return request({
url: '/merchant/user/authRole',
method: 'put',
params: data
})
}
// 查询部门下拉树结构
export function deptTreeSelect() {
return request({
url: '/merchant/user/deptTree',
method: 'get'
})
}
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";
// 查询用户列表
export function listUser(query) {
return request({
url: '/merchant/company/list',
method: 'get',
params: query
})
}
// 查询用户详细
export function getUser(userId) {
return request({
url: '/system/user/' + parseStrEmpty(userId),
method: 'get'
})
}
// 新增用户
export function addUser(data) {
return request({
url: '/system/user',
method: 'post',
data: data
})
}
// 修改用户
export function updateUser(data) {
return request({
url: '/merchant/company',
method: 'put',
data: data
})
}
// 删除用户
export function delUser(userId) {
return request({
url: '/system/user/' + userId,
method: 'delete'
})
}
// 用户密码重置
export function resetUserPwd(userId, password) {
const data = {
userId,
password
}
return request({
url: '/system/user/resetPwd',
method: 'put',
data: data
})
}
// 用户状态修改
export function changeUserStatus(userId, status) {
const data = {
userId,
status
}
return request({
url: '/system/user/changeStatus',
method: 'put',
data: data
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(data) {
return request({
url: '/system/user/profile',
method: 'put',
data: data
})
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
const data = {
oldPassword,
newPassword
}
return request({
url: '/system/user/profile/updatePwd',
method: 'put',
params: data
})
}
// 用户头像上传
export function uploadAvatar(data) {
return request({
url: '/system/user/profile/avatar',
method: 'post',
data: data
})
}
// 查询授权角色
export function getAuthRole(userId) {
return request({
url: '/system/user/authRole/' + userId,
method: 'get'
})
}
// 保存授权角色
export function updateAuthRole(data) {
return request({
url: '/system/user/authRole',
method: 'put',
params: data
})
}
// 查询部门下拉树结构
export function deptTreeSelect() {
return request({
url: '/system/user/deptTree',
method: 'get'
})
}

7.94 KB | W: | H:

11.6 KB | W: | H:

src/assets/logo/logo.png
src/assets/logo/logo.png
src/assets/logo/logo.png
src/assets/logo/logo.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -8,33 +8,20 @@ $tiffany: #4AB7BD;
$yellow:#FEC171;
$panGreen: #30B08F;
// 默认菜单主题风格
$base-menu-color:#bfcbd9;
$base-menu-color-active:#f4f4f5;
$base-menu-background:#304156;
$base-logo-title-color: #ffffff;
$base-menu-light-color:rgba(0,0,0,.70);
$base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
$base-sub-menu-background:#1f2d3d;
$base-sub-menu-hover:#001528;
// 自定义暗色菜单风格
/**
$base-menu-color:hsla(0,0%,100%,.65);
$base-menu-color-active:#fff;
$base-menu-background:#001529;
$base-menu-background:#010509;
$base-logo-title-color: #ffffff;
$base-menu-light-color:rgba(0,0,0,.70);
$base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
$base-logo-light-title-color: #010509;
$base-sub-menu-background:#000c17;
$base-sub-menu-hover:#001528;
*/
$base-sub-menu-background:#010509;
$base-sub-menu-hover: #010509;
$base-sidebar-width: 200px;
......
......@@ -11,28 +11,53 @@
:on-success="handleUploadSuccess"
:show-file-list="false"
:headers="headers"
class="upload-file-uploader"
:class="
disabled
? 'upload-file-uploader upload-file-uploaderdl'
: 'upload-file-uploader'
"
ref="fileUpload"
:disabled="disabled"
>
<!-- 上传按钮 -->
<el-button size="mini" type="primary">选取文件</el-button>
<el-button size="mini" type="primary" v-if="!disabled"
>选取文件</el-button
>
<!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip">
请上传
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
<template v-if="fileSize">
大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
</template>
<template v-if="fileType">
格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b>
</template>
的文件
</div>
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
<transition-group
class="upload-file-list el-upload-list el-upload-list--text"
name="el-fade-in-linear"
tag="ul"
>
<li
:key="file.url"
:class="
disabled
? 'el-upload-list__item el-upload-list__itemdis ele-upload-list__item-content'
: 'el-upload-list__item ele-upload-list__item-content'
"
v-for="(file, index) in fileList"
>
<el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link>
<div class="ele-upload-list__item-content-action">
<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
<div class="ele-upload-list__item-content-action" v-if="!disabled">
<el-link :underline="false" @click="handleDelete(index)" type="danger"
>删除</el-link
>
</div>
</li>
</transition-group>
......@@ -66,8 +91,12 @@ export default {
// 是否显示提示
isShowTip: {
type: Boolean,
default: true
}
default: true,
},
disabled: {
type: Boolean,
default: false,
},
},
data() {
return {
......@@ -91,15 +120,19 @@ export default {
if (Array.isArray(val)) {
list = val;
} else {
await listByIds(val).then(res => {
list = res.data.map(oss => {
oss = { name: oss.originalName, url: oss.url, ossId: oss.ossId };
await listByIds(val).then((res) => {
list = res.data.map((oss) => {
oss = {
name: oss.originalName,
url: oss.url,
ossId: oss.ossId,
};
return oss;
});
})
});
}
// 然后将数组转为对象数组
this.fileList = list.map(item => {
this.fileList = list.map((item) => {
item = { name: item.name, url: item.url, ossId: item.ossId };
item.uid = item.uid || new Date().getTime() + temp++;
return item;
......@@ -110,8 +143,8 @@ export default {
}
},
deep: true,
immediate: true
}
immediate: true,
},
},
computed: {
// 是否显示提示
......@@ -124,11 +157,13 @@ export default {
handleBeforeUpload(file) {
// 校检文件类型
if (this.fileType) {
const fileName = file.name.split('.');
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
this.$modal.msgError(
`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`
);
return false;
}
}
......@@ -156,7 +191,11 @@ export default {
// 上传成功回调
handleUploadSuccess(res, file) {
if (res.code === 200) {
this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
this.uploadList.push({
name: res.data.fileName,
url: res.data.url,
ossId: res.data.ossId,
});
this.uploadedSuccessfully();
} else {
this.number--;
......@@ -209,12 +248,18 @@ export default {
.upload-file-uploader {
margin-bottom: 5px;
}
.upload-file-uploaderdl {
display: none;
}
.upload-file-list .el-upload-list__item {
border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative;
}
.upload-file-list .el-upload-list__itemdis {
border: none;
}
.upload-file-list .ele-upload-list__item-content {
display: flex;
justify-content: space-between;
......
......@@ -16,6 +16,7 @@
:file-list="fileList"
:on-preview="handlePictureCardPreview"
:class="{hide: this.fileList.length >= this.limit}"
:disabled="disabled"
>
<i class="el-icon-plus"></i>
</el-upload>
......@@ -68,6 +69,10 @@ export default {
isShowTip: {
type: Boolean,
default: true
},
disabled: {
type: Boolean,
default: false
}
},
data() {
......
......@@ -9,7 +9,7 @@ export default {
name: 'RuoYiDoc',
data() {
return {
url: 'https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages'
url: 'https://gitee.com/dromara/陪诊/wikis/pages'
}
},
methods: {
......
......@@ -9,7 +9,7 @@ export default {
name: 'RuoYiGit',
data() {
return {
url: 'https://gitee.com/dromara/RuoYi-Vue-Plus'
url: 'https://gitee.com/dromara/陪诊'
}
},
methods: {
......
......@@ -7,21 +7,21 @@
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<!-- <search id="header-search" class="right-menu-item" /> -->
<el-tooltip content="源码地址" effect="dark" placement="bottom">
<!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
</el-tooltip> -->
<el-tooltip content="文档地址" effect="dark" placement="bottom">
<!-- <el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip>
</el-tooltip> -->
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<el-tooltip content="布局大小" effect="dark" placement="bottom">
<!-- <el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip>
</el-tooltip> -->
</template>
......@@ -34,9 +34,9 @@
<router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="setting = true">
<!-- <el-dropdown-item @click.native="setting = true">
<span>布局设置</span>
</el-dropdown-item>
</el-dropdown-item> -->
<el-dropdown-item divided @click.native="logout">
<span>退出登录</span>
</el-dropdown-item>
......@@ -102,7 +102,7 @@ export default {
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = process.env.VUE_APP_CONTEXT_PATH + "index";
location.href = process.env.VUE_APP_CONTEXT_PATH + "#/index";
})
}).catch(() => {});
}
......
......@@ -35,7 +35,7 @@ export default {
},
data() {
return {
title: 'RuoYi-Vue-Plus',
title: '闪陪科技',
logo: logoImg
}
}
......
......@@ -178,7 +178,7 @@ Router.prototype.replace = function push(location) {
export default new Router({
base: process.env.VUE_APP_CONTEXT_PATH,
mode: 'history', // 去掉url中的#
mode: 'hash', // 去掉url中的#
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
......@@ -122,6 +122,7 @@ export function filterDynamicRoutes(routes) {
}
export const loadView = (view) => {
console.log(view,"=======loadView")
if (process.env.NODE_ENV === 'development') {
return (resolve) => require([`@/views/${view}`], resolve)
} else {
......
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="分类名称" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入分类名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:goodsCategory:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:goodsCategory:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:goodsCategory:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<div class="blocks">
<div v-for="(item, index) in goodsCategoryList" :key="index" class="blocks-item">
<p class="blocks-item-title">{{ item.title }}</p>
<div class="blocks-item-footer">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(item)"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(item)"
>删除</el-button
>
</div>
</div>
</div>
<!-- <el-table v-loading="loading" :data="goodsCategoryList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="" align="center" prop="id" v-if="true"/>
<el-table-column label="" align="center" prop="storeId" />
<el-table-column label="分类名称" align="center" prop="title" />
<el-table-column label="排序" align="center" prop="order" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:goodsCategory:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:goodsCategory:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table> -->
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商品分类对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入" />
</el-form-item> -->
<el-form-item label="分类名称" prop="title">
<el-input maxlength="100" v-model="form.title" placeholder="请输入分类名称" show-word-limit />
</el-form-item>
<!-- <el-form-item label="排序" prop="order">
<el-input v-model="form.order" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listGoodsCategory,
getGoodsCategory,
delGoodsCategory,
addGoodsCategory,
updateGoodsCategory,
} from "@/api/category/index";
export default {
name: "GoodsCategory",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商品分类表格数据
goodsCategoryList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// storeId: undefined,
title: undefined,
// order: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
};
},
created() {
this.getList();
},
methods: {
/** 查询商品分类列表 */
getList() {
this.loading = true;
listGoodsCategory(this.queryParams).then((response) => {
this.goodsCategoryList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
// storeId: undefined,
title: undefined,
// order: undefined,
// delFlag: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加商品分类";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getGoodsCategory(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改商品分类";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateGoodsCategory(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addGoodsCategory(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除商品分类编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delGoodsCategory(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/goodsCategory/export",
{
...this.queryParams,
},
`goodsCategory_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
.blocks {
width: 100%;
display: flex;
flex-wrap: wrap;
&-item {
// flex: 0 0 20%;
width: 20%;
padding: 10px 20px;
box-shadow: 0 0 10px 4px #e9e5e5;
border-radius: 10px;
margin-bottom: 10px;
&-title {
text-align: center;
font-size: 24px;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&-footer {
display: flex;
justify-content: right;
}
}
}
</style>
<template>
<div>
<el-form ref="form" :model="updateForm" :rules="rules" label-width="80px">
<el-form-item label="标题" prop="title">
<el-input v-model="updateForm.title" placeholder="请输入标题" />
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select v-model="updateForm.cityId" placeholder="请选择">
<el-option
v-for="item in cityList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="封面" prop="cover">
<imageUpload v-model="updateForm.cover"></imageUpload>
</el-form-item>
<el-form-item label="内容" prop="info">
<editor v-model="updateForm.content" :min-height="192" />
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
form:{
type:Object,
default:()=>{}
},
},
data() {
return {
// 表单参数
updateForm: this.form,
// 表单校验
rules: {},
cityList: [
{
value: "1",
label: "北京",
},
{
value: "2",
label: "上海",
},
],
};
},
};
</script>
<style lang="scss" scoped></style>
......@@ -47,7 +47,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['demo:demo:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -58,7 +57,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['demo:demo:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -69,7 +67,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['demo:demo:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -79,7 +76,6 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['demo:demo:import']"
>导入(校验)</el-button>
</el-col>
<el-col :span="1.5">
......@@ -89,7 +85,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['demo:demo:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -122,14 +117,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['demo:demo:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['demo:demo:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -37,7 +37,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['demo:tree:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -76,21 +75,18 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['demo:tree:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['demo:tree:add']"
>新增</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['demo:tree:remove']"
>删除</el-button>
</template>
</el-table-column>
......
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="退款状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择退款状态"
clearable=""
@change="handleQuery"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '退款成功',
value: 1,
},
{
label: '取消退款',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:income:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:income:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:income:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:income:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="incomeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
key="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="提现人员类型"
align="center"
prop="userType"
key="userType"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
<span v-if="row.userType == 1">陪诊员</span>
<span v-if="row.userType == 2">商户</span>
</template>
</el-table-column>
<el-table-column
label="提现人员"
align="center"
prop="userName"
key="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="提现单号"
align="center"
prop="partnerTradeNo"
key="partnerTradeNo"
:show-overflow-tooltip="true"
/>
<el-table-column
label="提现金额"
align="center"
prop="amount"
key="amount"
:show-overflow-tooltip="true"
/>
<el-table-column
label="提现状态"
align="center"
prop="status"
key="status"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
<template v-if="row.status == 0">
<el-button type="text" @click="clickBH(row, 1)">通过</el-button>
<el-button type="text" @click="clickBH(row, 2)">拒绝</el-button>
</template>
<span v-if="row.status == 1">成功提现</span>
<span v-if="row.status == 2">拒绝提现</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:income:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:income:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改陪诊员/商户提现对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="提现人员ID" prop="ecId">
<el-input v-model="form.ecId" placeholder="请输入提现人员ID" />
</el-form-item>
<el-form-item label="提现人员OPENTID" prop="openid">
<el-input v-model="form.openid" placeholder="请输入提现人员OPENTID" />
</el-form-item>
<el-form-item label="提现单号" prop="partnerTradeNo">
<el-input
v-model="form.partnerTradeNo"
placeholder="请输入提现单号"
/>
</el-form-item>
<el-form-item label="提现金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入提现金额" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listIncome,
getIncome,
delIncome,
addIncome,
updateIncome,
} from "@/api/financialManagement/income";
export default {
name: "Income",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 陪诊员/商户提现表格数据
incomeList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
userType: undefined,
ecId: undefined,
openid: undefined,
partnerTradeNo: undefined,
amount: undefined,
status: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
};
},
created() {
this.getList();
},
methods: {
clickBH(row, status) {
updateIncome({
id: row.id,
status,
amount: row.amount,
}).then((response) => {
const { msg } = response;
this.$modal.msgSuccess(msg);
this.getList();
});
},
/** 查询陪诊员/商户提现列表 */
getList() {
this.loading = true;
listIncome(this.queryParams).then((response) => {
this.incomeList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
userType: undefined,
ecId: undefined,
openid: undefined,
partnerTradeNo: undefined,
amount: undefined,
status: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加陪诊员/商户提现";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getIncome(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改陪诊员/商户提现";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateIncome(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addIncome(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除陪诊员/商户提现编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delIncome(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/income/export",
{
...this.queryParams,
},
`income_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="用户" prop="uid">
<el-input
v-model="queryParams.uid"
placeholder="请输入用户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:paymentRecord:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:paymentRecord:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:paymentRecord:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:paymentRecord:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="paymentRecordList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" key="id" />
<el-table-column
label="订单"
align="center"
prop="orderId"
key="orderId"
/>
<el-table-column
label="微信支付单号"
align="center"
prop="otherOrder"
key="otherOrder"
:show-overflow-tooltip="true"
/>
<el-table-column
label="金额"
align="center"
prop="money"
key="money"
:show-overflow-tooltip="true"
/>
<el-table-column
label="用户"
align="center"
prop="userName"
key="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="支付时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:paymentRecord:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:paymentRecord:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改支付订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="订单id" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入订单id" />
</el-form-item>
<el-form-item label="第三方订单号" prop="otherOrder">
<el-input
v-model="form.otherOrder"
placeholder="请输入第三方订单号"
/>
</el-form-item>
<el-form-item label="金额" prop="money">
<el-input v-model="form.money" placeholder="请输入金额" />
</el-form-item>
<el-form-item label="用户" prop="uid">
<el-input v-model="form.uid" placeholder="请输入用户" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listPaymentRecord,
getPaymentRecord,
delPaymentRecord,
addPaymentRecord,
updatePaymentRecord,
} from "@/api/financialManagement/paymentRecord";
export default {
name: "PaymentRecord",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 支付订单表格数据
paymentRecordList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
payType: undefined,
orderId: undefined,
otherOrder: undefined,
money: undefined,
uid: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
};
},
created() {
this.getList();
},
methods: {
/** 查询支付订单列表 */
getList() {
this.loading = true;
listPaymentRecord(this.queryParams).then((response) => {
this.paymentRecordList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
payType: undefined,
orderId: undefined,
otherOrder: undefined,
money: undefined,
uid: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加支付订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getPaymentRecord(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改支付订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updatePaymentRecord(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addPaymentRecord(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除支付订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delPaymentRecord(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/paymentRecord/export",
{
...this.queryParams,
},
`paymentRecord_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="退款状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择退款状态"
clearable=""
@change="handleQuery"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '退款成功',
value: 1,
},
{
label: '取消退款',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:userRefund:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:userRefund:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:userRefund:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:userRefund:export']"
>导出</el-button
>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="userRefundList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" key="id" />
<el-table-column
label="订单"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单类型"
align="center"
prop="bname"
key="bname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="应退金额"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退款理由"
align="center"
prop="remark"
key="remark"
:show-overflow-tooltip="true"
/>
<el-table-column
label="联系手机"
align="center"
prop="phone"
key="phone"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退款状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
<template v-if="row.status == 0">
<el-button type="text" @click="clickBH(row, 1)">通过</el-button>
<el-button type="text" @click="clickBH(row, 2)">拒绝</el-button>
</template>
<span v-if="row.status == 1">退款成功</span>
<span v-if="row.status == 2">取消退款</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:userRefund:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:userRefund:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改用户退款对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="退款单号" prop="refundNo">
<el-input v-model="form.refundNo" placeholder="请输入退款单号" />
</el-form-item>
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="业务类型" prop="businessId">
<el-input v-model="form.businessId" placeholder="请输入业务类型" />
</el-form-item>
<el-form-item label="子订单" prop="sonOrderId">
<el-input v-model="form.sonOrderId" placeholder="请输入子订单" />
</el-form-item>
<el-form-item label="联系手机" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系手机" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listUserRefund,
getUserRefund,
delUserRefund,
addUserRefund,
updateUserRefund,
refundPUT,
} from "@/api/financialManagement/userRefund";
export default {
name: "UserRefund",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 用户退款表格数据
userRefundList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
status: undefined,
// refundNo: undefined,
// orderId: undefined,
// businessId: undefined,
// sonOrderId: undefined,
// sonOrderStatus: undefined,
// phone: undefined,
// status: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
};
},
created() {
this.getList();
},
methods: {
async clickBH(row, status) {
const data_back = await refundPUT({
id: row.id,
status,
});
const { code, msg } = data_back;
if (code === 200) {
this.$message.success(msg);
this.getList();
}
},
/** 查询用户退款列表 */
getList() {
this.loading = true;
listUserRefund(this.queryParams).then((response) => {
this.userRefundList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
refundNo: undefined,
orderId: undefined,
businessId: undefined,
sonOrderId: undefined,
sonOrderStatus: undefined,
phone: undefined,
status: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加用户退款";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getUserRefund(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改用户退款";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateUserRefund(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addUserRefund(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除用户退款编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delUserRefund(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/userRefund/export",
{
...this.queryParams,
},
`userRefund_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="商品名称" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入商品名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:goods:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:goods:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:goods:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="goodsList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
key="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="商品名称"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column label="商品类别" align="center" prop="typeName" />
<el-table-column label="标签" align="center" prop="list" key="list">
<template slot-scope="{ row }">
<i class="el el-tag" v-for="(item, index) in row.list" :key="index">{{
item.title
}}</i>
</template>
</el-table-column>
<el-table-column
label="原价"
align="center"
prop="price"
key="price"
:show-overflow-tooltip="true"
/>
<el-table-column
label="售价"
align="center"
prop="salePrice"
key="salePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="小封面图"
align="center"
prop="smallCover"
key="smallCover"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.smallCover"
v-model="row.smallCover"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column label="封面图" align="center" prop="cover">
<template slot-scope="{ row }">
<span>
<el-button
v-if="row.cover"
type="text"
@click="clickSeeVisitor(row)"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column label="介绍" align="center" prop="intro">
<template slot-scope="{ row }">
<span>
<el-button
v-if="row.intro"
type="text"
@click="clickSeeROWrEM(row.intro, '商品描述')"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column
label="浏览数"
align="center"
prop="lookNum"
key="lookNum"
/>
<el-table-column
label="库存"
align="center"
prop="inventory"
key="inventory"
/>
<el-table-column
label="更新时间"
align="center"
prop="updateTime"
key="updateTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商品对话框 -->
<el-dialog :title="title" :visible.sync="open" width="65%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商品名称" prop="title">
<el-input v-model="form.title" placeholder="请输入商品名称" />
</el-form-item>
<el-form-item label="标签" prop="tagIds">
<el-select
v-model="form.tagIds"
multiple
filterable
clearable
placeholder="请选择标签"
>
<el-option
v-for="item in listGoodsTagList"
:key="item.id"
:label="item.title"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="原价" prop="price">
<el-input-number
v-model="form.price"
:precision="2"
:step="0.1"
:min="0"
></el-input-number>
</el-form-item>
<el-form-item label="售价" prop="salePrice">
<el-input-number
v-model="form.salePrice"
:precision="2"
:step="0.1"
:min="0"
></el-input-number>
</el-form-item>
<el-form-item label="小封面图" prop="smallCover">
<imageUpload v-model="form.smallCover" :limit="1"></imageUpload>
</el-form-item>
<el-form-item label="封面图" prop="cover">
<imageUpload v-model="form.cover" :limit="9"></imageUpload>
</el-form-item>
<el-form-item label="商品分类" prop="categoryId">
<el-select
v-model="form.categoryId"
filterable
clearable
placeholder="请选择标签"
>
<el-option
v-for="item in listGoodsCategoryList"
:key="item.id"
:label="item.title"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="库存" prop="inventory">
<el-input-number v-model="form.inventory" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="介绍" prop="intro">
<editor v-model="form.intro" :min-height="192" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="商品图片"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<imageUpload
v-if="VisitorData.cover"
v-model="VisitorData.cover"
:limit="VisitorData.cover.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listGoods,
getGoods,
delGoods,
addGoods,
updateGoods,
} from "@/api/goods/index";
import { listGoodsCategory } from "@/api/category/index";
import { listGoodsTag } from "@/api/tag/index";
export default {
name: "Goods",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商品表格数据
goodsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// cityId: undefined,
// storeId: undefined,
title: undefined,
// tags: undefined,
// price: undefined,
// salePrice: undefined,
// smallCover: undefined,
// cover: undefined,
// categoryId: undefined,
// intro: undefined,
// lookNum: undefined,
// inventory: undefined,
// saleNum: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
categoryId: [
{ required: true, message: "商品分类不能为空", trigger: "blur" },
],
},
listGoodsCategoryList: [],
listGoodsTagList: [],
VisitorData: {
cover: undefined,
},
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
};
},
created() {
this.getList();
},
methods: {
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
clickSeeVisitor(row) {
this.openArticleInfo = true;
this.VisitorData = row;
},
listGoodsTagAxios() {
listGoodsTag({
pageNum: 1,
pageSize: 99999,
}).then((response) => {
this.listGoodsTagList = response.rows;
});
},
listGoodsCategoryAxios() {
listGoodsCategory({
pageNum: 1,
pageSize: 99999,
}).then((response) => {
this.listGoodsCategoryList = response.rows;
});
},
/** 查询商品列表 */
getList() {
this.loading = true;
listGoods(this.queryParams).then((response) => {
this.goodsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
title: undefined,
tagIds: undefined,
price: undefined,
salePrice: undefined,
smallCover: undefined,
cover: undefined,
categoryId: undefined,
inventory: undefined,
intro: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.listGoodsTagAxios();
this.listGoodsCategoryAxios();
this.open = true;
this.title = "添加商品";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
this.listGoodsTagAxios();
this.listGoodsCategoryAxios();
const id = row.id || this.ids;
getGoods(id).then((response) => {
this.loading = false;
this.form = response.data;
this.$set(
this.form,
"tagIds",
this.form.tags ? JSON.parse(this.form.tags) : undefined
);
this.open = true;
this.title = "修改商品";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateGoods(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addGoods(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除商品编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delGoods(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/goods/export",
{
...this.queryParams,
},
`goods_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="所属医院" prop="hid">
<el-input
v-model="queryParams.hid"
placeholder="请输入所属医院"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属科室" prop="did">
<el-input
v-model="queryParams.did"
placeholder="请输入所属科室"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="rank">
<el-input
v-model="queryParams.rank"
placeholder="请输入"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="degree">
<el-input
v-model="queryParams.degree"
placeholder="请输入"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:doctor:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:doctor:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:doctor:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="doctorList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="所属医院" align="center" prop="hname" />
<el-table-column label="所属科室" align="center" prop="dname" />
<el-table-column label="职级" align="center" prop="rank" />
<el-table-column label="学位" align="center" prop="degree" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改医生对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="所属医院" prop="hid">
<el-select
v-model="form.hid"
placeholder="请选择所属医院"
clearable=""
filterable
>
<el-option
v-for="item in hidList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属科室" prop="did">
<treeselect
v-model="form.did"
:options="deptOptions"
:show-count="true"
placeholder="请选择所属科室"
searchable
clearable
/>
</el-form-item>
<el-form-item label="职级" prop="rank">
<el-input v-model="form.rank" placeholder="请输入职级" />
</el-form-item>
<el-form-item label="学位" prop="degree">
<el-input v-model="form.degree" placeholder="请输入学位" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDoctor,
getDoctor,
delDoctor,
addDoctor,
updateDoctor,
listHospital,
} from "@/api/hispotalManage/doctor";
import { listDepartment } from "@/api/hispotalManage/office";
import { deptTreeSelect } from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Doctor",
components: { Treeselect },
data() {
return {
// 部门树选项
deptOptions: [],
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 医生表格数据
doctorList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: undefined,
// hid: undefined,
// did: undefined,
// rank: undefined,
// degree: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
hidList: [],
};
},
created() {
this.getList();
},
methods: {
getListT() {
listHospital({
pageNum: 1,
pageSize: 999999,
}).then((response) => {
this.hidList = response.rows;
});
},
/** 查询部门下拉树结构 */
getDeptTree() {
listDepartment().then((response) => {
this.deptOptions = response.data;
this.deptOptions = this.treeChange(this.deptOptions);
});
},
treeChange(arr) {
return arr.map((item) => {
if (item.children && item.children.length > 0) {
this.treeChange(item.children);
} else {
delete item.children;
}
return item;
});
},
/** 查询医生列表 */
getList() {
this.loading = true;
listDoctor(this.queryParams).then((response) => {
this.doctorList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
name: undefined,
hid: undefined,
did: undefined,
rank: undefined,
degree: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// delFlag: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加医生";
this.getListT();
this.getDeptTree();
},
/** 修改按钮操作 */
handleUpdate(row) {
this.getListT();
this.getDeptTree();
this.loading = true;
this.reset();
const id = row.id || this.ids;
getDoctor(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改医生";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateDoctor(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addDoctor(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除医生编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delDoctor(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/doctor/export",
{
...this.queryParams,
},
`doctor_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<!--
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-07 16:09:29
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-20 14:33:53
* @FilePath: \peizhen-vue\src\views\hispotalManage\hospital\index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<!-- <el-form-item label="城市" prop="cityId">
<el-input
v-model="queryParams.cityId"
placeholder="请输入城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="医院名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入医院名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="医院logo" prop="logo">
<el-input
v-model="queryParams.logo"
placeholder="请输入医院logo"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="医院等级,0-未定义,具体查看model中定义" prop="level">
<el-input
v-model="queryParams.level"
placeholder="请输入医院等级,0-未定义,具体查看model中定义"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="经度" prop="lng">
<el-input
v-model="queryParams.lng"
placeholder="请输入经度"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="纬度" prop="lat">
<el-input
v-model="queryParams.lat"
placeholder="请输入纬度"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="医院类别" prop="category">
<el-input
v-model="queryParams.category"
placeholder="请输入医院类别"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="医院介绍" prop="introduce">
<el-input
v-model="queryParams.introduce"
placeholder="请输入医院介绍"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="科室" prop="departments">
<el-input
v-model="queryParams.departments"
placeholder="请输入科室"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:hospital:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:hospital:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:hospital:export']"
>导出</el-button
>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="hospitalList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医院名称"
align="center"
prop="name"
:show-overflow-tooltip="true"
/>
<el-table-column label="Logo" align="center" prop="logo" width="170">
<template slot-scope="{ row }">
<imageUpload
v-if="row.logo"
v-model="row.logo"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="等级"
align="center"
prop="levelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="类别"
align="center"
prop="categoryName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column label="介绍" align="center" prop="introduce">
<template slot-scope="scope">
{{ scope.row.introduce ? "已设置" : "未设置" }}
</template>
</el-table-column>
<el-table-column label="科室" align="center" prop="departmentVoList">
<template slot-scope="scope">
<el-tag
v-for="(item, index) in scope.row.departmentVoList"
:key="index"
style="margin-right: 8px"
>{{ item.title }}</el-tag
>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="{ row }">
<span>{{ row.status == 0 ? "禁用" : "启用" }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="经度" align="center" prop="lng" />
<el-table-column label="纬度" align="center" prop="lat" />
<el-table-column label="医院类别" align="center" prop="category" />
<el-table-column label="医院介绍" align="center" prop="introduce" /> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改医院对话框 -->
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="医院名称" prop="name">
<el-input v-model="form.name" placeholder="请输入医院名称" />
</el-form-item>
<el-form-item label="Logo" prop="logo">
<imageUpload v-model="form.logo" />
</el-form-item>
<el-form-item label="等级" prop="level">
<el-select v-model="form.level" placeholder="请选择等级" clearable="">
<el-option
v-for="item in hospitalLevelList"
:key="item.code"
:label="item.name"
:value="item.code"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select
v-model="form.cityId"
placeholder="请选择城市"
clearable=""
filterable
>
<el-option
v-for="item in cityVoList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="经度" prop="lng">
<el-input v-model="form.lng" placeholder="请输入经度" />
</el-form-item>
<el-form-item label="纬度" prop="lat">
<el-input v-model="form.lat" placeholder="请输入纬度" />
</el-form-item>
<el-form-item label="类别" prop="category">
<el-select
v-model="form.category"
placeholder="请选择类别"
clearable=""
>
<el-option
v-for="item in hospitalTypeList"
:key="item.code"
:label="item.name"
:value="item.code"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="介绍" prop="introduce">
<editor v-model="form.introduce" :min-height="192" />
</el-form-item>
<el-form-item label="科室" prop="departments">
<treeselect
v-model="form.departments"
:options="deptOptions"
:show-count="true"
placeholder="请选择科室"
searchable
multiple
clearable
flat
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio v-model="form.status" :label="0">禁用</el-radio>
<el-radio v-model="form.status" :label="1">启用</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listHospital,
getHospital,
delHospital,
addHospital,
updateHospital,
hospitalLevelListGET,
hospitalTypeListGET,
cityVoListGET,
} from "@/api/hispotalManage/hospital";
import { listDepartment } from "@/api/hispotalManage/office";
import { deptTreeSelect } from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Hospital",
components: { Treeselect },
data() {
return {
hospitalLevelList: [],
hospitalTypeList: [],
cityVoList: [],
// 部门树选项
deptOptions: undefined,
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 医院表格数据
hospitalList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// cityId: undefined,
name: undefined,
// logo: undefined,
// level: undefined,
// lng: undefined,
// lat: undefined,
// category: undefined,
// introduce: undefined,
// departments: undefined,
// status: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
name: [{ required: true, message: "请选择城市", trigger: "blur" }],
},
};
},
created() {
this.getList();
this.getDeptTree();
},
methods: {
/** 查询部门下拉树结构 */
getDeptTree() {
listDepartment().then((response) => {
this.deptOptions = response.data;
this.deptOptions = this.treeChange(this.deptOptions);
});
},
treeChange(arr) {
return arr.map((item) => {
if (item.children && item.children.length > 0) {
this.treeChange(item.children);
} else {
delete item.children;
}
return item;
});
},
/** 查询医院列表 */
getList() {
this.loading = true;
listHospital(this.queryParams).then((response) => {
this.hospitalList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
cityId: undefined,
name: undefined,
logo: undefined,
level: undefined,
lng: undefined,
lat: undefined,
category: undefined,
introduce: undefined,
departments: undefined,
status: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
delFlag: undefined,
status: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加医院";
this.hospitalLevelListAxios();
this.hospitalTypeListAxios();
this.cityVoListAxios();
},
async hospitalLevelListAxios() {
const data_back = await hospitalLevelListGET();
const { code, data } = data_back;
if (code === 200) {
this.hospitalLevelList = data;
}
},
async hospitalTypeListAxios() {
const data_back = await hospitalTypeListGET();
const { code, data } = data_back;
if (code === 200) {
this.hospitalTypeList = data;
}
},
async cityVoListAxios() {
const data_back = await cityVoListGET();
const { code, data } = data_back;
if (code === 200) {
this.cityVoList = data;
}
},
/** 修改按钮操作 */
handleUpdate(row) {
this.hospitalLevelListAxios();
this.hospitalTypeListAxios();
this.cityVoListAxios();
this.loading = true;
this.reset();
const id = row.id || this.ids;
getHospital(id).then((response) => {
this.loading = false;
this.form = response.data;
this.$set(this.form, "departments", this.form.ids);
this.open = true;
this.title = "修改医院";
});
},
/** 提交按钮 */
submitForm() {
console.log(this.form, "===submitForm");
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateHospital(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addHospital(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除医院编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delHospital(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/hospital/export",
{
...this.queryParams,
},
`hospital_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="上级科室" prop="parentId">
<el-input
v-model="queryParams.parentId"
placeholder="请输入上级科室"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="排序" prop="order">
<el-input
v-model="queryParams.order"
placeholder="请输入排序"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="名称" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form> -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-sort"
size="mini"
@click="toggleExpandAll"
>展开/折叠</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:department:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:department:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:department:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-tree
:data="departmentList"
node-key="id"
:expand-on-click-node="false"
:default-expand-all="isExpandAll"
v-if="refreshTable"
>
<span class="custom-tree-node" slot-scope="{ node, data }">
<div style="display: flex; justify-content: space-between; width: 45vw">
<span>{{ node.label }}</span>
<span style="margin-left: 20px">
<el-button
type="text"
size="mini"
icon="el-icon-edit"
@click="() => handleUpdate(node, data)"
>
修改
</el-button>
<el-button
type="text"
size="mini"
icon="el-icon-delete"
@click="() => handleDelete(node, data)"
>
删除
</el-button>
</span>
</div>
</span>
</el-tree>
<!-- <el-table
v-if="refreshTable"
v-loading="loading"
:data="departmentList"
row-key="menuId"
:default-expand-all="isExpandAll"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column label="科室" width="55" align="center" />
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="" align="center" prop="id" v-if="true" />
<el-table-column label="上级科室" align="center" prop="parentId" />
<el-table-column label="排序" align="center" prop="order" />
<el-table-column label="名称" align="center" prop="title" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:department:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:department:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table> -->
<!-- <pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/> -->
<!-- 添加或修改科室对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="上级科室" prop="parentId">
<treeselect
v-model="form.parentId"
:options="departmentList"
:show-count="true"
placeholder="请输入上级科室"
searchable
clearable
/>
</el-form-item>
<el-form-item label="名称" prop="title">
<el-input v-model="form.title" placeholder="请输入名称" />
</el-form-item>
<el-form-item label="排序" prop="sortord">
<el-input-number
v-model="form.sortord"
:min="0"
:precision="0"
label="请输入排序"
></el-input-number>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDepartment,
getDepartment,
delDepartment,
addDepartment,
updateDepartment,
} from "@/api/hispotalManage/office";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Department",
components: { Treeselect },
data() {
return {
deptOptions: [],
// 是否展开,默认全部折叠
isExpandAll: false,
// 重新渲染表格状态
refreshTable: true,
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 科室表格数据
departmentList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
// pageNum: 1,
// pageSize: 10,
// parentId: undefined,
// order: undefined,
// title: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
title: [{ required: true, message: "请输入名称", trigger: "blur" }],
},
};
},
created() {
this.getList();
},
methods: {
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false;
this.isExpandAll = !this.isExpandAll;
this.$nextTick(() => {
this.refreshTable = true;
});
},
/** 查询科室列表 */
getList() {
this.loading = true;
listDepartment(this.queryParams).then((response) => {
// this.departmentList = response.rows;
// this.total = response.total;
// this.loading = false;
this.departmentList = response.data;
this.total = response.total;
this.loading = false;
this.refreshTable = true;
this.departmentList = this.treeChange(this.departmentList);
});
},
treeChange(arr) {
return arr.map((item) => {
if (item.children && item.children.length > 0) {
this.treeChange(item.children);
} else {
delete item.children;
}
return item;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
parentId: undefined,
// order: undefined,
title: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// delFlag: undefined,
sortord: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加科室";
this.getList();
},
/** 修改按钮操作 */
handleUpdate(node, row) {
this.getList();
this.loading = true;
this.reset();
const id = row.id || this.ids;
getDepartment(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改科室";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateDepartment(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addDepartment(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(node, row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除科室编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delDepartment(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/department/export",
{
...this.queryParams,
},
`department_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
clearable
placeholder="请选择状态"
@change="handleQuery"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '通过',
value: 1,
},
{
label: '驳回',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:income:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:income:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:income:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:income:export']"
>导出</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="primary" plain size="mini" @click="handleAdd"
>申请提现</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="incomeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
key="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="金额"
align="center"
prop="amount"
key="amount"
:show-overflow-tooltip="true"
/>
<el-table-column
label="发票信息"
align="center"
prop="invoice"
key="invoice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="反馈信息"
align="center"
prop="feedback"
key="feedback"
:show-overflow-tooltip="true"
/>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="{ row }">
<span v-if="row.status == 0">待审核</span>
<span v-if="row.status == 1">通过</span>
<span v-if="row.status == 2">驳回</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<!-- <el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:income:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:income:remove']"
>删除</el-button
> -->
<el-button size="mini" type="text" @click="handleUpdate(scope.row, 1)"
>通过</el-button
>
<el-button size="mini" type="text" @click="handleUpdate(scope.row, 2)"
>拒绝</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商城提现审批对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="商户ID" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商户ID" />
</el-form-item> -->
<el-form-item label="金额" prop="amount">
<el-input-number v-model="form.amount" :precision="2" :step="0.1" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="发票信息" prop="invoice">
<imageUpload
:limit="9"
v-model="form.invoice"
:fileType="['png', 'jpg', 'jpeg']"
></imageUpload>
</el-form-item>
<!-- <el-form-item label="反馈" prop="feedback">
<el-input v-model="form.feedback" placeholder="请输入反馈" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listIncome,
getIncome,
delIncome,
addIncome,
updateIncome,
} from "@/api/income/index";
export default {
name: "Income",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商城提现审批表格数据
incomeList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// storeId: undefined,
// amount: undefined,
// invoice: undefined,
// feedback: undefined,
status: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
amount: [{ required: true, message: "金额不能为空", trigger: "blur" }],
},
openLX: false,
};
},
created() {
this.getList();
},
methods: {
/** 查询商城提现审批列表 */
getList() {
this.loading = true;
listIncome(this.queryParams).then((response) => {
this.incomeList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
// storeId: undefined,
amount: undefined,
invoice: undefined,
// feedback: undefined,
// status: undefined,
// delFlag: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "申请提现";
},
/** 修改按钮操作 */
handleUpdate(row, status) {
// this.loading = true;
// this.reset();
// const id = row.id || this.ids;
// getIncome(id).then((response) => {
// this.loading = false;
// this.form = response.data;
// this.open = true;
// this.title = "修改商城提现审批";
// });
updateIncome({
id: row.id,
status,
})
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateIncome(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addIncome(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除商城提现审批编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delIncome(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/income/export",
{
...this.queryParams,
},
`income_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container home">
<el-divider />
<el-row :gutter="20">
</el-row>
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="8">
<el-card class="update-log">
<div slot="header" class="clearfix">
<span>技术支持</span>
</div>
<div class="body">
<p>
<i class="el-icon-s-promotion"></i> 官网:<el-link
href="http://www.yyinhong.cn/"
target="_blank"
>http://www.yyinhong.cn/</el-link
>
</p>
<p>
<i class="el-icon-user-solid"></i> 公司名称:上海印宏
</p>
</div>
</el-card>
</el-col>
</el-row>
<!-- <el-row :gutter="20">
<el-col :sm="24" :lg="12" style="padding-left: 20px">
<h2>RuoYi-Vue-Plus后台管理框架</h2>
<h2>闪陪科技</h2>
<p>
RuoYi-Vue-Plus 是基于 RuoYi-Vue 针对 分布式集群 场景升级(不兼容原框架)
陪诊 是基于 RuoYi-Vue 针对 分布式集群 场景升级(不兼容原框架)
<br/>
* 前端开发框架 Vue、Element UI<br/>
* 后端开发框架 Spring Boot<br/>
......@@ -48,7 +73,7 @@
size="mini"
icon="el-icon-cloudy"
plain
@click="goTarget('https://gitee.com/dromara/RuoYi-Vue-Plus')"
@click="goTarget('https://gitee.com/dromara/陪诊')"
>访问码云</el-button
>
<el-button
......@@ -56,7 +81,7 @@
size="mini"
icon="el-icon-cloudy"
plain
@click="goTarget('https://github.com/dromara/RuoYi-Vue-Plus')"
@click="goTarget('https://github.com/dromara/陪诊')"
>访问GitHub</el-button
>
<el-button
......@@ -64,7 +89,7 @@
size="mini"
icon="el-icon-cloudy"
plain
@click="goTarget('https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=4106467&doc_id=1469725')"
@click="goTarget('https://gitee.com/dromara/陪诊/wikis/pages?sort_id=4106467&doc_id=1469725')"
>更新日志</el-button
>
</p>
......@@ -104,7 +129,7 @@
</el-row>
</el-col>
</el-row>
<el-divider />
<el-divider /> -->
</div>
</template>
......
<template>
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">RuoYi-Vue-Plus后台管理系统</h3>
<h3 class="title">闪陪科技</h3>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
......@@ -56,7 +56,7 @@
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2023 疯狂的狮子Li All Rights Reserved.</span>
<a href="https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=2023023534">©2023闪陪科技 沪ICP备2023023534号-2X</a>
</div>
</div>
</template>
......
<!--
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-11 15:43:21
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-15 18:30:08
* @FilePath: \peizhen-vue\src\views\mallManagement\apply\index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="商户" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入商户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:apply:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:apply:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:apply:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:apply:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="applyList"
@selection-change="handleSelectionChange"
show
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="申请人"
align="center"
key="applyName"
prop="applyName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="商户名称"
align="center"
prop="name"
key="name"
:show-overflow-tooltip="true"
/>
<el-table-column
label="联系方式"
align="center"
prop="tel"
key="tel"
:show-overflow-tooltip="true"
/>
<el-table-column
label="地址"
align="center"
prop="address"
key="address"
:show-overflow-tooltip="true"
/>
<el-table-column
label="邮箱"
align="center"
prop="email"
key="email"
:show-overflow-tooltip="true"
/>
<el-table-column
label="营业执照"
align="center"
prop="businessLicense"
key="businessLicense"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.businessLicense"
v-model="row.businessLicense"
:limit="row.businessLicense.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="食品经营许可证"
align="center"
prop="foodBusinessLicense"
key="foodBusinessLicense"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.foodBusinessLicense"
v-model="row.foodBusinessLicense"
:limit="row.foodBusinessLicense.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="药品经营许可证"
align="center"
prop="drugBusinessLicense"
key="drugBusinessLicense"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.drugBusinessLicense"
v-model="row.drugBusinessLicense"
:limit="row.drugBusinessLicense.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="医疗器械经营许可证"
align="center"
prop="medicalBusinessLicense"
key="medicalBusinessLicense"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.medicalBusinessLicense"
v-model="row.medicalBusinessLicense"
:limit="row.medicalBusinessLicense.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="第二类医疗器械经营许可证"
align="center"
prop="twoMedicalBusinessLicense"
key="twoMedicalBusinessLicense"
:show-overflow-tooltip="true"
width="180"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.twoMedicalBusinessLicense"
v-model="row.twoMedicalBusinessLicense"
:limit="row.twoMedicalBusinessLicense.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="保证金金额"
align="center"
prop="cashDeposit"
:show-overflow-tooltip="true"
width="120"
/>
<el-table-column
label="是否缴纳保证金"
align="center"
prop="isCashDeposit"
key="isCashDeposit"
:show-overflow-tooltip="true"
width="120"
>
<template slot-scope="{ row }">
<span v-if="row.isCashDeposit == 1"></span>
<span v-if="row.isCashDeposit == 0"></span>
</template>
</el-table-column>
<el-table-column
label="状态"
align="center"
prop="status"
key="status"
:show-overflow-tooltip="true"
width="100"
>
<template slot-scope="{ row }">
<el-select
v-model="row.status"
placeholder="请选择状态"
@change="changeStatus($event, row)"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '正常',
value: 1,
},
{
label: '禁用',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="申请时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:apply:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:apply:remove']"
>删除</el-button>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商城商户申请对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="" prop="uid">
<el-input v-model="form.uid" placeholder="请输入" />
</el-form-item>
<el-form-item label="" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-input v-model="form.cityId" placeholder="请输入城市" />
</el-form-item>
<el-form-item label="" prop="tel">
<el-input v-model="form.tel" placeholder="请输入" />
</el-form-item>
<el-form-item label="" prop="email">
<el-input v-model="form.email" placeholder="请输入" />
</el-form-item>
<el-form-item label="" prop="address">
<el-input v-model="form.address" placeholder="请输入" />
</el-form-item>
<el-form-item label="业务许可证" prop="businessLicense">
<el-input
v-model="form.businessLicense"
placeholder="请输入业务许可证"
/>
</el-form-item>
<el-form-item label="食品业务许可证" prop="foodBusinessLicense">
<el-input
v-model="form.foodBusinessLicense"
placeholder="请输入食品业务许可证"
/>
</el-form-item>
<el-form-item label="药品经营许可证" prop="drugBusinessLicense">
<el-input
v-model="form.drugBusinessLicense"
placeholder="请输入药品经营许可证"
/>
</el-form-item>
<el-form-item label="医疗许可证" prop="medicalBusinessLicense">
<el-input
v-model="form.medicalBusinessLicense"
placeholder="请输入医疗许可证"
/>
</el-form-item>
<el-form-item
label="二级医疗许可证
"
prop="twoMedicalBusinessLicense"
>
<el-input
v-model="form.twoMedicalBusinessLicense"
placeholder="请输入二级医疗许可证
"
/>
</el-form-item>
<el-form-item
label="是否缴纳保证金
"
prop="isCashDeposit"
>
<el-input
v-model="form.isCashDeposit"
placeholder="请输入是否缴纳保证金
"
/>
</el-form-item>
<el-form-item label="保证金" prop="cashDeposit">
<el-input v-model="form.cashDeposit" placeholder="请输入保证金" />
</el-form-item>
<el-form-item label="" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="" prop="createdAt">
<el-date-picker
clearable
v-model="form.createdAt"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择"
>
</el-date-picker>
</el-form-item>
<el-form-item label="" prop="updatedAt">
<el-date-picker
clearable
v-model="form.updatedAt"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择"
>
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listApply,
getApply,
delApply,
addApply,
updateApply,
} from "@/api/mallManagement/apply";
export default {
name: "Apply",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商城商户申请表格数据
applyList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// uid: undefined,
name: undefined,
// cityId: undefined,
// tel: undefined,
// email: undefined,
// address: undefined,
// businessLicense: undefined,
// foodBusinessLicense: undefined,
// drugBusinessLicense: undefined,
// medicalBusinessLicense: undefined,
// twoMedicalBusinessLicense: undefined,
// isCashDeposit: undefined,
// cashDeposit: undefined,
// status: undefined,
// createdAt: undefined,
// updatedAt: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
};
},
created() {
this.getList();
},
methods: {
changeStatus(e, row) {
console.log("changeStatus", e, row);
updateApply({
...row,
status: e,
}).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
},
/** 查询商城商户申请列表 */
getList() {
this.loading = true;
listApply(this.queryParams).then((response) => {
this.applyList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
uid: undefined,
name: undefined,
cityId: undefined,
tel: undefined,
email: undefined,
address: undefined,
businessLicense: undefined,
foodBusinessLicense: undefined,
drugBusinessLicense: undefined,
medicalBusinessLicense: undefined,
twoMedicalBusinessLicense: undefined,
isCashDeposit: undefined,
cashDeposit: undefined,
status: undefined,
remark: undefined,
createdAt: undefined,
updatedAt: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加商城商户申请";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getApply(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改商城商户申请";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateApply(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addApply(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除商城商户申请编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delApply(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/apply/export",
{
...this.queryParams,
},
`apply_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<!--
* @Author: ‘巴博尔’ 2164119982@qq.com
* @Date: 2023-09-11 15:44:37
* @LastEditors: ‘巴博尔’ 2164119982@qq.com
* @LastEditTime: 2023-09-11 16:43:12
* @FilePath: \peizhen-vue\src\views\mallManagement\income\index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="商户" prop="storeName">
<el-input
v-model="queryParams.storeName"
placeholder="请输入商户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:income:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:income:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:income:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:income:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="incomeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="商户" align="center" prop="storeName" />
<el-table-column label="金额" align="center" prop="amount" />
<el-table-column label="发票信息" align="center" prop="invoice" />
<el-table-column label="反馈信息" align="center" prop="feedback" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="{ row }">
<el-select
v-model="row.status"
placeholder="请选择状态"
@change="changeStatus($event, row)"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '正常',
value: 1,
},
{
label: '禁用',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" />
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:income:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:income:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商城提现审批对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商户ID" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商户ID" />
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额" />
</el-form-item>
<el-form-item label="发票" prop="invoice">
<el-input
v-model="form.invoice"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="反馈" prop="feedback">
<el-input v-model="form.feedback" placeholder="请输入反馈" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listIncome,
getIncome,
delIncome,
addIncome,
updateIncome,
} from "@/api/mallManagement/income";
export default {
name: "Income",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商城提现审批表格数据
incomeList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
storeName: undefined,
// storeId: undefined,
// amount: undefined,
// invoice: undefined,
// feedback: undefined,
// status: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
};
},
created() {
this.getList();
},
methods: {
changeStatus(e, row) {
console.log("changeStatus", e, row);
updateIncome({
...row,
status: e,
}).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
},
/** 查询商城提现审批列表 */
getList() {
this.loading = true;
listIncome(this.queryParams).then((response) => {
this.incomeList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
storeId: undefined,
amount: undefined,
invoice: undefined,
feedback: undefined,
status: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加商城提现审批";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getIncome(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改商城提现审批";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateIncome(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addIncome(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除商城提现审批编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delIncome(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/income/export",
{
...this.queryParams,
},
`income_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商品" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入商品"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:order:add']"
>新增</el-button>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:order:edit']"
>修改</el-button>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:order:remove']"
>删除</el-button>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:order:export']"
>导出</el-button>
</el-col> -->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row>
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="城市" align="center" prop="cityName" />
<el-table-column label="商品" align="center" prop="title" />
<el-table-column label="数量" align="center" prop="num" />
<el-table-column label="金额" align="center" prop="payMoney" />
<el-table-column label="商户" align="center" prop="sname" />
<el-table-column label="用户" align="center" prop="userName" />
<el-table-column label="流程状态" align="center" prop="orderStatus">
<template slot-scope="{row}">
<span v-if="row.orderStatus == 0">待发货</span>
<span v-if="row.orderStatus == 1">已发货</span>
<span v-if="row.orderStatus == 2">已完成</span>
<span v-if="row.orderStatus == 3">退款中</span>
<span v-if="row.orderStatus == 4">已退款</span>
</template>
</el-table-column>
<el-table-column label="订单状态" align="center" prop="toStatus">
<template slot-scope="{row}">
<span v-if="row.toStatus == 0">待支付</span>
<span v-if="row.toStatus == 1">已支付</span>
<span v-if="row.toStatus == 2">已完成</span>
<span v-if="row.toStatus == 7">已取消</span>
<span v-if="row.toStatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column label="创建时间 " align="center" prop="createTime" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:order:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:order:remove']"
>删除</el-button>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商城订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入" />
</el-form-item>
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="商品" prop="goodsId">
<el-input v-model="form.goodsId" placeholder="请输入商品" />
</el-form-item>
<el-form-item label="数量" prop="num">
<el-input v-model="form.num" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="收获地址id " prop="addressId">
<el-input v-model="form.addressId" placeholder="请输入收获地址id " />
</el-form-item>
<el-form-item label="服务结束时间" prop="overTime">
<el-date-picker clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input v-model="form.voucher" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="" prop="logistics">
<el-input v-model="form.logistics" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="" prop="logisticsCode">
<el-input v-model="form.logisticsCode" placeholder="请输入" />
</el-form-item>
<el-form-item label="" prop="refundLogistics">
<el-input v-model="form.refundLogistics" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="" prop="refundLogisticsCode">
<el-input v-model="form.refundLogisticsCode" placeholder="请输入" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOrder, getOrder, delOrder, addOrder, updateOrder } from "@/api/mallManagement/order";
export default {
name: "Order",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商城订单表格数据
orderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// storeId: undefined,
// orderId: undefined,
title: undefined,
// num: undefined,
// addressId: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
// logistics: undefined,
// logisticsCode: undefined,
// refundLogistics: undefined,
// refundLogisticsCode: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询商城订单列表 */
getList() {
this.loading = true;
listOrder(this.queryParams).then(response => {
this.orderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
storeId: undefined,
orderId: undefined,
goodsId: undefined,
num: undefined,
addressId: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
logistics: undefined,
logisticsCode: undefined,
refundLogistics: undefined,
refundLogisticsCode: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
delFlag: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加商城订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getOrder(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改商城订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateOrder(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addOrder(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除商城订单编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delOrder(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/order/export', {
...this.queryParams
}, `order_${new Date().getTime()}.xlsx`)
}
}
};
</script>
......@@ -61,7 +61,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:logininfor:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -71,7 +70,6 @@
icon="el-icon-delete"
size="mini"
@click="handleClean"
v-hasPermi="['monitor:logininfor:remove']"
>清空</el-button>
</el-col>
<el-col :span="1.5">
......@@ -82,7 +80,6 @@
size="mini"
:disabled="single"
@click="handleUnlock"
v-hasPermi="['monitor:logininfor:unlock']"
>解锁</el-button>
</el-col>
<el-col :span="1.5">
......@@ -92,7 +89,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['monitor:logininfor:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......
......@@ -52,7 +52,6 @@
type="text"
icon="el-icon-delete"
@click="handleForceLogout(scope.row)"
v-hasPermi="['monitor:online:forceLogout']"
>强退</el-button>
</template>
</el-table-column>
......
......@@ -76,7 +76,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:operlog:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -86,7 +85,6 @@
icon="el-icon-delete"
size="mini"
@click="handleClean"
v-hasPermi="['monitor:operlog:remove']"
>清空</el-button>
</el-col>
<el-col :span="1.5">
......@@ -96,7 +94,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['monitor:operlog:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -132,7 +129,6 @@
type="text"
icon="el-icon-view"
@click="handleView(scope.row,scope.index)"
v-hasPermi="['monitor:operlog:query']"
>详细</el-button>
</template>
</el-table-column>
......
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="文章标题" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入文章标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:article:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:article:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:article:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row>
<el-table
v-loading="loading"
:data="articleList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="id"
align="center"
prop="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="文章标题"
align="center"
prop="title"
:show-overflow-tooltip="true"
/>
<el-table-column label="封面图" align="center" prop="cover">
<template slot-scope="{ row }">
<!-- <el-image
style="width: 30px; height: 30px"
:src="row.cover"
:preview-src-list="[row.cover]"
>
</el-image> -->
<span>{{ row.cover ? "已设置" : "未设置" }}</span>
</template>
</el-table-column>
<el-table-column
label="城市"
align="center"
prop="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="内容"
align="center"
prop="content"
:show-overflow-tooltip="true"
/>
<el-table-column
label="收藏数"
align="center"
prop="collectNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="点赞数"
align="center"
prop="appreciateNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="评论数"
align="center"
prop="plNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>编辑</el-button
>
<!-- <el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:article:remove']"
>删除</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改文章对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="文章标题" prop="title">
<el-input v-model="form.title" placeholder="请输入内容">
<template slot="prepend">
<i class="el-icon-edit"></i>
</template>
</el-input>
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select
filterable
clearable
v-model="form.cityId"
placeholder="请选择"
>
<el-option
v-for="item in cityVoList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="封面图" prop="cover">
<imageUpload v-model="form.cover"></imageUpload>
</el-form-item>
<el-form-item label="内容">
<editor v-model="form.content" :min-height="192" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listArticle,
getArticle,
delArticle,
addArticle,
updateArticle,
} from "@/api/operation/article";
import { cityVoListGET } from "@/api/hispotalManage/hospital";
export default {
name: "Article",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 文章表格数据
articleList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
cityId: undefined,
title: undefined,
cover: undefined,
author: undefined,
content: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
},
cityVoList: [],
};
},
created() {
this.getList();
this.cityVoListAxios();
},
methods: {
/** 查询文章列表 */
getList() {
this.loading = true;
listArticle(this.queryParams).then((response) => {
this.articleList = response.rows;
this.total = response.total;
this.loading = false;
});
},
async cityVoListAxios() {
const data_back = await cityVoListGET();
const { code, data } = data_back;
if (code === 200) {
this.cityVoList = data;
}
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
cityId: undefined,
title: undefined,
cover: undefined,
author: undefined,
content: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
delFlag: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加文章";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getArticle(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改文章";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateArticle(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addArticle(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除文章编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delArticle(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/article/export",
{
...this.queryParams,
},
`article_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="位置" prop="site">
<el-select
v-model="queryParams.site"
placeholder="请选择"
@change="handleQuery"
>
<el-option
v-for="item in placeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-refresh"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button
type="primary"
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['accompany:carousel:remove']"
>删除</el-button
>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<!-- <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="首页" name="1"></el-tab-pane>
<el-tab-pane label="商场首页" name="2"></el-tab-pane>
</el-tabs> -->
<el-table
v-loading="loading"
:data="carouselList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="描述"
align="center"
prop="descr"
:show-overflow-tooltip="true"
/>
<el-table-column
label="位置"
align="center"
prop="site"
:formatter="getSiteName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column label="图片" align="center" prop="imgUrl" width="180">
<template slot-scope="{ row }">
<!-- <el-image
style="width: 30px; height: 30px"
:src="row.imgUrl"
:preview-src-list="[row.imgUrl]"
>
</el-image> -->
<imageUpload
v-if="row.imgUrl"
v-model="row.imgUrl"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="链接"
align="center"
prop="linkUrl"
:show-overflow-tooltip="true"
/>
<!-- 状态;0-禁用,1-启用 -->
<el-table-column
label="状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<el-switch
@change="handleChangeStatus($event, scope.row)"
v-model="scope.row.status"
:active-value="1"
:inactive-value="0"
>
</el-switch>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>编辑</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改轮播图对话框 -->
<el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="位置" prop="site">
<!-- <el-input v-model="form.site" placeholder="请输入位置" /> -->
<el-select clearable v-model="form.site" placeholder="请选择">
<el-option
v-for="item in [
{
value: 1,
label: '首页',
},
{
value: 2,
label: '商城首页',
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select
filterable
clearable
v-model="form.cityId"
placeholder="请选择"
>
<el-option
v-for="item in cityVoList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="描述" prop="descr">
<el-input
type="textarea"
autosize
v-model="form.descr"
placeholder="请输入描述"
/>
</el-form-item>
<el-form-item label="图片" prop="imgUrl">
<!-- <el-input
v-model="form.imgUrl"
type="textarea"
placeholder="请输入内容"
/> -->
<imageUpload v-model="form.imgUrl" :limit="1"></imageUpload>
</el-form-item>
<el-form-item label="链接" prop="linkUrl">
<el-input placeholder="请输入内容" v-model="form.linkUrl">
<template slot="prepend">
<i class="el-icon-link"></i>
</template>
</el-input>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio
v-for="(info, ix) in isUseList"
:key="ix"
v-model="form.status"
:label="info.value"
>{{ info.text }}</el-radio
>
<!-- <el-radio v-model="form.status" label="1">启用</el-radio> -->
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>提 交</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listCarousel,
getCarousel,
delCarousel,
addCarousel,
updateCarousel,
} from "@/api/operation/carousel";
import { cityVoListGET } from "@/api/hispotalManage/hospital";
export default {
name: "Carousel",
data() {
return {
activeName: "1",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 轮播图表格数据
carouselList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// cityId: undefined,
// site: undefined,
// descr: undefined,
// imgUrl: undefined,
// linkUrl: undefined,
// status: undefined,
site: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
},
isUseList: [
{
value: 0,
text: "禁用",
},
{
value: 1,
text: "启用",
},
],
placeOptions: [
{
value: 1,
label: "首页",
},
{
value: 2,
label: "商城首页",
},
],
cityVoList: [],
};
},
created() {
this.getList();
this.cityVoListAxios();
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
this.activeName = tab.name;
this.$set(this.queryParams, "site", parseInt(this.activeName));
this.queryParams.pageNum = 1;
this.getList();
},
/** 查询轮播图列表 */
getList() {
this.loading = true;
listCarousel(this.queryParams).then((response) => {
this.carouselList = response.rows;
this.total = response.total;
this.loading = false;
});
},
async cityVoListAxios() {
const data_back = await cityVoListGET();
const { code, data } = data_back;
if (code === 200) {
this.cityVoList = data;
}
},
// 获取位置名称
getSiteName(e) {
return e.site == 1 ? "首页" : e.site == 2 ? "商城首页" : "";
},
// 修改状态
handleChangeStatus(e, row) {
updateCarousel(row)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
cityId: undefined,
site: undefined,
descr: undefined,
imgUrl: undefined,
linkUrl: undefined,
status: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
delFlag: undefined,
status: 1,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加轮播图";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getCarousel(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改轮播图";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateCarousel(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addCarousel(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除轮播图编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delCarousel(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
},
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<!-- <el-form-item label="提供医院" prop="hospitals">
<el-input
v-model="queryParams.hospitals"
placeholder="请输入提供医院"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="业务名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入业务名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:business:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:business:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:business:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:business:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
<el-table key="outer" v-loading="loading" :data="businessList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" :show-overflow-tooltip="true" />
<el-table-column label="提供医院" align="center" prop="hospitalsList">
<template slot-scope="scope">
<el-tag v-for="(item, index) in scope.row.hospitalsList" :key="index" style="margin-right: 8px">{{ item
}}</el-tag>
</template>
</el-table-column>
<el-table-column label="业务名称" align="center" prop="name" :show-overflow-tooltip="true" />
<el-table-column type="expand" label="服务" align="center" prop="name">
<template slot-scope="props">
<el-table key="inside" :data="props.row.servicesVoList">
<el-table-column prop="name" label="服务名称" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="cover" label="封面" width="170">
<template slot-scope="{ row }">
<imageUpload v-model="row.cover" :limit="row.cover.split(',').length" :disabled="true" :isShowTip="false">
</imageUpload>
</template>
</el-table-column>
<el-table-column prop="highPrice" label="高价" :show-overflow-tooltip="true" />
<el-table-column prop="price" label="价格" :show-overflow-tooltip="true" />
<el-table-column prop="cityName" label="城市" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="fenmo" label="平台分成" :show-overflow-tooltip="true" />
<el-table-column prop="duration" label="时长(小时)" :show-overflow-tooltip="true" />
<el-table-column prop="overtime" label="超时计费/30分钟" :show-overflow-tooltip="true" />
<el-table-column label="服务时段" :show-overflow-tooltip="true">
<template slot-scope="{ row }">
<span v-if="row.startTime && row.endTime">{{ row.startTime }} - {{ row.endTime }}</span>
<span v-else>未设置</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit"
@click="handleUpdateServe(scope.row)">修改服务</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column label="更新时间" align="center" prop="updateTime" width="180" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handlenew(scope.row)">新增</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改业务对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="提供医院" prop="hospitalsIdsList">
<el-select v-model="form.hospitalsIdsList" multiple clearable="" filterable placeholder="请选择">
<el-option v-for="item in hospitalsList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="业务名称" prop="name">
<el-input v-model="form.name" placeholder="请输入业务名称" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="service == true ? '修改服务' : '新增服务'" :visible.sync="openServe" width="50%" append-to-body>
<div class="hidden-dialog">
<el-form ref="serveForm" :model="serveForm" :rules="serveRules" label-width="80px">
<el-form-item label="服务名称" prop="name">
<el-input v-model="serveForm.name" placeholder="请输入服务名称">
<template slot="prepend">
<i class="el-icon-edit"></i>
</template>
</el-input>
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select filterable clearable v-model="serveForm.cityId" placeholder="请选择">
<el-option v-for="item in cityVoList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="Cover" prop="cover">
<imageUpload v-model="serveForm.cover"></imageUpload>
</el-form-item>
<el-form-item label="高价" prop="highPrice">
<strong></strong>
<el-input-number v-model="serveForm.highPrice" controls-position="right" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="价格" prop="price">
<strong></strong>
<el-input-number v-model="serveForm.price" controls-position="right" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="平台分成" prop="fenmo">
<strong>%</strong>
<el-input-number v-model="serveForm.fenmo" controls-position="right" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="服务时长" prop="duration">
<el-input-number v-model="serveForm.duration" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="超时付费" prop="overtime">
<!-- <el-input v-model="serveForm.overtime" placeholder="请输入">
<template slot="prepend"> ¥ </template>
</el-input> -->
<strong></strong>
<el-input-number v-model="serveForm.overtime" controls-position="right" :min="0"></el-input-number>
<div>每30分钟。未满30分钟按30分钟算</div>
</el-form-item>
<el-form-item label="服务时段" prop="date">
<el-time-picker is-range arrow-control v-model="serveForm.date" range-separator="至" start-placeholder="开始时间"
end-placeholder="结束时间" value-format="HH:mm:ss" placeholder="选择时间范围">
</el-time-picker>
</el-form-item>
<el-form-item label="介绍" prop="info">
<editor v-model="serveForm.info" :min-height="192" />
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitServeForm">确 定</el-button>
<el-button @click="cancelServeForm">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listBusiness,
getBusiness,
delBusiness,
addBusiness,
updateBusiness,
getServe,
addServe,
updateServe,
} from "@/api/operation/business";
import { listHospital, cityVoListGET } from "@/api/hispotalManage/hospital";
export default {
name: "Business",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
service: true,
cityVoList: [],
// 总条数
total: 0,
bid: '',
// 业务表格数据
businessList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
hospitals: undefined,
name: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
openServe: false,
serveForm: {},
serveRules: {
name: [{ required: true, message: "请输入服务名称", trigger: "blur" }],
cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
highPrice: [
{
required: true,
message: "请输入高价",
trigger: ["blur", "change"],
},
],
price: [
{
required: true,
message: "请输入高价",
trigger: ["blur", "change"],
},
],
},
hospitalsList: [],
};
},
created() {
this.getList();
this.cityVoListAxios();
},
methods: {
hospitalsListAxios() {
listHospital({ pageNum: 1, pageSize: 99999 }).then((response) => {
this.hospitalsList = response.rows;
});
},
/** 查询业务列表 */
getList() {
this.loading = true;
listBusiness(this.queryParams).then((response) => {
this.businessList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
cancelServeForm() {
this.openServe = false;
this.resetServe();
},
// 表单重置
reset() {
this.form = {
id: undefined,
hospitals: [],
name: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
delFlag: undefined,
};
this.resetForm("form");
},
// 重置服务表单数据
resetServe() {
this.serveForm = {
name: undefined,
cover: undefined,
highPrice: 0,
price: 0,
fenmo: 0,
duration: 0,
overtime: 0,
startTime: undefined,
endTime: undefined,
info: undefined,
date: ["", ""],
};
this.resetForm("serveForm");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
async cityVoListAxios() {
const data_back = await cityVoListGET();
const { code, data } = data_back;
if (code === 200) {
this.cityVoList = data;
}
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加业务";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.hospitalsListAxios();
this.reset();
const id = row.id || this.ids;
getBusiness(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改业务";
});
},
handlenew(row) {
this.service = false
this.openServe = true;
this.bid = row.id
this.resetServe();
},
// 修改服务
handleUpdateServe(row) {
this.service = true
this.openServe = true;
this.resetServe();
const id = row.id;
getServe(id).then((response) => {
this.serveForm = response.data;
if (response.data && response.data.startTime && response.data.endTime) {
this.$set(this.serveForm, "date", [
response.data.startTime,
response.data.endTime,
]);
} else {
this.$set(this.serveForm, "date", undefined);
}
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateBusiness(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addBusiness(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
// 服务提交按钮
submitServeForm() {
this.$refs["serveForm"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.service == true) {
updateServe({
...this.serveForm,
startTime:
this.serveForm.date && this.serveForm.date.length
? this.serveForm.date[0]
: "",
endTime:
this.serveForm.date && this.serveForm.date.length
? this.serveForm.date[1]
: "",
})
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.openServe = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addServe({
...this.serveForm,
startTime:
this.serveForm.date && this.serveForm.date.length
? this.serveForm.date[0]
: "",
endTime:
this.serveForm.date && this.serveForm.date.length
? this.serveForm.date[1]
: "",
bid: this.bid
})
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.openServe = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除业务编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delBusiness(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => { })
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/business/export",
{
...this.queryParams,
},
`business_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
.hidden-dialog {
height: 600px;
overflow-x: hidden;
}
</style>
<template>
<div class="app-container">
<!-- <el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item>
<el-button
type="primary"
icon="el-icon-refresh"
size="mini"
@click="handleQuery"
>刷新</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form> -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:information:edit']"
>修改</el-button>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:information:remove']"
>删除</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:information:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="informationList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="标题"
align="center"
prop="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column label="封面" align="center" prop="cover" width="170">
<template slot-scope="{ row }">
<!-- <el-image
style="width: 30px; height: 30px"
:src="row.cover"
:preview-src-list="[row.cover]"
>
</el-image> -->
<imageUpload
v-if="row.cover"
v-model="row.cover"
:limit="row.cover.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column label="内容" align="center" prop="info">
<template slot-scope="{ row }">
<el-button type="text" @click="handleLook(row)">点击查看</el-button>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="更新时间"
align="center"
prop="updateTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>编辑</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改新闻资讯对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select
filterable
clearable
v-model="form.cityId"
placeholder="请选择"
>
<el-option
v-for="item in cityVoList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="封面" prop="cover">
<imageUpload v-model="form.cover"></imageUpload>
</el-form-item>
<el-form-item label="内容" prop="info">
<editor v-model="form.info" :min-height="192" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 查看内容弹框 -->
<template v-if="openArticle">
<el-dialog
title="文章内容"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listInformation,
getInformation,
delInformation,
addInformation,
updateInformation,
} from "@/api/operation/news";
import { cityVoListGET } from "@/api/hispotalManage/hospital";
export default {
name: "Information",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 新闻资讯表格数据
informationList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
cityId: undefined,
title: undefined,
cover: undefined,
info: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
},
openArticle: false,
rowArticle: undefined,
cityVoList: [],
};
},
created() {
this.getList();
this.cityVoListAxios();
},
methods: {
/** 查询新闻资讯列表 */
getList() {
this.loading = true;
listInformation(this.queryParams).then((response) => {
this.informationList = response.rows;
this.total = response.total;
this.loading = false;
});
},
async cityVoListAxios() {
const data_back = await cityVoListGET();
const { code, data } = data_back;
if (code === 200) {
this.cityVoList = data;
}
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
cityId: undefined,
title: undefined,
cover: undefined,
info: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加新闻资讯";
},
handleLook(row) {
console.log(row, "查拉吗");
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(row.info);
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getInformation(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改新闻资讯";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateInformation(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addInformation(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除新闻资讯编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delInformation(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/information/export",
{
...this.queryParams,
},
`information_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped>
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="位置" prop="site">
<el-select
v-model="queryParams.site"
placeholder="请选择"
@change="handleQuery"
>
<el-option
v-for="item in placeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:notice:edit']"
>修改</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:notice:remove']"
>删除</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:notice:export']"
>导出</el-button
>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="noticeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="内容"
align="center"
prop="info"
:show-overflow-tooltip="true"
/>
<el-table-column
label="位置"
align="center"
prop="site"
:formatter="getSiteName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>编辑</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改公告对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="内容" prop="info">
<el-input
autosize
v-model="form.info"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="城市" prop="cityId">
<el-select
filterable
clearable
v-model="form.cityId"
placeholder="请输入城市"
>
<el-option
v-for="item in cityVoList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="位置" prop="site">
<el-select clearable v-model="form.site" placeholder="请输入位置">
<el-option
v-for="item in placeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>提 交</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listNotice,
getNotice,
delNotice,
addNotice,
updateNotice,
} from "@/api/operation/notice";
import { cityVoListGET } from "@/api/hispotalManage/hospital";
export default {
name: "Notice",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 公告表格数据
noticeList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
cityId: undefined,
info: undefined,
site: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
},
placeOptions: [
{
value: 1,
label: "首页公告",
},
{
value: 2,
label: "代办挂号公告",
},
],
cityVoList: [],
};
},
created() {
this.getList();
this.cityVoListAxios();
},
methods: {
/** 查询公告列表 */
getList() {
this.loading = true;
listNotice(this.queryParams).then((response) => {
this.noticeList = response.rows;
this.total = response.total;
this.loading = false;
});
},
async cityVoListAxios() {
const data_back = await cityVoListGET();
const { code, data } = data_back;
if (code === 200) {
this.cityVoList = data;
}
},
// 获取位置名称
getSiteName(e) {
return e.site == 1 ? "首页公告" : e.site == 2 ? "代办挂号公告" : "";
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
cityId: undefined,
info: undefined,
site: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加公告";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getNotice(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改公告";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateNotice(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addNotice(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除公告编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delNotice(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/notice/export",
{
...this.queryParams,
},
`notice_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="商品" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入商品"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:order:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:order:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:order:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:order:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="orderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="ID"
align="center"
prop="id"
key="id"
:show-overflow-tooltip="true"
/>
<el-table-column
label="商品"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="数量"
align="center"
prop="num"
key="num"
:show-overflow-tooltip="true"
/>
<el-table-column
label="金额"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="商户"
align="center"
prop="sname"
key="sname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="用户"
align="center"
prop="userName"
key="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="收货信息"
align="center"
prop="userAddressVo"
key="userAddressVo"
>
<template slot-scope="{ row }">
<el-button
v-if="row.userAddressVo && Object.keys(row.userAddressVo).length"
type="text"
@click="clickSeeVisitor(row)"
>点击查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="流程状态"
align="center"
prop="orderStatus"
key="orderStatus"
>
<template slot-scope="{ row }">
<el-button
@click="handleUpdate(row)"
type="text"
v-if="row.orderStatus == 0 && row.toStatus == 1"
>点击发货</el-button
>
<span v-if="row.orderStatus == 1">已发货</span>
<span v-if="row.orderStatus == 2">已完成</span>
<span v-if="row.orderStatus == 3">退款中</span>
<span v-if="row.orderStatus == 4">已退款</span>
</template>
</el-table-column>
<el-table-column
label="订单状态"
align="center"
prop="toStatus"
key="toStatus"
>
<template slot-scope="{ row }">
<span v-if="row.toStatus == 0">待支付</span>
<span v-if="row.toStatus == 1">已支付</span>
<span v-if="row.toStatus == 2">已完成</span>
<span v-if="row.toStatus == 7">已取消</span>
<span v-if="row.toStatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="发货物流"
align="center"
prop="logisticsCode"
key="logisticsCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退货物流"
align="center"
prop="refundLogistics"
key="refundLogistics"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退款申请信息"
align="center"
prop="refundReason"
key="refundReason"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="就诊时间"
align="center"
prop="visitTime"
key="visitTime"
width="180"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:order:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:order:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改预约陪诊订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="医院" prop="hid">
<el-input v-model="form.hid" placeholder="请输入医院" />
</el-form-item>
<el-form-item label="就诊人员" prop="visitor">
<el-input v-model="form.visitor" placeholder="请输入就诊人员" />
</el-form-item>
<el-form-item label="科室" prop="did">
<el-input v-model="form.did" placeholder="请输入科室" />
</el-form-item>
<el-form-item label="就诊时间" prop="visitTime">
<el-input v-model="form.visitTime" placeholder="请输入就诊时间" />
</el-form-item>
<el-form-item label="预约电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入预约电话" />
</el-form-item>
<el-form-item label="服务完成时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务完成时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="就诊人员信息"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<div class="contl">
<div class="contl-item">
<p class="contl-item-label">收货人:</p>
<p class="contl-item-rig">{{ VisitorData.name }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">电话:</p>
<p class="contl-item-rig">{{ VisitorData.phone }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">所在地区:</p>
<p class="contl-item-rig">{{ VisitorData.area }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">详细地址:</p>
<p class="contl-item-rig">{{ VisitorData.address }}</p>
</div>
</div>
</el-dialog>
</template>
<template v-if="openUplate">
<el-dialog
title="发货"
:visible.sync="openUplate"
width="500px"
append-to-body
>
<el-form ref="formh" :model="formh" :rules="rulesh" label-width="80px">
<el-form-item label="物流名称" prop="logistics">
<el-input v-model="formh.logistics" placeholder="请输入物流名称" />
</el-form-item>
<el-form-item label="物流单号" prop="logisticsCode">
<el-input
v-model="formh.logisticsCode"
placeholder="请输入物流单号"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
:loading="buttonLoading"
type="primary"
@click="handleUpdateL(1)"
>确 定</el-button
>
<el-button @click="handleUpdateL(2)">取 消</el-button>
</div>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listOrder,
getOrder,
delOrder,
addOrder,
updateOrder,
} from "@/api/orderManage/index";
export default {
name: "OrderM",
data() {
return {
openUplate: false,
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 预约陪诊订单表格数据
orderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
title: undefined,
// orderId: undefined,
// hid: undefined,
// visitor: undefined,
// did: undefined,
// visitTime: undefined,
// phone: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
},
formh: {
logisticsCode: null,
logistics: null,
id: undefined,
},
rulesh: {
id: [
{
required: true,
message: "ID不能为空",
trigger: "blur",
},
],
logisticsCode: [
{
required: true,
message: "物流单号不能为空",
trigger: "blur",
},
],
logistics: [
{
required: true,
message: "物流名称不能为空",
trigger: "blur",
},
],
},
};
},
created() {
this.getList();
},
methods: {
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
clickSeeVisitor(row) {
this.openArticleInfo = true;
console.log(row);
this.VisitorData = row.userAddressVo;
console.log(this.VisitorData);
},
/** 查询预约陪诊订单列表 */
getList() {
this.loading = true;
listOrder(this.queryParams).then((response) => {
this.orderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
hid: undefined,
visitor: undefined,
did: undefined,
visitTime: undefined,
phone: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加预约陪诊订单";
},
handleUpdateL(type) {
switch (type) {
case 1:
this.$refs["formh"].validate((valid) => {
if (valid) {
updateOrder({
...this.formh,
orderStatus: 1,
}).then((response) => {
this.$modal.msgSuccess("发货成功");
this.openUplate = false;
this.getList();
});
}
});
break;
case 2:
this.formh = {
logisticsCode: null,
logistics: null,
id: undefined,
};
this.openUplate = false;
break;
}
},
/** 修改按钮操作 */
handleUpdate(row) {
// this.loading = true;
this.reset();
const id = row.id || this.ids;
// getOrder(id).then((response) => {
// this.loading = false;
// this.form = response.data;
// this.open = true;
// this.title = "修改预约陪诊订单";
// });
this.$set(this.formh, "id", id);
this.openUplate = true;
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除预约陪诊订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/order/export",
{
...this.queryParams,
},
`order_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="订单号" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:dbghOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dbghOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dbghOrder:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:dbghOrder:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="dbghOrderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="订单号"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单价"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="服务"
align="center"
prop="serviceName"
key="serviceName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医院"
align="center"
prop="hname"
key="hname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="就诊人员"
align="center"
prop="userVsitorVo"
key="userVsitorVo"
>
<template slot-scope="{ row }">
<el-button
v-if="row.userVsitorVo && Object.keys(row.userVsitorVo).length"
type="text"
@click="clickSeeVisitor(row)"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column label="接单人" align="center" prop="ename" key="ename">
<template slot-scope="{ row }">
<span v-if="row.ename">{{ row.ename }}</span>
<span v-else>未接单</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" key="remark">
<template slot-scope="{ row }">
<el-button
v-if="row.remark"
type="text"
@click="clickSeeROWrEM(row.remark, '订单备注')"
>点击查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="期望就诊时间"
align="center"
prop="visitTime"
key="visitTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="当前状态"
align="center"
prop="ystatus"
key="ystatus"
>
<template slot-scope="{ row }">
<span v-if="row.ystatus == 0">已发布</span>
<span v-if="row.ystatus == 1">已接单</span>
<span v-if="row.ystatus == 2">已完成</span>
<span v-if="row.ystatus == 3">退款中</span>
<span v-if="row.ystatus == 4">已退款</span>
<span v-if="row.ystatus == 6">进行中</span>
</template>
</el-table-column>
<el-table-column
label="服务结束时间"
align="center"
prop="overTime"
key="overTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单状态"
align="center"
prop="tstatus"
key="tstatus"
>
<template slot-scope="{ row }">
<span v-if="row.tstatus == 0">待支付</span>
<span v-if="row.tstatus == 1">已支付</span>
<span v-if="row.tstatus == 2">已完成</span>
<span v-if="row.tstatus == 7">已取消</span>
<span v-if="row.tstatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="是否好评"
align="center"
prop="isSatisfaction"
key="isSatisfaction"
>
<template slot-scope="{ row }">
<!-- 0-未评价,1-好评,2-差评 -->
<span v-if="row.isSatisfaction == 0">未评价</span>
<span v-if="row.isSatisfaction == 1">好评</span>
<span v-if="row.isSatisfaction == 2">差评</span>
</template>
</el-table-column>
<el-table-column
label="评价"
align="center"
prop="evaluationContent"
key="evaluationContent"
>
<template slot-scope="{ row }">
<el-button
v-if="row.evaluationContent"
type="text"
@click="clickSeeROWrEM(row.evaluationContent, '订单评价')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="完成凭证"
align="center"
prop="voucher"
key="voucher"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<!-- <imageUpload
v-if="row.voucher"
v-model="row.voucher"
:limit="row.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload> -->
<span>
<el-button
v-if="row.voucher"
type="text"
@click="clickSeeVisitorImg(row)"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dbghOrder:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dbghOrder:remove']"
>删除</el-button>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改代办挂号订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="医院" prop="hid">
<el-input v-model="form.hid" placeholder="请输入医院" />
</el-form-item>
<el-form-item label="就诊人员" prop="visitor">
<el-input v-model="form.visitor" placeholder="请输入就诊人员" />
</el-form-item>
<el-form-item label="期望就诊时间" prop="visitTime">
<el-input v-model="form.visitTime" placeholder="请输入期望就诊时间" />
</el-form-item>
<el-form-item label="科室" prop="did">
<el-input v-model="form.did" placeholder="请输入科室" />
</el-form-item>
<el-form-item label="服务结束时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务结束时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="就诊人员信息"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<div class="contl">
<div class="contl-item">
<p class="contl-item-label">姓名:</p>
<p class="contl-item-rig">{{ VisitorData.name }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">性别:</p>
<p class="contl-item-rig" v-if="VisitorData.sex == 1"></p>
<p class="contl-item-rig" v-else-if="VisitorData.sex == 0"></p>
<p class="contl-item-rig" v-else>未知</p>
</div>
<div class="contl-item">
<p class="contl-item-label">身份证号:</p>
<p class="contl-item-rig">{{ VisitorData.idcard }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">是否成年:</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 1">未成年</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 0">已成年</p>
</div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfoImg">
<el-dialog
title="凭证图片"
:visible.sync="openArticleInfoImg"
width="600px"
append-to-body
>
<imageUpload
v-if="VisitorData.voucher"
v-model="VisitorData.voucher"
:limit="VisitorData.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listDbghOrder,
getDbghOrder,
delDbghOrder,
addDbghOrder,
updateDbghOrder,
} from "@/api/orderManagement/dbghOrder";
export default {
name: "DbghOrder",
data() {
return {
openArticleInfoImg: false,
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 代办挂号订单表格数据
dbghOrderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderSn: undefined,
// orderId: undefined,
// hid: undefined,
// visitor: undefined,
// visitTime: undefined,
// did: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
voucher: "",
},
};
},
created() {
this.getList();
},
methods: {
clickSeeVisitorImg(row) {
this.openArticleInfoImg = true;
this.VisitorData = row;
},
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
clickSeeVisitor(row) {
this.openArticleInfo = true;
this.VisitorData = row.userVsitorVo;
},
/** 查询代办挂号订单列表 */
getList() {
this.loading = true;
listDbghOrder(this.queryParams).then((response) => {
this.dbghOrderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
hid: undefined,
visitor: undefined,
visitTime: undefined,
did: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加代办挂号订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getDbghOrder(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改代办挂号订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateDbghOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addDbghOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除代办挂号订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delDbghOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/dbghOrder/export",
{
...this.queryParams,
},
`dbghOrder_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="订单号" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:dbmyOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dbmyOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dbmyOrder:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:dbmyOrder:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="dbmyOrderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="订单号"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单价"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="药品名称"
align="center"
prop="ypName"
key="ypName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="药店地址"
align="center"
prop="ydAddress"
key="ydAddress"
:show-overflow-tooltip="true"
/>
<el-table-column
label="是否处方药"
align="center"
prop="isCf"
key="isCf"
width="100"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
<span v-if="row.isCf == 0"></span>
<span v-if="row.isCf == 1"></span>
</template>
</el-table-column>
<el-table-column
label="处方附件"
align="center"
prop="prescriptionAttachment"
key="prescriptionAttachment"
:show-overflow-tooltip="true"
width="120"
>
<template slot-scope="{ row }">
<fileUpload
v-model="row.prescriptionAttachment"
:isShowTip="false"
:disabled="true"
:limit="row.prescriptionAttachment.split(',').length"
/>
</template>
</el-table-column>
<el-table-column label="取药方式" align="center" prop="way" key="way">
<template slot-scope="{ row }">
<span v-if="row.way == 0">邮寄到家</span>
<span v-if="row.way == 1">送货上门</span>
</template>
</el-table-column>
<el-table-column
label="收件人"
align="center"
prop="recipient"
key="recipient"
:show-overflow-tooltip="true"
/>
<el-table-column
label="收货地址"
align="center"
prop="adress"
key="adress"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="详细地址"
align="center"
prop="addressInfo"
key="addressInfo"
:show-overflow-tooltip="true"
/>
<el-table-column label="接单人" align="center" prop="ename" key="ename">
<template slot-scope="{ row }">
<span v-if="row.ename">{{ row.ename }}</span>
<span v-else>未接单</span>
</template>
</el-table-column>
<el-table-column
label="是否需要冷藏"
align="center"
prop="isRefrigerate"
key="isRefrigerate"
width="100"
>
<template slot-scope="{ row }">
<span v-if="row.isRefrigerate == 0">邮寄到家</span>
<span v-if="row.isRefrigerate == 1">送货上门</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" key="remark">
<template slot-scope="{ row }">
<el-button
v-if="row.remark"
type="text"
@click="clickSeeROWrEM(row.remark, '订单备注')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="当前状态"
align="center"
prop="ystatus"
key="ystatus"
>
<template slot-scope="{ row }">
<span v-if="row.ystatus == 0">已发布</span>
<span v-if="row.ystatus == 1">已接单</span>
<span v-if="row.ystatus == 2">已完成</span>
<span v-if="row.ystatus == 3">退款中</span>
<span v-if="row.ystatus == 4">已退款</span>
<span v-if="row.ystatus == 6">进行中</span>
<span v-if="row.ystatus == 7">待邮寄原件</span>
<span v-if="row.ystatus == 8">已邮寄原件</span>
</template>
</el-table-column>
<el-table-column
label="订单状态"
align="center"
prop="tstatus"
key="tstatus"
>
<template slot-scope="{ row }">
<span v-if="row.tstatus == 0">待支付</span>
<span v-if="row.tstatus == 1">已支付</span>
<span v-if="row.tstatus == 2">已完成</span>
<span v-if="row.tstatus == 7">已取消</span>
<span v-if="row.tstatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="是否好评"
align="center"
prop="isSatisfaction"
key="isSatisfaction"
>
<template slot-scope="{ row }">
<!-- 0-未评价,1-好评,2-差评 -->
<span v-if="row.isSatisfaction == 0">未评价</span>
<span v-if="row.isSatisfaction == 1">好评</span>
<span v-if="row.isSatisfaction == 2">差评</span>
</template>
</el-table-column>
<el-table-column
label="评价"
align="center"
prop="evaluationContent"
key="evaluationContent"
>
<template slot-scope="{ row }">
<el-button
v-if="row.evaluationContent"
type="text"
@click="clickSeeROWrEM(row.evaluationContent, '订单评价')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="服务结束时间"
align="center"
prop="overTime"
key="overTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="完成凭证"
align="center"
prop="voucher"
key="voucher"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<!-- <imageUpload
v-if="row.voucher"
v-model="row.voucher"
:limit="row.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload> -->
<span>
<el-button
v-if="row.voucher"
type="text"
@click="clickSeeVisitorImg(row)"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dbmyOrder:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dbmyOrder:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改代办买药订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="药品名称" prop="ypName">
<el-input v-model="form.ypName" placeholder="请输入药品名称" />
</el-form-item>
<el-form-item label="药店地址" prop="ydAddress">
<el-input
v-model="form.ydAddress"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="是否处方药" prop="isCf">
<el-input v-model="form.isCf" placeholder="请输入是否处方药" />
</el-form-item>
<el-form-item label="处方附件" prop="prescriptionAttachment">
<el-input
v-model="form.prescriptionAttachment"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="取药方式:0-邮寄到家,1-送货上门" prop="way">
<el-input
v-model="form.way"
placeholder="请输入取药方式:0-邮寄到家,1-送货上门"
/>
</el-form-item>
<el-form-item label="收件人" prop="recipient">
<el-input v-model="form.recipient" placeholder="请输入收件人" />
</el-form-item>
<el-form-item label="收获地址" prop="adress">
<el-input
v-model="form.adress"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="详细地址" prop="addressInfo">
<el-input
v-model="form.addressInfo"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="是否需要冷藏" prop="isRefrigerate">
<el-input
v-model="form.isRefrigerate"
placeholder="请输入是否需要冷藏"
/>
</el-form-item>
<el-form-item label="服务结束时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务结束时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="陪诊员收货人名字" prop="pzShr">
<el-input v-model="form.pzShr" placeholder="请输入陪诊员收货人名字" />
</el-form-item>
<el-form-item label="陪诊员收货地址" prop="pzAddress">
<el-input
v-model="form.pzAddress"
placeholder="请输入陪诊员收货地址"
/>
</el-form-item>
<el-form-item label="陪诊员收货电话" prop="pzShPhone">
<el-input
v-model="form.pzShPhone"
placeholder="请输入陪诊员收货电话"
/>
</el-form-item>
<el-form-item label="陪诊员收货备注" prop="pzShRemake">
<el-input
v-model="form.pzShRemake"
placeholder="请输入陪诊员收货备注"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="就诊人员信息"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<div class="contl">
<div class="contl-item">
<p class="contl-item-label">姓名:</p>
<p class="contl-item-rig">{{ VisitorData.name }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">性别:</p>
<p class="contl-item-rig" v-if="VisitorData.sex == 1"></p>
<p class="contl-item-rig" v-else-if="VisitorData.sex == 0"></p>
<p class="contl-item-rig" v-else>未知</p>
</div>
<div class="contl-item">
<p class="contl-item-label">身份证号:</p>
<p class="contl-item-rig">{{ VisitorData.idcard }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">是否成年:</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 1">未成年</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 0">已成年</p>
</div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfoImg">
<el-dialog
title="凭证图片"
:visible.sync="openArticleInfoImg"
width="600px"
append-to-body
>
<imageUpload
v-if="VisitorData.voucher"
v-model="VisitorData.voucher"
:limit="VisitorData.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listDbmyOrder,
getDbmyOrder,
delDbmyOrder,
addDbmyOrder,
updateDbmyOrder,
} from "@/api/orderManagement/dbmyOrder";
export default {
name: "DbmyOrder",
data() {
return {
openArticleInfoImg: false,
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 代办买药订单表格数据
dbmyOrderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderSn: undefined,
// orderId: undefined,
// ypName: undefined,
// ydAddress: undefined,
// isCf: undefined,
// prescriptionAttachment: undefined,
// way: undefined,
// recipient: undefined,
// adress: undefined,
// addressInfo: undefined,
// phone: undefined,
// isRefrigerate: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
// pzShr: undefined,
// pzAddress: undefined,
// pzShPhone: undefined,
// pzShRemake: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
voucher: "",
},
};
},
created() {
this.getList();
},
methods: {
clickSeeVisitorImg(row) {
this.openArticleInfoImg = true;
this.VisitorData = row;
},
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
/** 查询代办买药订单列表 */
getList() {
this.loading = true;
listDbmyOrder(this.queryParams).then((response) => {
this.dbmyOrderList = response.rows;
this.total = response.total;
this.loading = false;
// if (this.dbmyOrderList && this.dbmyOrderList.length) {
// this.dbmyOrderList.forEach((item, index) => {
// this.$set(this.dbmyOrderList, index, {
// ...item,
// prescriptionAttachment: item.prescriptionAttachment
// ? JSON.parse(item.prescriptionAttachment).join(",")
// : "",
// });
// });
// console.log(this.dbmyOrderList, "this.dbmyOrderList");
// }
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
ypName: undefined,
ydAddress: undefined,
isCf: undefined,
prescriptionAttachment: undefined,
way: undefined,
recipient: undefined,
adress: undefined,
addressInfo: undefined,
phone: undefined,
isRefrigerate: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
pzShr: undefined,
pzAddress: undefined,
pzShPhone: undefined,
pzShRemake: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加代办买药订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getDbmyOrder(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改代办买药订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateDbmyOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addDbmyOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除代办买药订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delDbmyOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/dbmyOrder/export",
{
...this.queryParams,
},
`dbmyOrder_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="订单号" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:dbwzOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dbwzOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dbwzOrder:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:dbwzOrder:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="dbwzOrderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单号"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单价"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="就诊人员"
align="center"
prop="userVsitorVo"
key="userVsitorVo"
>
<template slot-scope="{ row }">
<el-button
v-if="row.userVsitorVo && Object.keys(row.userVsitorVo).length"
type="text"
@click="clickSeeVisitor(row)"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column label="接单人" align="center" prop="ename" key="ename">
<template slot-scope="{ row }">
<span v-if="row.ename">{{ row.ename }}</span>
<span v-else>未接单</span>
</template>
</el-table-column>
<el-table-column
label="期望就诊时间"
align="center"
prop="visitTime"
key="visitTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column label="备注" align="center" prop="remark" key="remark">
<template slot-scope="{ row }">
<el-button
v-if="row.remark"
type="text"
@click="clickSeeROWrEM(row.remark, '订单备注')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="主诉"
align="center"
prop="chiefComplaint"
key="chiefComplaint"
>
<template slot-scope="{ row }">
<el-button
v-if="row.chiefComplaint"
type="text"
@click="clickSeeROWrEM(row.chiefComplaint, '主诉')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="现病史"
align="center"
prop="historyOfPresentIllness"
key="historyOfPresentIllness"
>
<template slot-scope="{ row }">
<el-button
v-if="row.historyOfPresentIllness"
type="text"
@click="clickSeeROWrEM(row.historyOfPresentIllness, '现病史')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="即往史"
align="center"
prop="pastHistory"
key="pastHistory"
>
<template slot-scope="{ row }">
<el-button
v-if="row.pastHistory"
type="text"
@click="clickSeeROWrEM(row.pastHistory, '即往史')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="上次就医情况"
align="center"
prop="lastMedicalTreatmentSituation"
key="lastMedicalTreatmentSituation"
width="100"
>
<template slot-scope="{ row }">
<el-button
v-if="row.lastMedicalTreatmentSituation"
type="text"
@click="
clickSeeROWrEM(row.lastMedicalTreatmentSituation, '上次就医情况')
"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="治疗后情况"
align="center"
prop="postTreatmentCondition"
key="postTreatmentCondition"
width="100"
>
<template slot-scope="{ row }">
<el-button
v-if="row.postTreatmentCondition"
type="text"
@click="clickSeeROWrEM(row.postTreatmentCondition, '治疗后情况')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="相关报告"
align="center"
prop="relatedReports"
key="relatedReports"
>
<template slot-scope="{ row }">
<span v-if="row.relatedReports">已上传</span>
<span v-else>未上传</span>
</template>
</el-table-column>
<el-table-column
label="服务要求"
align="center"
prop="serviceRequirements"
key="serviceRequirements"
>
<template slot-scope="{ row }">
<el-button
v-if="row.serviceRequirements"
type="text"
@click="clickSeeROWrEM(row.serviceRequirements, '服务要求')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="当前状态"
align="center"
prop="ystatus"
key="ystatus"
>
<template slot-scope="{ row }">
<span v-if="row.ystatus == 0">已发布</span>
<span v-if="row.ystatus == 1">已接单</span>
<span v-if="row.ystatus == 2">已完成</span>
<span v-if="row.ystatus == 3">退款中</span>
<span v-if="row.ystatus == 4">已退款</span>
<span v-if="row.ystatus == 6">进行中</span>
</template>
</el-table-column>
<el-table-column
label="订单状态"
align="center"
prop="tstatus"
key="tstatus"
>
<template slot-scope="{ row }">
<span v-if="row.tstatus == 0">待支付</span>
<span v-if="row.tstatus == 1">已支付</span>
<span v-if="row.tstatus == 2">已完成</span>
<span v-if="row.tstatus == 7">已取消</span>
<span v-if="row.tstatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="服务完成时间"
align="center"
prop="overTime"
key="overTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="是否好评"
align="center"
prop="isSatisfaction"
key="isSatisfaction"
>
<template slot-scope="{ row }">
<!-- 0-未评价,1-好评,2-差评 -->
<span v-if="row.isSatisfaction == 0">未评价</span>
<span v-if="row.isSatisfaction == 1">好评</span>
<span v-if="row.isSatisfaction == 2">差评</span>
</template>
</el-table-column>
<el-table-column
label="评价"
align="center"
prop="evaluationContent"
key="evaluationContent"
>
<template slot-scope="{ row }">
<el-button
v-if="row.evaluationContent"
type="text"
@click="clickSeeROWrEM(row.evaluationContent, '订单评价')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="完成凭证"
align="center"
prop="voucher"
key="voucher"
width="170"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
<!-- <imageUpload
v-if="row.voucher"
v-model="row.voucher"
:limit="row.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload> -->
<span>
<el-button
v-if="row.voucher"
type="text"
@click="clickSeeVisitorImg(row)"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dbwzOrder:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dbwzOrder:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改代办问诊订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="就诊人员" prop="visitor">
<el-input v-model="form.visitor" placeholder="请输入就诊人员" />
</el-form-item>
<el-form-item label="期望就诊时间" prop="visitTime">
<el-input v-model="form.visitTime" placeholder="请输入期望就诊时间" />
</el-form-item>
<el-form-item label="科室" prop="did">
<el-input v-model="form.did" placeholder="请输入科室" />
</el-form-item>
<el-form-item label="主诉" prop="chiefComplaint">
<el-input
v-model="form.chiefComplaint"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="现病史" prop="historyOfPresentIllness">
<el-input
v-model="form.historyOfPresentIllness"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="即往史" prop="pastHistory">
<el-input
v-model="form.pastHistory"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="上次就医情况" prop="lastMedicalTreatmentSituation">
<el-input
v-model="form.lastMedicalTreatmentSituation"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="治疗后情况" prop="postTreatmentCondition">
<el-input
v-model="form.postTreatmentCondition"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="相关报告" prop="relatedReports">
<el-input
v-model="form.relatedReports"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="服务要求" prop="serviceRequirements">
<el-input
v-model="form.serviceRequirements"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="服务完成时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务完成时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="说明" prop="indications">
<el-input v-model="form.indications" placeholder="请输入说明" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="就诊人员信息"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<div class="contl">
<div class="contl-item">
<p class="contl-item-label">姓名:</p>
<p class="contl-item-rig">{{ VisitorData.name }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">性别:</p>
<p class="contl-item-rig" v-if="VisitorData.sex == 1"></p>
<p class="contl-item-rig" v-else-if="VisitorData.sex == 0"></p>
<p class="contl-item-rig" v-else>未知</p>
</div>
<div class="contl-item">
<p class="contl-item-label">身份证号:</p>
<p class="contl-item-rig">{{ VisitorData.idcard }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">是否成年:</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 1">未成年</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 0">已成年</p>
</div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfoImg">
<el-dialog
title="凭证图片"
:visible.sync="openArticleInfoImg"
width="600px"
append-to-body
>
<imageUpload
v-if="VisitorData.voucher"
v-model="VisitorData.voucher"
:limit="VisitorData.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listDbwzOrder,
getDbwzOrder,
delDbwzOrder,
addDbwzOrder,
updateDbwzOrder,
} from "@/api/orderManagement/dbwzOrder";
export default {
name: "DbwzOrder",
data() {
return {
openArticleInfoImg: false,
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 代办问诊订单表格数据
dbwzOrderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderSn: undefined,
// orderId: undefined,
// visitor: undefined,
// visitTime: undefined,
// did: undefined,
// chiefComplaint: undefined,
// historyOfPresentIllness: undefined,
// pastHistory: undefined,
// lastMedicalTreatmentSituation: undefined,
// postTreatmentCondition: undefined,
// relatedReports: undefined,
// serviceRequirements: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
// indications: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
voucher: "",
},
};
},
created() {
this.getList();
},
methods: {
clickSeeVisitorImg(row) {
this.openArticleInfoImg = true;
this.VisitorData = row;
},
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
/** 查询代办问诊订单列表 */
getList() {
this.loading = true;
listDbwzOrder(this.queryParams).then((response) => {
this.dbwzOrderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
visitor: undefined,
visitTime: undefined,
did: undefined,
chiefComplaint: undefined,
historyOfPresentIllness: undefined,
pastHistory: undefined,
lastMedicalTreatmentSituation: undefined,
postTreatmentCondition: undefined,
relatedReports: undefined,
serviceRequirements: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
indications: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加代办问诊订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getDbwzOrder(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改代办问诊订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateDbwzOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addDbwzOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除代办问诊订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delDbwzOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/dbwzOrder/export",
{
...this.queryParams,
},
`dbwzOrder_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="订单号" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:order:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:order:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:order:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:order:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="orderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="订单号"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单价"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="服务"
align="center"
prop="serviceName"
key="serviceName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医院"
align="center"
prop="hname"
key="hname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="就诊人员"
align="center"
prop="userVsitorVo"
key="userVsitorVo"
>
<template slot-scope="{ row }">
<el-button
v-if="row.userVsitorVo && Object.keys(row.userVsitorVo).length"
type="text"
@click="clickSeeVisitor(row)"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column label="接单人" align="center" prop="ename" key="ename">
<template slot-scope="{ row }">
<span v-if="row.ename">{{ row.ename }}</span>
<span v-else>未接单</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" key="remark">
<template slot-scope="{ row }">
<el-button
v-if="row.remark"
type="text"
@click="clickSeeROWrEM(row.remark, '订单备注')"
>点击查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="就诊时间"
align="center"
prop="visitTime"
key="visitTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="预约电话"
align="center"
prop="phone"
key="phone"
:show-overflow-tooltip="true"
/>
<el-table-column
label="当前状态"
align="center"
prop="ystatus"
key="ystatus"
>
<template slot-scope="{ row }">
<span v-if="row.ystatus == 0">已发布</span>
<span v-if="row.ystatus == 1">已接单</span>
<span v-if="row.ystatus == 2">已完成</span>
<span v-if="row.ystatus == 3">退款中</span>
<span v-if="row.ystatus == 4">已退款</span>
<span v-if="row.ystatus == 6">进行中</span>
</template>
</el-table-column>
<el-table-column
label="订单状态"
align="center"
prop="tstatus"
key="tstatus"
>
<template slot-scope="{ row }">
<span v-if="row.tstatus == 0">待支付</span>
<span v-if="row.tstatus == 1">已支付</span>
<span v-if="row.tstatus == 2">已完成</span>
<span v-if="row.tstatus == 7">已取消</span>
<span v-if="row.tstatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="是否好评"
align="center"
prop="isSatisfaction"
key="isSatisfaction"
>
<template slot-scope="{ row }">
<!-- 0-未评价,1-好评,2-差评 -->
<span v-if="row.isSatisfaction == 0">未评价</span>
<span v-if="row.isSatisfaction == 1">好评</span>
<span v-if="row.isSatisfaction == 2">差评</span>
</template>
</el-table-column>
<el-table-column
label="评价"
align="center"
prop="evaluationContent"
key="evaluationContent"
>
<template slot-scope="{ row }">
<el-button
v-if="row.evaluationContent"
type="text"
@click="clickSeeROWrEM(row.evaluationContent, '订单评价')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="服务完成时间"
align="center"
prop="overTime"
key="overTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="完成凭证"
align="center"
prop="voucher"
key="voucher"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<!-- <imageUpload
v-if="row.voucher"
v-model="row.voucher"
:limit="row.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload> -->
<span>
<el-button
v-if="row.voucher"
type="text"
@click="clickSeeVisitorImg(row)"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:order:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:order:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改预约陪诊订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="医院" prop="hid">
<el-input v-model="form.hid" placeholder="请输入医院" />
</el-form-item>
<el-form-item label="就诊人员" prop="visitor">
<el-input v-model="form.visitor" placeholder="请输入就诊人员" />
</el-form-item>
<el-form-item label="科室" prop="did">
<el-input v-model="form.did" placeholder="请输入科室" />
</el-form-item>
<el-form-item label="就诊时间" prop="visitTime">
<el-input v-model="form.visitTime" placeholder="请输入就诊时间" />
</el-form-item>
<el-form-item label="预约电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入预约电话" />
</el-form-item>
<el-form-item label="服务完成时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务完成时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="就诊人员信息"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<div class="contl">
<div class="contl-item">
<p class="contl-item-label">姓名:</p>
<p class="contl-item-rig">{{ VisitorData.name }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">性别:</p>
<p class="contl-item-rig" v-if="VisitorData.sex == 1"></p>
<p class="contl-item-rig" v-else-if="VisitorData.sex == 0"></p>
<p class="contl-item-rig" v-else>未知</p>
</div>
<div class="contl-item">
<p class="contl-item-label">身份证号:</p>
<p class="contl-item-rig">{{ VisitorData.idcard }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">是否成年:</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 1">未成年</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 0">已成年</p>
</div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfoImg">
<el-dialog
title="凭证图片"
:visible.sync="openArticleInfoImg"
width="600px"
append-to-body
>
<imageUpload
v-if="VisitorData.voucher"
v-model="VisitorData.voucher"
:limit="VisitorData.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listOrder,
getOrder,
delOrder,
addOrder,
updateOrder,
} from "@/api/orderManagement/order";
export default {
name: "Order",
data() {
return {
openArticleInfoImg: false,
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 预约陪诊订单表格数据
orderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderSn: undefined,
// orderId: undefined,
// hid: undefined,
// visitor: undefined,
// did: undefined,
// visitTime: undefined,
// phone: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
voucher: "",
},
};
},
created() {
this.getList();
},
methods: {
clickSeeVisitorImg(row) {
this.openArticleInfoImg = true;
this.VisitorData = row;
},
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
clickSeeVisitor(row) {
this.openArticleInfo = true;
this.VisitorData = row.userVsitorVo;
},
/** 查询预约陪诊订单列表 */
getList() {
this.loading = true;
listOrder(this.queryParams).then((response) => {
this.orderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
hid: undefined,
visitor: undefined,
did: undefined,
visitTime: undefined,
phone: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加预约陪诊订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getOrder(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改预约陪诊订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除预约陪诊订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/order/export",
{
...this.queryParams,
},
`order_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="订单号" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:zqghOrder:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:zqghOrder:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:zqghOrder:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:zqghOrder:export']"
>导出</el-button
>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="zqghOrderList"
@selection-change="handleSelectionChange"
>
<el-table-column
label="订单号"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单价"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医院"
align="center"
prop="hname"
key="hname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医生"
align="center"
prop="serviceName"
key="serviceName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="用户"
align="center"
prop="userName"
key="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="预约时间"
align="center"
prop="timeOfAppointment"
key="timeOfAppointment"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column label="备注" align="center" prop="remark" key="remark">
<template slot-scope="{ row }">
<el-button
v-if="row.remark"
type="text"
@click="clickSeeROWrEM(row.remark, '订单备注')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="订单状态"
align="center"
prop="tstatus"
key="tstatus"
>
<template slot-scope="{ row }">
<span v-if="row.tstatus == 0">待支付</span>
<span v-if="row.tstatus == 1">已支付</span>
<span v-if="row.tstatus == 2">已完成</span>
<span v-if="row.tstatus == 7">已取消</span>
<span v-if="row.tstatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:zqghOrder:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:zqghOrder:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改诊前挂号订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="医院" prop="hid">
<el-input v-model="form.hid" placeholder="请输入医院" />
</el-form-item>
<el-form-item label="科室" prop="did">
<el-input v-model="form.did" placeholder="请输入科室" />
</el-form-item>
<el-form-item label="医生" prop="doctorId">
<el-input v-model="form.doctorId" placeholder="请输入医生" />
</el-form-item>
<el-form-item label="预约时间" prop="timeOfAppointment">
<el-input
v-model="form.timeOfAppointment"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="服务完成时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务完成时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="" prop="isCal">
<el-input v-model="form.isCal" placeholder="请输入" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listZqghOrder,
getZqghOrder,
delZqghOrder,
addZqghOrder,
updateZqghOrder,
} from "@/api/orderManagement/zqghOrder";
export default {
name: "ZqghOrder",
data() {
return {
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 诊前挂号订单表格数据
zqghOrderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderSn: undefined,
// orderId: undefined,
// hid: undefined,
// did: undefined,
// doctorId: undefined,
// timeOfAppointment: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
// isCal: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
},
};
},
created() {
this.getList();
},
methods: {
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
/** 查询诊前挂号订单列表 */
getList() {
this.loading = true;
listZqghOrder(this.queryParams).then((response) => {
this.zqghOrderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
hid: undefined,
did: undefined,
doctorId: undefined,
timeOfAppointment: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
isCal: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加诊前挂号订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getZqghOrder(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改诊前挂号订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateZqghOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addZqghOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除诊前挂号订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delZqghOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/zqghOrder/export",
{
...this.queryParams,
},
`zqghOrder_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="订单号" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:zyphOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:zyphOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:zyphOrder:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:zyphOrder:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="zyphOrderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="订单号"
align="center"
prop="orderSn"
key="orderSn"
:show-overflow-tooltip="true"
/>
<el-table-column
label="订单价"
align="center"
prop="payMoney"
key="payMoney"
:show-overflow-tooltip="true"
/>
<el-table-column
label="服务"
align="center"
prop="serviceName"
key="serviceName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
prop="cityName"
key="cityName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医院"
align="center"
prop="hname"
key="hname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室"
align="center"
prop="title"
key="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="就诊人员"
align="center"
prop="userVsitorVo"
key="userVsitorVo"
>
<template slot-scope="{ row }">
<el-button
v-if="row.userVsitorVo && Object.keys(row.userVsitorVo).length"
type="text"
@click="clickSeeVisitor(row)"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column label="接单人" align="center" prop="ename" key="ename">
<template slot-scope="{ row }">
<span v-if="row.ename">{{ row.ename }}</span>
<span v-else>未接单</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" key="remark">
<template slot-scope="{ row }">
<el-button
v-if="row.remark"
type="text"
@click="clickSeeROWrEM(row.remark, '订单备注')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="期待陪护日期"
align="center"
prop="startDay"
key="startDay"
width="180"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
{{ row.startDay }} - {{ row.endDay }}
</template>
</el-table-column>
<el-table-column
label="期待陪护时间"
align="center"
prop="startTime"
key="startTime"
width="180"
:show-overflow-tooltip="true"
>
<template slot-scope="{ row }">
{{ row.startTime }} - {{ row.endTime }}
</template>
</el-table-column>
<el-table-column
label="当前状态"
align="center"
prop="ystatus"
key="ystatus"
>
<template slot-scope="{ row }">
<span v-if="row.ystatus == 0">已发布</span>
<span v-if="row.ystatus == 1">已接单</span>
<span v-if="row.ystatus == 2">已完成</span>
<span v-if="row.ystatus == 3">退款中</span>
<span v-if="row.ystatus == 4">已退款</span>
<span v-if="row.ystatus == 6">进行中</span>
</template>
</el-table-column>
<el-table-column
label="订单状态"
align="center"
prop="tstatus"
key="tstatus"
>
<template slot-scope="{ row }">
<span v-if="row.tstatus == 0">待支付</span>
<span v-if="row.tstatus == 1">已支付</span>
<span v-if="row.tstatus == 2">已完成</span>
<span v-if="row.tstatus == 7">已取消</span>
<span v-if="row.tstatus == 8">已退款</span>
</template>
</el-table-column>
<el-table-column
label="是否好评"
align="center"
prop="isSatisfaction"
key="isSatisfaction"
>
<template slot-scope="{ row }">
<!-- 0-未评价,1-好评,2-差评 -->
<span v-if="row.isSatisfaction == 0">未评价</span>
<span v-if="row.isSatisfaction == 1">好评</span>
<span v-if="row.isSatisfaction == 2">差评</span>
</template>
</el-table-column>
<el-table-column
label="评价"
align="center"
prop="evaluationContent"
key="evaluationContent"
>
<template slot-scope="{ row }">
<el-button
v-if="row.evaluationContent"
type="text"
@click="clickSeeROWrEM(row.evaluationContent, '订单评价')"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column
label="服务完成时间"
align="center"
prop="overTime"
key="overTime"
width="180"
:show-overflow-tooltip="true"
/>
<el-table-column
label="完成凭证"
align="center"
prop="voucher"
key="voucher"
:show-overflow-tooltip="true"
width="170"
>
<template slot-scope="{ row }">
<!-- <imageUpload
v-if="row.voucher"
v-model="row.voucher"
:limit="row.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload> -->
<span>
<el-button
v-if="row.voucher"
type="text"
@click="clickSeeVisitorImg(row)"
>点击查看</el-button
>
</span>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
key="createTime"
width="180"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:zyphOrder:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:zyphOrder:remove']"
>删除</el-button
>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改住院陪诊订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="主订单" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入主订单" />
</el-form-item>
<el-form-item label="医院" prop="hid">
<el-input v-model="form.hid" placeholder="请输入医院" />
</el-form-item>
<el-form-item label="科室" prop="did">
<el-input v-model="form.did" placeholder="请输入科室" />
</el-form-item>
<el-form-item label="就诊人员" prop="visitor">
<el-input v-model="form.visitor" placeholder="请输入就诊人员" />
</el-form-item>
<el-form-item label="开始日期" prop="startDay">
<el-input v-model="form.startDay" placeholder="请输入开始日期" />
</el-form-item>
<el-form-item label="结束日期" prop="endDay">
<el-input v-model="form.endDay" placeholder="请输入结束日期" />
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-input v-model="form.startTime" placeholder="请输入开始时间" />
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-input v-model="form.endTime" placeholder="请输入结束时间" />
</el-form-item>
<el-form-item label="服务完成时间" prop="overTime">
<el-date-picker
clearable
v-model="form.overTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择服务完成时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="完成凭证" prop="voucher">
<el-input
v-model="form.voucher"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="openArticle">
<el-dialog
:title="openArticleTitle"
:visible.sync="openArticle"
width="50%"
append-to-body
>
<div class="hidden-dialog">
<div class="content" v-html="rowArticle"></div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfo">
<el-dialog
title="就诊人员信息"
:visible.sync="openArticleInfo"
width="600px"
append-to-body
>
<div class="contl">
<div class="contl-item">
<p class="contl-item-label">姓名:</p>
<p class="contl-item-rig">{{ VisitorData.name }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">性别:</p>
<p class="contl-item-rig" v-if="VisitorData.sex == 1"></p>
<p class="contl-item-rig" v-else-if="VisitorData.sex == 0"></p>
<p class="contl-item-rig" v-else>未知</p>
</div>
<div class="contl-item">
<p class="contl-item-label">身份证号:</p>
<p class="contl-item-rig">{{ VisitorData.idcard }}</p>
</div>
<div class="contl-item">
<p class="contl-item-label">是否成年:</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 1">未成年</p>
<p class="contl-item-rig" v-if="VisitorData.isAdult == 0">已成年</p>
</div>
</div>
</el-dialog>
</template>
<template v-if="openArticleInfoImg">
<el-dialog
title="凭证图片"
:visible.sync="openArticleInfoImg"
width="600px"
append-to-body
>
<imageUpload
v-if="VisitorData.voucher"
v-model="VisitorData.voucher"
:limit="VisitorData.voucher.split(',').length"
:isShowTip="false"
:disabled="true"
></imageUpload>
</el-dialog>
</template>
</div>
</template>
<script>
import {
listZyphOrder,
getZyphOrder,
delZyphOrder,
addZyphOrder,
updateZyphOrder,
} from "@/api/orderManagement/zyphOrder";
export default {
name: "ZyphOrder",
data() {
return {
openArticleInfoImg: false,
openArticleInfo: false,
openArticle: false,
openArticleTitle: "",
rowArticle: "",
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 住院陪诊订单表格数据
zyphOrderList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderSn: undefined,
// orderId: undefined,
// hid: undefined,
// did: undefined,
// visitor: undefined,
// startDay: undefined,
// endDay: undefined,
// startTime: undefined,
// endTime: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }],
},
VisitorData: {
name: "",
sex: "",
idcard: "",
isAdult: "",
voucher: "",
},
};
},
created() {
this.getList();
},
methods: {
clickSeeVisitorImg(row) {
this.openArticleInfoImg = true;
this.VisitorData = row;
},
clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title;
},
replaceSpecialChar(detail) {
var content = detail.replaceAll(
/<img[^>]*>/gi,
function (match, capture) {
var match = match.replaceAll(
/(style="(.*?)")|(width="(.*?)")|(height="(.*?)")/gi,
``
); //清空自带的width,height
match = match.replaceAll(
"<img",
'<img style="max-width:100%;margin: 0 auto;"'
);
console.log(match, "change"); //设置最大宽度
return match;
}
);
return content;
},
clickSeeVisitor(row) {
this.openArticleInfo = true;
this.VisitorData = row.userVsitorVo;
},
/** 查询住院陪诊订单列表 */
getList() {
this.loading = true;
listZyphOrder(this.queryParams).then((response) => {
this.zyphOrderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
orderId: undefined,
hid: undefined,
did: undefined,
visitor: undefined,
startDay: undefined,
endDay: undefined,
startTime: undefined,
endTime: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加住院陪诊订单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getZyphOrder(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改住院陪诊订单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateZyphOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addZyphOrder(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除住院陪诊订单编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delZyphOrder(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/zyphOrder/export",
{
...this.queryParams,
},
`zyphOrder_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style scoped lang="scss">
.hidden-dialog {
height: 500px;
overflow-x: hidden;
}
.content {
width: 100%;
}
.contl {
padding: 20px;
width: calc(100 - 40px);
color: #333333;
font-size: 16px;
&-item {
display: flex;
&-label {
width: 20%;
}
&-rig {
width: 80%;
}
}
}
</style>
<template>
<div class="register">
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
<h3 class="title">RuoYi-Vue-Plus后台管理系统</h3>
<h3 class="title">闪陪科技</h3>
<el-form-item prop="username">
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
......
......@@ -55,7 +55,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:config:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -66,7 +65,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:config:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -77,7 +75,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:config:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -87,7 +84,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:config:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
......@@ -97,7 +93,6 @@
icon="el-icon-refresh"
size="mini"
@click="handleRefreshCache"
v-hasPermi="['system:config:remove']"
>刷新缓存</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -127,14 +122,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:config:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:config:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -33,7 +33,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:dept:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -75,14 +74,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dept:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['system:dept:add']"
>新增</el-button>
<el-button
v-if="scope.row.parentId != 0"
......@@ -90,7 +87,6 @@
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dept:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -43,7 +43,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:dict:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -54,7 +53,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -65,7 +63,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -75,7 +72,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:dict:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
......@@ -119,14 +115,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -60,7 +60,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:dict:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -71,7 +70,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -82,7 +80,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -92,7 +89,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:dict:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
......@@ -102,7 +98,6 @@
icon="el-icon-refresh"
size="mini"
@click="handleRefreshCache"
v-hasPermi="['system:dict:remove']"
>刷新缓存</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -137,14 +132,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -33,7 +33,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:menu:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -82,21 +81,18 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:menu:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['system:menu:add']"
>新增</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:menu:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -41,7 +41,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:notice:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -52,7 +51,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:notice:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -63,7 +61,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:notice:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -101,14 +98,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:notice:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:notice:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -39,7 +39,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:oss:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -50,7 +49,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:oss:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -61,7 +59,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:oss:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -100,14 +97,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:oss:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:oss:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -73,7 +73,6 @@
icon="el-icon-plus"
size="mini"
@click="handleFile"
v-hasPermi="['system:oss:upload']"
>上传文件</el-button>
</el-col>
<el-col :span="1.5">
......@@ -83,7 +82,6 @@
icon="el-icon-plus"
size="mini"
@click="handleImage"
v-hasPermi="['system:oss:upload']"
>上传图片</el-button>
</el-col>
<el-col :span="1.5">
......@@ -94,7 +92,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:oss:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -103,7 +100,6 @@
plain
size="mini"
@click="handlePreviewListResource(!previewListResource)"
v-hasPermi="['system:oss:edit']"
>预览开关 : {{previewListResource ? "禁用" : "启用"}}</el-button>
</el-col>
<el-col :span="1.5">
......@@ -113,7 +109,6 @@
icon="el-icon-s-operation"
size="mini"
@click="handleOssConfig"
v-hasPermi="['system:oss:list']"
>配置管理</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -155,14 +150,12 @@
type="text"
icon="el-icon-edit"
@click="handleDownload(scope.row)"
v-hasPermi="['system:oss:download']"
>下载</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:oss:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -41,7 +41,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:post:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -52,7 +51,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:post:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -63,7 +61,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:post:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -73,7 +70,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:post:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -102,14 +98,12 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:post:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:post:remove']"
>删除</el-button>
</template>
</el-table-column>
......
......@@ -33,7 +33,6 @@
icon="el-icon-plus"
size="mini"
@click="openSelectUser"
v-hasPermi="['system:role:add']"
>添加用户</el-button>
</el-col>
<el-col :span="1.5">
......@@ -44,7 +43,6 @@
size="mini"
:disabled="multiple"
@click="cancelAuthUserAll"
v-hasPermi="['system:role:remove']"
>批量取消授权</el-button>
</el-col>
<el-col :span="1.5">
......@@ -82,7 +80,6 @@
type="text"
icon="el-icon-circle-close"
@click="cancelAuthUser(scope.row)"
v-hasPermi="['system:role:remove']"
>取消授权</el-button>
</template>
</el-table-column>
......
......@@ -60,7 +60,6 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:role:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
......@@ -71,7 +70,6 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:role:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -82,7 +80,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:role:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
......@@ -92,7 +89,6 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:role:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -126,22 +122,18 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:role:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:role:remove']"
>删除</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"
v-hasPermi="['system:role:edit']">数据权限</el-dropdown-item>
<el-dropdown-item command="handleAuthUser" icon="el-icon-user"
v-hasPermi="['system:role:edit']">分配用户</el-dropdown-item>
<el-dropdown-item command="handleDataScope" icon="el-icon-circle-check">数据权限</el-dropdown-item>
<el-dropdown-item command="handleAuthUser" icon="el-icon-user">分配用户</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
......
......@@ -2,7 +2,7 @@
<div class="app-container">
<el-row :gutter="20">
<!--部门数据-->
<el-col :span="4" :xs="24">
<!-- <el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="deptName"
......@@ -26,10 +26,17 @@
@node-click="handleNodeClick"
/>
</div>
</el-col>
</el-col> -->
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-col :span="24" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
......@@ -39,7 +46,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<!-- <el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
......@@ -47,8 +54,8 @@
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
</el-form-item> -->
<!-- <el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
......@@ -62,8 +69,8 @@
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
</el-form-item> -->
<!-- <el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
......@@ -74,10 +81,18 @@
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
......@@ -89,10 +104,10 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
......@@ -133,18 +148,49 @@
@click="handleExport"
v-hasPermi="['system:user:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-col> -->
<!-- <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
:columns="columns"
></right-toolbar> -->
</el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="userList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<el-table-column
label="ID"
align="center"
key="userId"
prop="userId"
/>
<el-table-column
label="用户名"
align="center"
key="userName"
prop="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="姓名"
align="center"
key="nickName"
prop="nickName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="角色"
align="center"
key="roleName"
prop="roleName"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" /> -->
<!-- <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
......@@ -153,12 +199,19 @@
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column
label="创建时间"
align="center"
prop="createTime"
width="160"
/> -->
<!-- <el-table-column
label="更新时间"
align="center"
prop="updateTime"
width="160"
/> -->
<el-table-column
label="操作"
align="center"
......@@ -171,30 +224,44 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']"
>删除</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
>删除</el-button
>
<!-- <el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:resetPwd', 'system:user:edit']"
>
<el-button size="mini" type="text" icon="el-icon-d-arrow-right"
>更多</el-button
>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleResetPwd" icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
<el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
<el-dropdown-item
command="handleResetPwd"
icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']"
>重置密码</el-dropdown-item
>
<el-dropdown-item
command="handleAuthRole"
icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']"
>分配角色</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
......@@ -204,113 +271,86 @@
</el-row>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择岗位">
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色">
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<template v-if="open">
<el-dialog
:title="title"
:visible.sync="open"
width="600px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24">
<el-form-item label="用户名" prop="nickName">
<el-input
v-model="form.nickName"
placeholder="请输入用户昵称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="名称" prop="userName">
<el-input
v-model="form.userName"
placeholder="请输入名称"
maxlength="30"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="确认密码" prop="passwordT">
<el-input
v-model="form.passwordT"
placeholder="请输入确认密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="角色">
<el-select v-model="form.roleIds" placeholder="请选择角色">
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
......@@ -327,10 +367,17 @@
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
......@@ -342,16 +389,32 @@
</template>
<script>
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
import {
listUser,
getUser,
delUser,
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
deptTreeSelect,
} from "@/api/system/user";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "User",
dicts: ['sys_normal_disable', 'sys_user_sex'],
dicts: ["sys_normal_disable", "sys_user_sex"],
components: { Treeselect },
data() {
const equalToPassword = (rule, value, callback) => {
if (this.form.password !== value) {
callback(new Error("两次输入的密码不一致"));
} else {
callback();
}
};
return {
// 遮罩层
loading: true,
......@@ -384,10 +447,13 @@ export default {
// 角色选项
roleOptions: [],
// 表单参数
form: {},
form: {
password: undefined,
passwordT: undefined,
},
defaultProps: {
children: "children",
label: "label"
label: "label",
},
// 用户导入参数
upload: {
......@@ -402,16 +468,17 @@ export default {
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/system/user/importData"
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
phonenumber: undefined,
status: undefined,
deptId: undefined
// phonenumber: undefined,
// status: undefined,
// deptId: undefined
userType: "sys_user",
},
// 列信息
columns: [
......@@ -421,48 +488,62 @@ export default {
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true }
{ key: 6, label: `创建时间`, visible: true },
],
// 表单校验
rules: {
userName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" },
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
{
min: 2,
max: 20,
message: "用户名称长度必须介于 2 和 20 之间",
trigger: "blur",
},
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" }
{ required: true, message: "用户昵称不能为空", trigger: "blur" },
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{ min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
{
min: 5,
max: 20,
message: "用户密码长度必须介于 5 和 20 之间",
trigger: "blur",
},
],
passwordT: [
{ required: true, message: "确认密码不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "blur" },
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"]
}
trigger: ["blur", "change"],
},
],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur"
}
]
}
trigger: "blur",
},
],
},
};
},
watch: {
// 根据名称筛选部门树
deptName(val) {
this.$refs.tree.filter(val);
}
// this.$refs.tree.filter(val);
},
},
created() {
this.getList();
this.getDeptTree();
this.getConfigKey("sys.user.initPassword").then(response => {
// this.getDeptTree();
this.getConfigKey("sys.user.initPassword").then((response) => {
this.initPassword = response.msg;
});
},
......@@ -470,7 +551,8 @@ export default {
/** 查询用户列表 */
getList() {
this.loading = true;
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
......@@ -479,7 +561,7 @@ export default {
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then(response => {
deptTreeSelect().then((response) => {
this.deptOptions = response.data;
});
},
......@@ -496,13 +578,17 @@ export default {
// 用户状态修改
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
return changeUserStatus(row.userId, row.status);
}).then(() => {
this.$modal.msgSuccess(text + "成功");
}).catch(function() {
row.status = row.status === "0" ? "1" : "0";
});
this.$modal
.confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
.then(function () {
return changeUserStatus(row.userId, row.status);
})
.then(() => {
this.$modal.msgSuccess(text + "成功");
})
.catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
},
// 取消按钮
cancel() {
......@@ -523,7 +609,10 @@ export default {
status: "0",
remark: undefined,
postIds: [],
roleIds: []
roleIds: [],
createTime: undefined,
updateTime: undefined,
passwordT: undefined,
};
this.resetForm("form");
},
......@@ -536,13 +625,13 @@ export default {
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.queryParams.deptId = undefined;
this.$refs.tree.setCurrentKey(null);
// this.queryParams.deptId = undefined;
// this.$refs.tree.setCurrentKey(null);
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.userId);
this.ids = selection.map((item) => item.userId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
......@@ -561,28 +650,62 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.$set(this.rules, "password", [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{
min: 5,
max: 20,
message: "用户密码长度必须介于 5 和 20 之间",
trigger: "blur",
},
]);
this.$set(this.rules, "passwordT", [
{ required: true, message: "确认密码不能为空", trigger: "blur" },
{
required: true,
validator: (rule, value, callback) => {
if (this.form.password !== value) {
callback(new Error("两次输入的密码不一致"));
} else {
callback();
}
},
trigger: "blur",
},
]);
this.reset();
getUser().then(response => {
getUser().then((response) => {
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.open = true;
this.title = "添加用户";
// this.title = "添加用户";
this.title = "新增";
this.form.password = this.initPassword;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$delete(this.rules, "password");
this.$delete(this.rules, "passwordT");
this.reset();
const userId = row.userId || this.ids;
getUser(userId).then(response => {
getUser(userId).then((response) => {
this.form = response.data.user;
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.$set(this.form, "postIds", response.data.postIds);
this.$set(this.form, "roleIds", response.data.roleIds);
this.$set(
this.form,
"roleIds",
response.data && response.data.roleIds && response.data.roleIds.length
? response.data.roleIds[0]
: ""
);
this.open = true;
this.title = "修改用户";
this.form.password = "";
// this.title = "修改用户";
this.title = "修改";
this.$set(this.form, "password", "");
this.$set(this.form, "passwordT", "");
});
},
/** 重置密码按钮操作 */
......@@ -592,30 +715,38 @@ export default {
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
}).then(({ value }) => {
resetUserPwd(row.userId, value).then(response => {
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
})
.then(({ value }) => {
resetUserPwd(row.userId, value).then((response) => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
}).catch(() => {});
})
.catch(() => {});
},
/** 分配角色操作 */
handleAuthRole: function(row) {
handleAuthRole: function (row) {
const userId = row.userId;
this.$router.push("/system/user-auth/role/" + userId);
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
let arr = [];
arr[0] = this.form.roleIds;
let params = {
...this.form,
roleIds: arr,
};
if (this.form.userId != undefined) {
updateUser(this.form).then(response => {
updateUser(params).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addUser(this.form).then(response => {
addUser(params).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -627,18 +758,26 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const userIds = row.userId || this.ids;
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
return delUser(userIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
this.$modal
.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
.then(function () {
return delUser(userIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/user/export', {
...this.queryParams
}, `user_${new Date().getTime()}.xlsx`)
this.download(
"system/user/export",
{
...this.queryParams,
},
`user_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
......@@ -647,8 +786,11 @@ export default {
},
/** 下载模板操作 */
importTemplate() {
this.download('system/user/importTemplate', {
}, `user_template_${new Date().getTime()}.xlsx`)
this.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
......@@ -659,13 +801,19 @@ export default {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
}
}
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="标签" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入标签"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:goodsTag:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:goodsTag:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:goodsTag:export']"
>导出</el-button>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<div class="blocks">
<div v-for="(item, index) in goodsTagList" :key="index" class="blocks-item">
<p class="blocks-item-title">{{ item.title }}</p>
<div class="blocks-item-footer">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(item)"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(item)"
>删除</el-button
>
</div>
</div>
</div>
<!-- <el-table
v-loading="loading"
:data="goodsTagList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="" align="center" prop="id" v-if="true" />
<el-table-column label="" align="center" prop="storeId" />
<el-table-column label="标签" align="center" prop="title" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:goodsTag:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:goodsTag:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table> -->
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商品标签对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入" />
</el-form-item> -->
<el-form-item label="标签" prop="title">
<el-input v-model="form.title" placeholder="请输入标签" />
</el-form-item>
<!-- <el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listGoodsTag,
getGoodsTag,
delGoodsTag,
addGoodsTag,
updateGoodsTag,
} from "@/api/tag/index";
export default {
name: "GoodsTag",
data() {
return {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 商品标签表格数据
goodsTagList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
// storeId: undefined,
title: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {},
};
},
created() {
this.getList();
},
methods: {
/** 查询商品标签列表 */
getList() {
this.loading = true;
listGoodsTag(this.queryParams).then((response) => {
this.goodsTagList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
// storeId: undefined,
title: undefined,
// delFlag: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// remark: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加商品标签";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids;
getGoodsTag(id).then((response) => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改商品标签";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateGoodsTag(this.form)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
} else {
addGoodsTag(this.form)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除商品标签编号为"' + ids + '"的数据项?')
.then(() => {
this.loading = true;
return delGoodsTag(ids);
})
.then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/goodsTag/export",
{
...this.queryParams,
},
`goodsTag_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
.blocks {
width: 100%;
display: flex;
flex-wrap: wrap;
&-item {
// flex: 0 0 20%;
width: 20%;
padding: 10px 20px;
box-shadow: 0 0 10px 4px #e9e5e5;
border-radius: 10px;
margin-bottom: 10px;
&-title {
text-align: center;
font-size: 24px;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&-footer {
display: flex;
justify-content: right;
}
}
}
</style>
\ No newline at end of file
......@@ -50,7 +50,6 @@
icon="el-icon-download"
size="mini"
@click="handleGenTable"
v-hasPermi="['tool:gen:code']"
>生成</el-button>
</el-col>
<el-col :span="1.5">
......@@ -60,7 +59,6 @@
icon="el-icon-upload"
size="mini"
@click="openImportTable"
v-hasPermi="['tool:gen:import']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
......@@ -71,7 +69,6 @@
size="mini"
:disabled="single"
@click="handleEditTable"
v-hasPermi="['tool:gen:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
......@@ -82,7 +79,6 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tool:gen:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......@@ -125,35 +121,30 @@
size="small"
icon="el-icon-view"
@click="handlePreview(scope.row)"
v-hasPermi="['tool:gen:preview']"
>预览</el-button>
<el-button
type="text"
size="small"
icon="el-icon-edit"
@click="handleEditTable(scope.row)"
v-hasPermi="['tool:gen:edit']"
>编辑</el-button>
<el-button
type="text"
size="small"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['tool:gen:remove']"
>删除</el-button>
<el-button
type="text"
size="small"
icon="el-icon-refresh"
@click="handleSynchDb(scope.row)"
v-hasPermi="['tool:gen:edit']"
>同步</el-button>
<el-button
type="text"
size="small"
icon="el-icon-download"
@click="handleGenTable(scope.row)"
v-hasPermi="['tool:gen:code']"
>生成代码</el-button>
</template>
</el-table-column>
......
<template>
<div class="app-container">
<el-row :gutter="20">
<!--部门数据-->
<!-- <el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div>
<div class="head-container">
<el-tree
:data="deptOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
node-key="id"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
</div>
</el-col> -->
<!--用户数据-->
<el-col :span="24" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="陪诊员名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入陪诊员名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>新增</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:user:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['system:user:import']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:user:export']"
>导出</el-button>
</el-col> -->
<!-- <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
:columns="columns"
></right-toolbar> -->
</el-row>
<el-table
v-loading="loading"
:data="userList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="ID" align="center" key="id" prop="id" />
<el-table-column
label="陪诊员"
align="center"
key="name"
prop="name"
:show-overflow-tooltip="true"
/>
<el-table-column
label="职业开始年份"
align="center"
key="startYear"
prop="startYear"
:show-overflow-tooltip="true"
width="100"
/>
<el-table-column
label="用户"
align="center"
key="userName"
prop="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="所属商户"
align="center"
key="companyName"
prop="companyName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="身份证正面照"
align="center"
key="cardFront"
prop="cardFront"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.cardFront"
v-model="row.cardFront"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="身份证反面照"
align="center"
key="cardReverse"
prop="cardReverse"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.cardReverse"
v-model="row.cardReverse"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="健康证"
align="center"
key="healthCertificate"
prop="healthCertificate"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.healthCertificate"
v-model="row.healthCertificate"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="当前身份"
align="center"
key="nowType"
prop="nowType"
>
<template slot-scope="{ row }">
<span v-if="row.nowType == 1">陪诊员</span>
<span v-if="row.nowType == 2">陪护员</span>
</template>
</el-table-column>
<el-table-column
label="总收益"
align="center"
key="totalRevenue"
prop="totalRevenue"
/>
<el-table-column
label="当前余额"
align="center"
key="balance"
prop="balance"
/>
<el-table-column
label="城市"
align="center"
key="cityName"
prop="cityName"
/>
<!-- <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" /> -->
<el-table-column label="状态" align="center" key="status">
<template slot-scope="{ row }">
<!-- <el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
></el-switch> -->
<el-select
v-model="row.status"
placeholder="请选择状态"
@change="changeStatus($event, row)"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '正常',
value: 1,
},
{
label: '禁用',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="注册时间"
align="center"
prop="createTime"
width="160"
/>
<!-- <el-table-column
label="更新时间"
align="center"
prop="createTime"
width="160"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
<!-- <el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']"
>删除</el-button
>
<el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:resetPwd', 'system:user:edit']"
>
<el-button size="mini" type="text" icon="el-icon-d-arrow-right"
>更多</el-button
>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
command="handleResetPwd"
icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']"
>重置密码</el-dropdown-item
>
<el-dropdown-item
command="handleAuthRole"
icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']"
>分配角色</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24">
<el-form-item label="用户名" prop="nickName">
<el-input
v-model="form.nickName"
placeholder="请输入用户昵称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="名称" prop="userName">
<el-input
v-model="form.userName"
placeholder="请输入名称"
maxlength="30"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect
v-model="form.deptId"
:options="deptOptions"
:show-count="true"
placeholder="请选择归属部门"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="确认密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入确认密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<template v-if="title === '修改'">
<el-col :span="24">
<el-form-item label="创建时间" prop="">
<el-input disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="更新时间" prop="">
<el-input disabled />
</el-form-item>
</el-col>
</template>
<!-- <el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="form.phonenumber"
placeholder="请输入手机号码"
maxlength="11"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请输入邮箱"
maxlength="50"
/>
</el-form-item>
</el-col> -->
</el-row>
<!-- <el-row>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户名称"
prop="userName"
>
<el-input
v-model="form.userName"
placeholder="请输入用户名称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户密码"
prop="password"
>
<el-input
v-model="form.password"
placeholder="请输入用户密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位">
<el-select
v-model="form.postIds"
multiple
placeholder="请选择岗位"
>
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-col>
</el-row> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listUser,
getUser,
delUser,
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
deptTreeSelect,
} from "@/api/user/companion/index.js";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "UserCompanion",
// dicts: ["sys_normal_disable", "sys_user_sex"],
components: { Treeselect },
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 用户表格数据
userList: null,
// 弹出层标题
title: "",
// 部门树选项
deptOptions: undefined,
// 是否显示弹出层
open: false,
// 部门名称
deptName: undefined,
// 默认密码
initPassword: undefined,
// 日期范围
dateRange: [],
// 岗位选项
postOptions: [],
// 角色选项
roleOptions: [],
// 表单参数
form: {},
defaultProps: {
children: "children",
label: "label",
},
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: undefined,
// phonenumber: undefined,
// status: undefined,
// deptId: undefined
// userType: 'app_user'
},
// 列信息
columns: [
{ key: 0, label: `用户编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true },
{ key: 2, label: `用户昵称`, visible: true },
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true },
],
// 表单校验
rules: {
userName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" },
{
min: 2,
max: 20,
message: "用户名称长度必须介于 2 和 20 之间",
trigger: "blur",
},
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" },
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{
min: 5,
max: 20,
message: "用户密码长度必须介于 5 和 20 之间",
trigger: "blur",
},
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"],
},
],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur",
},
],
},
};
},
watch: {
// 根据名称筛选部门树
deptName(val) {
// this.$refs.tree.filter(val);
},
},
created() {
this.getList();
// this.getDeptTree();
// this.getConfigKey("sys.user.initPassword").then((response) => {
// this.initPassword = response.msg;
// });
},
methods: {
changeStatus(e, row) {
console.log("changeStatus", e, row);
updateUser({
...row,
status: e,
}).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
},
/** 查询用户列表 */
getList() {
this.loading = true;
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then((response) => {
this.deptOptions = response.data;
});
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id;
this.handleQuery();
},
// 用户状态修改
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal
.confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
.then(function () {
return changeUserStatus(row.userId, row.status);
})
.then(() => {
this.$modal.msgSuccess(text + "成功");
})
.catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
userId: undefined,
deptId: undefined,
userName: undefined,
nickName: undefined,
password: undefined,
phonenumber: undefined,
email: undefined,
sex: undefined,
status: "0",
remark: undefined,
postIds: [],
roleIds: [],
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
// this.queryParams.deptId = undefined;
// this.$refs.tree.setCurrentKey(null);
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.userId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleResetPwd":
this.handleResetPwd(row);
break;
case "handleAuthRole":
this.handleAuthRole(row);
break;
default:
break;
}
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
getUser().then((response) => {
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.open = true;
// this.title = "添加用户";
this.title = "新增";
this.form.password = this.initPassword;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const userId = row.userId || this.ids;
getUser(userId).then((response) => {
this.form = response.data.user;
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.$set(this.form, "postIds", response.data.postIds);
this.$set(this.form, "roleIds", response.data.roleIds);
this.open = true;
// this.title = "修改用户";
this.title = "修改";
this.form.password = "";
});
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
})
.then(({ value }) => {
resetUserPwd(row.userId, value).then((response) => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
})
.catch(() => {});
},
/** 分配角色操作 */
handleAuthRole: function (row) {
const userId = row.userId;
this.$router.push("/system/user-auth/role/" + userId);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.userId != undefined) {
updateUser(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addUser(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const userIds = row.userId || this.ids;
this.$modal
.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
.then(function () {
return delUser(userIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/user/export",
{
...this.queryParams,
},
`user_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "用户导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
},
};
</script>
<template>
<div class="app-container">
<el-row :gutter="20">
<!--部门数据-->
<!-- <el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div>
<div class="head-container">
<el-tree
:data="deptOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
node-key="id"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
</div>
</el-col> -->
<!--用户数据-->
<el-col :span="24" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="商户名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入商户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>新增</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:user:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['system:user:import']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:user:export']"
>导出</el-button>
</el-col> -->
<!-- <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
:columns="columns"
></right-toolbar> -->
</el-row>
<el-table
v-loading="loading"
:data="userList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="ID" align="center" key="id" prop="id" />
<el-table-column
label="商户名称"
align="center"
key="name"
prop="name"
:show-overflow-tooltip="true"
/>
<el-table-column
label="创建人"
align="center"
key="createBy"
prop="createBy"
:show-overflow-tooltip="true"
/>
<el-table-column
label="商户手机"
align="center"
key="phone"
prop="phone"
width="120"
/>
<el-table-column
label="商户地址"
align="center"
key="address"
prop="address"
:show-overflow-tooltip="true"
/>
<el-table-column
label="城市"
align="center"
key="cityName"
prop="cityName"
width="120"
/>
<el-table-column
label="营业执照"
align="center"
key="businessLicense"
prop="businessLicense"
width="170"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.businessLicense"
v-model="row.businessLicense"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<el-table-column
label="是否缴纳保证金"
align="center"
key="isCashDeposit"
prop="isCashDeposit"
>
<template slot-scope="{ row }">
<span v-if="row.isCashDeposit == 0"></span>
<span v-if="row.isCashDeposit == 1"></span>
</template>
</el-table-column>
<el-table-column
label="保证金金额"
align="center"
key="cashDeposit"
prop="cashDeposit"
/>
<el-table-column
label="总收益"
align="center"
key="totalRevenue"
prop="totalRevenue"
/>
<el-table-column
label="当前余额"
align="center"
key="balance"
prop="balance"
/>
<el-table-column label="状态" align="center" key="status">
<template slot-scope="{ row }">
<!-- <el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
></el-switch> -->
<el-select
v-model="row.status"
placeholder="请选择状态"
@change="changeStatus($event, row)"
>
<el-option
v-for="item in [
{
label: '待审核',
value: 0,
},
{
label: '正常',
value: 1,
},
{
label: '禁用',
value: 2,
},
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="注册时间"
align="center"
prop="createTime"
width="160"
/>
<!-- <el-table-column
label="更新时间"
align="center"
prop="createTime"
width="160"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
<!-- <el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']"
>删除</el-button
>
<el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:resetPwd', 'system:user:edit']"
>
<el-button size="mini" type="text" icon="el-icon-d-arrow-right"
>更多</el-button
>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
command="handleResetPwd"
icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']"
>重置密码</el-dropdown-item
>
<el-dropdown-item
command="handleAuthRole"
icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']"
>分配角色</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24">
<el-form-item label="用户名" prop="nickName">
<el-input
v-model="form.nickName"
placeholder="请输入用户昵称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="名称" prop="userName">
<el-input
v-model="form.userName"
placeholder="请输入名称"
maxlength="30"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect
v-model="form.deptId"
:options="deptOptions"
:show-count="true"
placeholder="请选择归属部门"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="确认密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入确认密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<template v-if="title === '修改'">
<el-col :span="24">
<el-form-item label="创建时间" prop="">
<el-input disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="更新时间" prop="">
<el-input disabled />
</el-form-item>
</el-col>
</template>
<!-- <el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="form.phonenumber"
placeholder="请输入手机号码"
maxlength="11"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请输入邮箱"
maxlength="50"
/>
</el-form-item>
</el-col> -->
</el-row>
<!-- <el-row>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户名称"
prop="userName"
>
<el-input
v-model="form.userName"
placeholder="请输入用户名称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户密码"
prop="password"
>
<el-input
v-model="form.password"
placeholder="请输入用户密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位">
<el-select
v-model="form.postIds"
multiple
placeholder="请选择岗位"
>
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-col>
</el-row> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listUser,
getUser,
delUser,
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
deptTreeSelect,
} from "@/api/user/merchant/index.js";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "UserMerchant",
// dicts: ["sys_normal_disable", "sys_user_sex"],
components: { Treeselect },
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 用户表格数据
userList: null,
// 弹出层标题
title: "",
// 部门树选项
deptOptions: undefined,
// 是否显示弹出层
open: false,
// 部门名称
deptName: undefined,
// 默认密码
initPassword: undefined,
// 日期范围
dateRange: [],
// 岗位选项
postOptions: [],
// 角色选项
roleOptions: [],
// 表单参数
form: {},
defaultProps: {
children: "children",
label: "label",
},
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: undefined,
// phonenumber: undefined,
// status: undefined,
// deptId: undefined
// userType: "merchant_user",
},
// 列信息
columns: [
{ key: 0, label: `用户编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true },
{ key: 2, label: `用户昵称`, visible: true },
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true },
],
// 表单校验
rules: {
userName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" },
{
min: 2,
max: 20,
message: "用户名称长度必须介于 2 和 20 之间",
trigger: "blur",
},
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" },
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{
min: 5,
max: 20,
message: "用户密码长度必须介于 5 和 20 之间",
trigger: "blur",
},
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"],
},
],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur",
},
],
},
};
},
watch: {
// 根据名称筛选部门树
deptName(val) {
// this.$refs.tree.filter(val);
},
},
created() {
this.getList();
// this.getDeptTree();
// this.getConfigKey("sys.user.initPassword").then((response) => {
// this.initPassword = response.msg;
// });
},
methods: {
changeStatus(e, row) {
console.log("changeStatus", e, row);
updateUser({
...row,
status: e,
}).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
},
/** 查询用户列表 */
getList() {
this.loading = true;
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then((response) => {
this.deptOptions = response.data;
});
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id;
this.handleQuery();
},
// 用户状态修改
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal
.confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
.then(function () {
return changeUserStatus(row.userId, row.status);
})
.then(() => {
this.$modal.msgSuccess(text + "成功");
})
.catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
userId: undefined,
deptId: undefined,
userName: undefined,
nickName: undefined,
password: undefined,
phonenumber: undefined,
email: undefined,
sex: undefined,
status: "0",
remark: undefined,
postIds: [],
roleIds: [],
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
// this.queryParams.deptId = undefined;
// this.$refs.tree.setCurrentKey(null);
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.userId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleResetPwd":
this.handleResetPwd(row);
break;
case "handleAuthRole":
this.handleAuthRole(row);
break;
default:
break;
}
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
getUser().then((response) => {
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.open = true;
// this.title = "添加用户";
this.title = "新增";
this.form.password = this.initPassword;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const userId = row.userId || this.ids;
getUser(userId).then((response) => {
this.form = response.data.user;
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.$set(this.form, "postIds", response.data.postIds);
this.$set(this.form, "roleIds", response.data.roleIds);
this.open = true;
// this.title = "修改用户";
this.title = "修改";
this.form.password = "";
});
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
})
.then(({ value }) => {
resetUserPwd(row.userId, value).then((response) => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
})
.catch(() => {});
},
/** 分配角色操作 */
handleAuthRole: function (row) {
const userId = row.userId;
this.$router.push("/system/user-auth/role/" + userId);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.userId != undefined) {
updateUser(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addUser(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const userIds = row.userId || this.ids;
this.$modal
.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
.then(function () {
return delUser(userIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/user/export",
{
...this.queryParams,
},
`user_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "用户导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
},
};
</script>
<template>
<div class="app-container">
<el-row :gutter="20">
<!--部门数据-->
<!-- <el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div>
<div class="head-container">
<el-tree
:data="deptOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
node-key="id"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
</div>
</el-col> -->
<!--用户数据-->
<el-col :span="24" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>新增</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:user:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['system:user:import']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:user:export']"
>导出</el-button>
</el-col> -->
<!-- <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
:columns="columns"
></right-toolbar> -->
</el-row>
<el-table
v-loading="loading"
:data="userList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column
label="ID"
align="center"
key="userId"
prop="userId"
/>
<el-table-column
label="姓名"
align="center"
key="userName"
prop="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="头像"
align="center"
key="avatar"
prop="avatar"
>
<template slot-scope="{ row }">
<imageUpload
v-if="row.avatar"
v-model="row.avatar"
:limit="1"
:isShowTip="false"
:disabled="true"
></imageUpload>
</template>
</el-table-column>
<!-- TODO 用户类型 无字段 -->
<el-table-column
label="用户类型"
align="center"
key="deptName"
prop=""
:show-overflow-tooltip="true"
/>
<el-table-column
label="手机号码"
align="center"
key="phonenumber"
prop="phonenumber"
width="120"
/>
<el-table-column label="状态" align="center" key="status">
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
</el-table-column>
<!-- <el-table-column
label="创建时间"
align="center"
prop="createTime"
width="160"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
<el-table-column
label="更新时间"
align="center"
prop="createTime"
width="160"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<!-- <el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']"
>删除</el-button
>
<el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:resetPwd', 'system:user:edit']"
>
<el-button size="mini" type="text" icon="el-icon-d-arrow-right"
>更多</el-button
>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
command="handleResetPwd"
icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']"
>重置密码</el-dropdown-item
>
<el-dropdown-item
command="handleAuthRole"
icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']"
>分配角色</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24">
<el-form-item label="用户名" prop="nickName">
<el-input
v-model="form.nickName"
placeholder="请输入用户昵称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="名称" prop="userName">
<el-input
v-model="form.userName"
placeholder="请输入名称"
maxlength="30"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect
v-model="form.deptId"
:options="deptOptions"
:show-count="true"
placeholder="请选择归属部门"
/>
</el-form-item>
</el-col> -->
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="确认密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入确认密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<template v-if="title === '修改'">
<el-col :span="24">
<el-form-item label="创建时间" prop="">
<el-input disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="更新时间" prop="">
<el-input disabled />
</el-form-item>
</el-col>
</template>
<!-- <el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="form.phonenumber"
placeholder="请输入手机号码"
maxlength="11"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请输入邮箱"
maxlength="50"
/>
</el-form-item>
</el-col> -->
</el-row>
<!-- <el-row>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户名称"
prop="userName"
>
<el-input
v-model="form.userName"
placeholder="请输入用户名称"
maxlength="30"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户密码"
prop="password"
>
<el-input
v-model="form.password"
placeholder="请输入用户密码"
type="password"
maxlength="20"
show-password
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位">
<el-select
v-model="form.postIds"
multiple
placeholder="请选择岗位"
>
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-col>
</el-row> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listUser,
getUser,
delUser,
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
deptTreeSelect,
} from "@/api/system/user";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "UserWhole",
dicts: ["sys_normal_disable", "sys_user_sex"],
components: { Treeselect },
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 用户表格数据
userList: null,
// 弹出层标题
title: "",
// 部门树选项
deptOptions: undefined,
// 是否显示弹出层
open: false,
// 部门名称
deptName: undefined,
// 默认密码
initPassword: undefined,
// 日期范围
dateRange: [],
// 岗位选项
postOptions: [],
// 角色选项
roleOptions: [],
// 表单参数
form: {},
defaultProps: {
children: "children",
label: "label",
},
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
// phonenumber: undefined,
// status: undefined,
// deptId: undefined
userType: "",
},
// 列信息
columns: [
{ key: 0, label: `用户编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true },
{ key: 2, label: `用户昵称`, visible: true },
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true },
],
// 表单校验
rules: {
userName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" },
{
min: 2,
max: 20,
message: "用户名称长度必须介于 2 和 20 之间",
trigger: "blur",
},
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" },
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{
min: 5,
max: 20,
message: "用户密码长度必须介于 5 和 20 之间",
trigger: "blur",
},
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"],
},
],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur",
},
],
},
};
},
watch: {
// 根据名称筛选部门树
deptName(val) {
// this.$refs.tree.filter(val);
},
},
created() {
this.getList();
// this.getDeptTree();
// this.getConfigKey("sys.user.initPassword").then((response) => {
// this.initPassword = response.msg;
// });
},
methods: {
/** 查询用户列表 */
getList() {
this.loading = true;
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then((response) => {
this.deptOptions = response.data;
});
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id;
this.handleQuery();
},
// 用户状态修改
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal
.confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
.then(function () {
return changeUserStatus(row.userId, row.status);
})
.then(() => {
this.$modal.msgSuccess(text + "成功");
})
.catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
userId: undefined,
deptId: undefined,
userName: undefined,
nickName: undefined,
password: undefined,
phonenumber: undefined,
email: undefined,
sex: undefined,
status: "0",
remark: undefined,
postIds: [],
roleIds: [],
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
// this.queryParams.deptId = undefined;
// this.$refs.tree.setCurrentKey(null);
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.userId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleResetPwd":
this.handleResetPwd(row);
break;
case "handleAuthRole":
this.handleAuthRole(row);
break;
default:
break;
}
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
getUser().then((response) => {
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.open = true;
// this.title = "添加用户";
this.title = "新增";
this.form.password = this.initPassword;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const userId = row.userId || this.ids;
getUser(userId).then((response) => {
this.form = response.data.user;
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.$set(this.form, "postIds", response.data.postIds);
this.$set(this.form, "roleIds", response.data.roleIds);
this.open = true;
// this.title = "修改用户";
this.title = "修改";
this.form.password = "";
});
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
})
.then(({ value }) => {
resetUserPwd(row.userId, value).then((response) => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
})
.catch(() => {});
},
/** 分配角色操作 */
handleAuthRole: function (row) {
const userId = row.userId;
this.$router.push("/system/user-auth/role/" + userId);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.userId != undefined) {
updateUser(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addUser(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const userIds = row.userId || this.ids;
this.$modal
.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
.then(function () {
return delUser(userIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/user/export",
{
...this.queryParams,
},
`user_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "用户导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
},
};
</script>
......@@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || 'RuoYi-Vue-Plus后台管理系统' // 网页标题
const name = process.env.VUE_APP_TITLE || '闪陪科技' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口
......@@ -35,8 +35,11 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:8080`,
target: `http://http://192.168.0.169:8089`,
// target: `http://localhost:8089`,
target: `https://peizheng.shanpeikj.com/api`,
// target: `http://192.168.0.169:8089`,
// target: `http://192.168.0.137:8089`,
// target: `http://192.168.0.170:8089`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment