订单完善以及退款相关
This commit is contained in:
parent
be6c682e37
commit
a724a1acad
|
@ -42,3 +42,12 @@ export function delLightingNum(id) {
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 赠送爆用户灯次数
|
||||||
|
export function giftLightingNum(data) {
|
||||||
|
return request({
|
||||||
|
url: '/bst/lightingNum/giftLightingNum',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -110,6 +110,12 @@ export const constantRoutes = [
|
||||||
name: 'DeviceView',
|
name: 'DeviceView',
|
||||||
meta: { title: '设备详情' }
|
meta: { title: '设备详情' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'store/:storeId?',
|
||||||
|
component: () => import('@/views/bst/store/storeDetail.vue'),
|
||||||
|
name: 'StoreView',
|
||||||
|
meta: { title: '店铺详情详情' }
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -196,19 +196,8 @@
|
||||||
|
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<el-descriptions title="归属信息" :column="1">
|
<el-descriptions title="归属信息" :column="1">
|
||||||
<template #extra>
|
|
||||||
<!-- <el-row type="flex">-->
|
|
||||||
<!-- <bind-agent-button v-else :device-id="deviceData.deviceId" @success="getDevice"-->
|
|
||||||
<!-- style="margin-right: 0.5em"/>-->
|
|
||||||
<!-- <el-button size="small" plain icon="el-icon-link" type="danger" @click="handleUnbind"-->
|
|
||||||
<!-- v-if="deviceData.userId != null">解绑商户-->
|
|
||||||
<!-- </el-button>-->
|
|
||||||
<!-- <bind-mch-button v-else :device-id="deviceData.deviceId" @success="getDevice"-->
|
|
||||||
<!-- style="margin-left: 0.5em"/>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
</template>
|
|
||||||
<el-descriptions-item label="所属商户">
|
<el-descriptions-item label="所属商户">
|
||||||
<user-link :name="deviceData.userName" :id="deviceData.userId"/>
|
<user-link :text="deviceData.userName" :id="deviceData.userId"/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="店铺名称">
|
<el-descriptions-item label="店铺名称">
|
||||||
<store-link :name="deviceData.storeName" :id="deviceData.storeId"/>
|
<store-link :name="deviceData.storeName" :id="deviceData.storeId"/>
|
||||||
|
@ -237,6 +226,7 @@ import {refreshIot} from "@/api/bst/deviceIot";
|
||||||
import {getDevice} from "@/api/bst/device";
|
import {getDevice} from "@/api/bst/device";
|
||||||
import {switchDevice} from "@/api/bst/deviceIot";
|
import {switchDevice} from "@/api/bst/deviceIot";
|
||||||
import UserLink from "@/views/system/user/UserLink.vue";
|
import UserLink from "@/views/system/user/UserLink.vue";
|
||||||
|
import StoreLink from "@/views/bst/store/StoreLink.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DeviceView',
|
name: 'DeviceView',
|
||||||
|
@ -249,6 +239,7 @@ export default {
|
||||||
'model_type',
|
'model_type',
|
||||||
],
|
],
|
||||||
components: {
|
components: {
|
||||||
|
StoreLink,
|
||||||
UserLink,
|
UserLink,
|
||||||
DotStatus,
|
DotStatus,
|
||||||
LineField,
|
LineField,
|
||||||
|
@ -410,22 +401,6 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleUnbindAgent() {
|
|
||||||
this.$confirm('是否强制解绑该代理商?', '警告', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
}).then(() => {
|
|
||||||
this.loading = true;
|
|
||||||
unbindAgent(this.deviceData.deviceId).then(res => {
|
|
||||||
if (res.code === 200) {
|
|
||||||
this.$message.success("操作成功");
|
|
||||||
}
|
|
||||||
}).finally(() => {
|
|
||||||
this.getDevice();
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleSwitch(open) {
|
handleSwitch(open) {
|
||||||
this.$confirm(`是否确认强制${open ? '开启' : '关闭'}设备?`, '警告', {
|
this.$confirm(`是否确认强制${open ? '开启' : '关闭'}设备?`, '警告', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
|
|
|
@ -112,9 +112,6 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="型号" align="center" prop="modelName" />
|
<el-table-column label="型号" align="center" prop="modelName" />
|
||||||
<!-- <el-table-column label="图片" align="center" prop="customPicture" >-->
|
|
||||||
<!-- <image-preview slot-scope="d" :src="d.row.customPicture" :width="50" :height="50"/>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="MAC-1" align="center" prop="mac" />
|
<el-table-column label="MAC-1" align="center" prop="mac" />
|
||||||
<el-table-column label="MAC-2" align="center" prop="mac2" />
|
<el-table-column label="MAC-2" align="center" prop="mac2" />
|
||||||
<el-table-column label="在线状态" align="center" prop="onlineStatus">
|
<el-table-column label="在线状态" align="center" prop="onlineStatus">
|
||||||
|
@ -141,7 +138,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@click="handleSee(scope.row)"
|
@click="handleSee(scope.row)"
|
||||||
v-hasPermi="['system:device:detail']"
|
v-has-permi="['bst:device:detail']"
|
||||||
>详情</el-button>
|
>详情</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
|
@ -229,6 +226,12 @@ export default {
|
||||||
name: "Device",
|
name: "Device",
|
||||||
mixins: [$showColumns],
|
mixins: [$showColumns],
|
||||||
dicts: ['device_status', 'device_online_status', 'device_power_status'],
|
dicts: ['device_status', 'device_online_status', 'device_power_status'],
|
||||||
|
props: {
|
||||||
|
query: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
components: {DeviceSn, FormCol},
|
components: {DeviceSn, FormCol},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -297,6 +300,7 @@ export default {
|
||||||
wxs: null,
|
wxs: null,
|
||||||
lastRecoverTime: null
|
lastRecoverTime: null
|
||||||
},
|
},
|
||||||
|
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
|
@ -320,6 +324,10 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.queryParams = {
|
||||||
|
...this.queryParams,
|
||||||
|
...this.query
|
||||||
|
}
|
||||||
this.getList();
|
this.getList();
|
||||||
this.getModelList();
|
this.getModelList();
|
||||||
},
|
},
|
||||||
|
|
|
@ -64,12 +64,12 @@
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-present"
|
||||||
@click="handleUpdate(scope.row)"
|
size="mini"
|
||||||
v-has-permi="['bst:lightingNum:edit']"
|
@click="handleOpenGift(scope.row)"
|
||||||
>修改</el-button>
|
v-has-permi="['bst:lightingNum:give']"
|
||||||
|
>赠送次数</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -89,28 +89,35 @@
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改爆灯次数列表对话框 -->
|
<!-- 赠送爆灯次数列表对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
|
<el-dialog title="赠送爆灯次数" :visible.sync="openGift" width="500px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="formGift" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-row>
|
<!-- <el-form-item label="用户手机号" prop="phone">-->
|
||||||
<form-col :span="span" label="用户名" prop="userName">
|
<!-- <el-input v-model="form.phone" placeholder="请输入用户手机号"/>-->
|
||||||
<el-input v-model="form.userId" placeholder="请输入用户名" />
|
<!-- </el-form-item>-->
|
||||||
</form-col>
|
<el-form-item label="赠送次数" prop="number">
|
||||||
<form-col :span="span" label="店铺id" prop="storeName">
|
<el-input-number
|
||||||
<el-input v-model="form.storeId" placeholder="请输入店铺名" />
|
v-model="form.number"
|
||||||
</form-col>
|
:min="1"
|
||||||
</el-row>
|
controls-position="right"
|
||||||
|
style="width: 100%"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<el-button @click="openGift = false">取 消</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button type="primary" @click="submitGift">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listLightingNum, getLightingNum, delLightingNum, addLightingNum, updateLightingNum } from "@/api/bst/lightingNum";
|
import {
|
||||||
|
listLightingNum,
|
||||||
|
delLightingNum,
|
||||||
|
giftLightingNum
|
||||||
|
} from "@/api/bst/lightingNum";
|
||||||
import { $showColumns } from '@/utils/mixins';
|
import { $showColumns } from '@/utils/mixins';
|
||||||
import FormCol from "@/components/FormCol/index.vue";
|
import FormCol from "@/components/FormCol/index.vue";
|
||||||
|
|
||||||
|
@ -126,6 +133,7 @@ export default {
|
||||||
components: {FormCol},
|
components: {FormCol},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
||||||
span: 24,
|
span: 24,
|
||||||
// 字段列表
|
// 字段列表
|
||||||
columns: [
|
columns: [
|
||||||
|
@ -138,6 +146,8 @@ export default {
|
||||||
orderSorts: ['ascending', 'descending', null],
|
orderSorts: ['ascending', 'descending', null],
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: true,
|
loading: true,
|
||||||
|
storeOptions: [], // 父区域树数据
|
||||||
|
parentOptions: [], // 父区域树数据
|
||||||
// 选中数组
|
// 选中数组
|
||||||
ids: [],
|
ids: [],
|
||||||
// 非单个禁用
|
// 非单个禁用
|
||||||
|
@ -165,27 +175,24 @@ export default {
|
||||||
storeId: null,
|
storeId: null,
|
||||||
number: null,
|
number: null,
|
||||||
},
|
},
|
||||||
|
openGift: false,
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {
|
||||||
|
userId: null,
|
||||||
|
storeId: null,
|
||||||
|
number : 1
|
||||||
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
userId: [
|
|
||||||
{ required: true, message: "用户id不能为空", trigger: "blur" }
|
|
||||||
],
|
|
||||||
storeId: [
|
|
||||||
{ required: true, message: "店铺id不能为空", trigger: "blur" }
|
|
||||||
],
|
|
||||||
number: [
|
number: [
|
||||||
{ required: true, message: "爆灯次数不能为空", trigger: "blur" }
|
{ required: true, message: "爆灯次数不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
createTime: [
|
|
||||||
{ required: true, message: "创建时间不能为空", trigger: "blur" }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
this.getStoreList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 当排序按钮被点击时触发 **/
|
/** 当排序按钮被点击时触发 **/
|
||||||
|
@ -240,42 +247,33 @@ export default {
|
||||||
this.single = selection.length!==1
|
this.single = selection.length!==1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
|
||||||
handleAdd() {
|
handleOpenGift(row) {
|
||||||
this.reset();
|
this.openGift = true
|
||||||
this.open = true;
|
this.form = {
|
||||||
this.title = "添加爆灯次数列表";
|
userId: row.userId,
|
||||||
},
|
storeId: row.storeId,
|
||||||
/** 修改按钮操作 */
|
number: 1
|
||||||
handleUpdate(row) {
|
|
||||||
this.reset();
|
|
||||||
const id = row.id || this.ids
|
|
||||||
getLightingNum(id).then(response => {
|
|
||||||
this.form = response.data;
|
|
||||||
this.open = true;
|
|
||||||
this.title = "修改爆灯次数列表";
|
|
||||||
});
|
|
||||||
},
|
|
||||||
/** 提交按钮 */
|
|
||||||
submitForm() {
|
|
||||||
this.$refs["form"].validate(valid => {
|
|
||||||
if (valid) {
|
|
||||||
if (this.form.id != null) {
|
|
||||||
updateLightingNum(this.form).then(response => {
|
|
||||||
this.$modal.msgSuccess("修改成功");
|
|
||||||
this.open = false;
|
|
||||||
this.getList();
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
addLightingNum(this.form).then(response => {
|
|
||||||
this.$modal.msgSuccess("新增成功");
|
|
||||||
this.open = false;
|
|
||||||
this.getList();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
submitGift() {
|
||||||
|
this.$refs.formGift.validate(valid => {
|
||||||
|
if (valid) {giftLightingNum
|
||||||
|
giftLightingNum({
|
||||||
|
userId: this.form.userId,
|
||||||
|
storeId: this.form.storeId,
|
||||||
|
number: this.form.number
|
||||||
|
}).then(() => {
|
||||||
|
this.$modal.msgSuccess("赠送成功")
|
||||||
|
this.openGift = false
|
||||||
|
this.getList() // 刷新列表
|
||||||
|
}).catch(error => {
|
||||||
|
this.$modal.msgError(error.msg || "操作失败")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const ids = row.id || this.ids;
|
const ids = row.id || this.ids;
|
||||||
|
|
|
@ -180,7 +180,7 @@ export default {
|
||||||
components: {DeptSelect, FormCol},
|
components: {DeptSelect, FormCol},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
storeOptions: [], // 父区域树数据
|
storeOptions: [], // 店铺域树数据
|
||||||
parentOptions: [], // 父区域树数据
|
parentOptions: [], // 父区域树数据
|
||||||
cascaderProps: {
|
cascaderProps: {
|
||||||
value: 'partId',
|
value: 'partId',
|
||||||
|
|
|
@ -74,6 +74,25 @@
|
||||||
<template v-else-if="column.key === 'status'">
|
<template v-else-if="column.key === 'status'">
|
||||||
<dict-tag :options="dict.type.refund_status" :value="d.row[column.key]" />
|
<dict-tag :options="dict.type.refund_status" :value="d.row[column.key]" />
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="column.key === 'amount'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<div style="line-height: 24px">
|
||||||
|
<div style="margin-bottom: 8px">
|
||||||
|
<span style="font-weight: 500">退款金额:</span>
|
||||||
|
<span style="font-weight: bold">
|
||||||
|
{{ d.row.amount | fix2 | dv }} 元
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span style="font-weight: 500">爆灯次数:</span>
|
||||||
|
<span style="font-weight: bold">
|
||||||
|
{{ d.row.number | dv }} 次
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
|
@ -117,7 +136,7 @@ export default {
|
||||||
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
|
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
|
||||||
{key: 'no', visible: true, label: '退款编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'no', visible: true, label: '退款编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'payNo', visible: true, label: '支付单号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'payNo', visible: true, label: '支付单号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'amount', visible: true, label: '退款金额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'amount', visible: true, label: '退款', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'reason', visible: true, label: '原因', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'reason', visible: true, label: '原因', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'userId', visible: false, label: '操作人ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'userId', visible: false, label: '操作人ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
|
|
31
src/views/bst/store/StoreLink.vue
Normal file
31
src/views/bst/store/StoreLink.vue
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<template>
|
||||||
|
<el-link type="primary" @click="handleClick" :disabled="id == null">{{name | defaultValue}}</el-link>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { UserType } from '@/utils/constants'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'StoreLink',
|
||||||
|
props: {
|
||||||
|
id: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleClick() {
|
||||||
|
this.$emit('click');
|
||||||
|
if (this.$store.getters.userType === UserType.APP) {
|
||||||
|
this.$router.push(`/business/store/${this.id}`)
|
||||||
|
} else {
|
||||||
|
this.$router.push({path: '/mch/storeDetail', query: {storeId: this.id}})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -25,38 +25,6 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="营业开始时间" prop="startTime">-->
|
|
||||||
<!-- <el-date-picker clearable-->
|
|
||||||
<!-- v-model="queryParams.startTime"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- value-format="yyyy-MM-dd"-->
|
|
||||||
<!-- placeholder="请选择营业开始时间">-->
|
|
||||||
<!-- </el-date-picker>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="营业结束时间" prop="endTime">-->
|
|
||||||
<!-- <el-date-picker clearable-->
|
|
||||||
<!-- v-model="queryParams.endTime"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- value-format="yyyy-MM-dd"-->
|
|
||||||
<!-- placeholder="请选择营业结束时间">-->
|
|
||||||
<!-- </el-date-picker>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="经度" prop="longitude">-->
|
|
||||||
<!-- <el-input-->
|
|
||||||
<!-- v-model="queryParams.longitude"-->
|
|
||||||
<!-- placeholder="请输入经度"-->
|
|
||||||
<!-- clearable-->
|
|
||||||
<!-- @keyup.enter.native="handleQuery"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="纬度" prop="latitude">-->
|
|
||||||
<!-- <el-input-->
|
|
||||||
<!-- v-model="queryParams.latitude"-->
|
|
||||||
<!-- placeholder="请输入纬度"-->
|
|
||||||
<!-- clearable-->
|
|
||||||
<!-- @keyup.enter.native="handleQuery"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<el-form-item label="地址" prop="address">
|
<el-form-item label="地址" prop="address">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.address"
|
v-model="queryParams.address"
|
||||||
|
@ -122,10 +90,20 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="商户" align="center" prop="userName"/>
|
<el-table-column label="商户" align="center" prop="userName"/>
|
||||||
<el-table-column label="联系电话" align="center" prop="phone" />
|
<el-table-column label="联系电话" align="center" prop="phone" />
|
||||||
<el-table-column label="营业开始时间" align="center" prop="startTime" />
|
<el-table-column label="营业时间" align="center">
|
||||||
<el-table-column label="营业结束时间" align="center" prop="endTime" />
|
<template #default="scope">
|
||||||
|
{{ scope.row.startTime }} —— {{ scope.row.endTime }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-view"
|
||||||
|
@click="handleSee(scope.row)"
|
||||||
|
v-has-permi="['bst:device:detail']"
|
||||||
|
>详情</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -258,14 +236,10 @@ export default {
|
||||||
{key: 'storeName', visible: true, label: '店铺名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'storeName', visible: true, label: '店铺名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'address', visible: true, label: '详细地址', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'address', visible: true, label: '详细地址', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'picture', visible: true, label: '门店照片', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'picture', visible: true, label: '门店照片', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
//{key: 'userId', visible: true, label: '用户名', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
|
||||||
{key: 'userName', visible: true, label: '商户', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'userName', visible: true, label: '商户', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'phone', visible: true, label: '联系电话', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'phone', visible: true, label: '联系电话', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'startTime', visible: true, label: '营业开始时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
{key: 'startTime', visible: true, label: '营业开始时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||||
{key: 'endTime', visible: true, label: '营业结束时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
{key: 'endTime', visible: true, label: '营业结束时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||||
// {key: 'longitude', visible: true, label: '经度', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
|
||||||
//{key: 'latitude', visible: true, label: '纬度', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
|
||||||
|
|
||||||
],
|
],
|
||||||
// 排序方式
|
// 排序方式
|
||||||
orderSorts: ['ascending', 'descending', null],
|
orderSorts: ['ascending', 'descending', null],
|
||||||
|
@ -338,6 +312,10 @@ export default {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 查看按钮操作
|
||||||
|
handleSee(row) {
|
||||||
|
this.$router.push({path: `/view/store/${row.storeId}`})
|
||||||
|
},
|
||||||
onSubmitAddress(addr) {
|
onSubmitAddress(addr) {
|
||||||
this.form.address = addr.name;
|
this.form.address = addr.name;
|
||||||
this.form.latitude = addr.lat;
|
this.form.latitude = addr.lat;
|
||||||
|
|
160
src/views/bst/store/storeDetail.vue
Normal file
160
src/views/bst/store/storeDetail.vue
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container" v-loading="loading">
|
||||||
|
<el-card class="box-card" header="店铺详情">
|
||||||
|
<el-row type="flex">
|
||||||
|
<image-preview :src="store.picture" :width="80" :height="80"/>
|
||||||
|
<div style="flex: 1;margin-left: 2em">
|
||||||
|
<el-descriptions :column="3">
|
||||||
|
<el-descriptions-item label="店铺名称">{{store.storeName | defaultValue}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="创建时间">{{store.createTime | defaultValue}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="营业时间">
|
||||||
|
{{store.startTime | defaultValue}} 至 {{store.endTime | defaultValue}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系方式">{{store.userName | defaultValue}}({{store.phone | defaultValue}})</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="店铺地址" :span="2">
|
||||||
|
{{store.province}}{{store.city}}{{store.county}}{{store.address}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-row :gutter="16">
|
||||||
|
<el-col :span="18">
|
||||||
|
|
||||||
|
|
||||||
|
<el-card class="box-card" >
|
||||||
|
<el-row type="flex">
|
||||||
|
<el-statistic
|
||||||
|
group-separator=","
|
||||||
|
:precision="2"
|
||||||
|
:value="store.todayIncome"
|
||||||
|
suffix="¥"
|
||||||
|
title="今日收入"
|
||||||
|
></el-statistic>
|
||||||
|
<el-statistic
|
||||||
|
group-separator=","
|
||||||
|
:precision="2"
|
||||||
|
:value="store.monthIncome"
|
||||||
|
suffix="¥"
|
||||||
|
title="本月收入"
|
||||||
|
></el-statistic>
|
||||||
|
<el-statistic
|
||||||
|
group-separator=","
|
||||||
|
:precision="2"
|
||||||
|
:value="store.lastMonthIncome"
|
||||||
|
suffix="¥"
|
||||||
|
title="上月收入"
|
||||||
|
></el-statistic>
|
||||||
|
<el-statistic
|
||||||
|
group-separator=","
|
||||||
|
:value="store.deviceCount"
|
||||||
|
suffix="台"
|
||||||
|
title="设备总数"
|
||||||
|
></el-statistic>
|
||||||
|
<el-statistic
|
||||||
|
group-separator=","
|
||||||
|
:value="store.onlineCount"
|
||||||
|
suffix="台"
|
||||||
|
title="在线设备"
|
||||||
|
></el-statistic>
|
||||||
|
<el-statistic
|
||||||
|
group-separator=","
|
||||||
|
:value="store.offlineCount"
|
||||||
|
suffix="台"
|
||||||
|
title="离线设备"
|
||||||
|
></el-statistic>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
<el-card class="box-card">
|
||||||
|
<my-store-recharge-report :store-id="store.storeId"/>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-card class="box-card">
|
||||||
|
<place-search-map
|
||||||
|
v-if="showMap"
|
||||||
|
height="534px"
|
||||||
|
:init-lng="store.lng"
|
||||||
|
:init-lat="store.lat"
|
||||||
|
enable-geo
|
||||||
|
marker-type="store"
|
||||||
|
/>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-card class="box-card">
|
||||||
|
<el-tabs>
|
||||||
|
<el-tab-pane label="设备列表" :lazy="true">
|
||||||
|
<device v-if="store.storeId != null" :query="{storeId: store.storeId}"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<!-- <el-tab-pane label="员工列表" :lazy="true">-->
|
||||||
|
<!-- <my-store-staff :query="{storeId: store.storeId}" :view="views.store"/>-->
|
||||||
|
<!-- </el-tab-pane>-->
|
||||||
|
<el-tab-pane label="订单列表" :lazy="true">
|
||||||
|
<order :query="{storeId: store.storeId}" :view="views.store"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<!-- <el-tab-pane label="店铺变更记录" :lazy="true">-->
|
||||||
|
<!-- <mch-store-apply :query="{storeId: store.storeId}" :view="views.store"/>-->
|
||||||
|
<!-- </el-tab-pane>-->
|
||||||
|
</el-tabs>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import PlaceSearchMap from '@/components/Map/PlaceSearch/PlaceSearchMap.vue'
|
||||||
|
import {getStore } from "@/api/bst/store";
|
||||||
|
import { views } from '@/utils/constants'
|
||||||
|
import Device from "@/views/bst/device/index.vue";
|
||||||
|
import Order from "@/views/bst/order/index.vue";
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'StoreView',
|
||||||
|
computed: {
|
||||||
|
views() {
|
||||||
|
return views
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {Order, Device, PlaceSearchMap },
|
||||||
|
dicts: ['bst_store_type', 'bst_status'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
store: {},
|
||||||
|
showMap: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getDetail();
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
clearInterval(this.timer);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetail() {
|
||||||
|
this.loading = true;
|
||||||
|
getStore(this.$route.params.storeId).then(res => {
|
||||||
|
this.store = res.data;
|
||||||
|
this.showMap = true;
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.remark-text {
|
||||||
|
color: #ccc;
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
.app-container .box-card:nth-child(n + 1) {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<base-link :id="id" :text="text" :size="size" @click="handleClick" :permissions="['system:user:query']"/>
|
<base-link :id="id" :text="text" :size="size" @click="handleClick" :permissions="['bst:user:query']"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user