dev2 #1

Open
panjunjie wants to merge 174 commits from dev2 into main
19 changed files with 279 additions and 231 deletions
Showing only changes of commit 47598792d9 - Show all commits

View File

@ -5,5 +5,5 @@
window.ver = "2.0.278";
window.SYS = {CONFIG:{}, URL:{}};</script><script>window._AMapSecurityConfig = {
securityJsCode:"07788e7ebd7e913985722bfc5986999f"
}</script><script src="https://mall.gpxscs.cn/admin/config.js?v=2.0.278"></script><script src="https://mall.gpxscs.cn/admin/im/libs3.6.0.min.js?v=2.0.278"></script><script src="https://mall.gpxscs.cn/admin/im/im.js?v=2.0.278"></script><link href="static/css/chunk-0cde5704.e0277cf5.css" rel="prefetch"><link href="static/css/chunk-19648027.83a11e8c.css" rel="prefetch"><link href="static/css/vab-extra.f3d407d7.css" rel="prefetch"><link href="static/js/chunk-0cde5704.fbb6773a.js" rel="prefetch"><link href="static/js/chunk-19648027.6233a553.js" rel="prefetch"><link href="static/js/vab-extra.29abc81b.js" rel="prefetch"><link href="static/css/app.1f390f7c.css" rel="preload" as="style"><link href="static/css/element-ui.0e3a750b.css" rel="preload" as="style"><link href="static/js/app.45b6bf3d.js" rel="preload" as="script"><link href="static/js/element-ui.4e8e0db4.js" rel="preload" as="script"><link href="static/js/vue.11eaebc3.js" rel="preload" as="script"><link href="static/css/element-ui.0e3a750b.css" rel="stylesheet"><link href="static/css/app.1f390f7c.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="img/icons/favicon-16x16.png"><link rel="manifest" href="manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="apple-mobile-web-app-title" content="xiaofa-admin"><link rel="apple-touch-icon" href="img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#ffffff"></head><body><noscript></noscript><div id="app"><div class="first-loading-wrp"><div class="loading-wrp"><span class="dot dot-spin"><i></i> <i></i> <i></i> <i></i></span></div><h1>小发同城</h1></div></div><script>if (window.location.hostname !== 'localhost') {
}</script><script src="static/js/element-ui.4e8e0db4.js"></script><script src="static/js/vue.11eaebc3.js"></script><script src="static/js/app.45b6bf3d.js"></script></body></html>
}</script><script src="https://mall.gpxscs.cn/admin/config.js?v=2.0.278"></script><script src="https://mall.gpxscs.cn/admin/im/libs3.6.0.min.js?v=2.0.278"></script><script src="https://mall.gpxscs.cn/admin/im/im.js?v=2.0.278"></script><link href="static/css/chunk-19648027.83a11e8c.css" rel="prefetch"><link href="static/css/chunk-250d32fa.ad6e6718.css" rel="prefetch"><link href="static/css/vab-extra.f3d407d7.css" rel="prefetch"><link href="static/js/chunk-19648027.6233a553.js" rel="prefetch"><link href="static/js/chunk-250d32fa.ee34e965.js" rel="prefetch"><link href="static/js/vab-extra.29abc81b.js" rel="prefetch"><link href="static/css/app.1f390f7c.css" rel="preload" as="style"><link href="static/css/element-ui.0e3a750b.css" rel="preload" as="style"><link href="static/js/app.7b6be8c5.js" rel="preload" as="script"><link href="static/js/element-ui.4e8e0db4.js" rel="preload" as="script"><link href="static/js/vue.11eaebc3.js" rel="preload" as="script"><link href="static/css/element-ui.0e3a750b.css" rel="stylesheet"><link href="static/css/app.1f390f7c.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="img/icons/favicon-16x16.png"><link rel="manifest" href="manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="apple-mobile-web-app-title" content="xiaofa-admin"><link rel="apple-touch-icon" href="img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#ffffff"></head><body><noscript></noscript><div id="app"><div class="first-loading-wrp"><div class="loading-wrp"><span class="dot dot-spin"><i></i> <i></i> <i></i> <i></i></span></div><h1>小发同城</h1></div></div><script>if (window.location.hostname !== 'localhost') {
}</script><script src="static/js/element-ui.4e8e0db4.js"></script><script src="static/js/vue.11eaebc3.js"></script><script src="static/js/app.7b6be8c5.js"></script></body></html>

View File

@ -2376,7 +2376,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"url": "im/libs3.6.0.min.js"
},
{
"revision": "410f5a7aa6c9a4fb51eb761239fd8e67",
"revision": "cf9154a132f8f4fd10d64989353a912e",
"url": "index.html"
},
{
@ -2392,17 +2392,17 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"url": "robots.txt"
},
{
"revision": "38e73c4109c0fc20e6bb",
"revision": "9093e5e0114d448ce863",
"url": "static/css/app.1f390f7c.css"
},
{
"revision": "be151dd15540843d2d26",
"url": "static/css/chunk-0cde5704.e0277cf5.css"
},
{
"revision": "f5dd29b853f67685e75d",
"url": "static/css/chunk-19648027.83a11e8c.css"
},
{
"revision": "c620221a39684b688176",
"url": "static/css/chunk-250d32fa.ad6e6718.css"
},
{
"revision": "7b9212a0410ce12f6058",
"url": "static/css/element-ui.0e3a750b.css"
@ -2636,17 +2636,17 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"url": "static/img/xiaofa-logo.20439423.png"
},
{
"revision": "38e73c4109c0fc20e6bb",
"url": "static/js/app.45b6bf3d.js"
},
{
"revision": "be151dd15540843d2d26",
"url": "static/js/chunk-0cde5704.fbb6773a.js"
"revision": "9093e5e0114d448ce863",
"url": "static/js/app.7b6be8c5.js"
},
{
"revision": "f5dd29b853f67685e75d",
"url": "static/js/chunk-19648027.6233a553.js"
},
{
"revision": "c620221a39684b688176",
"url": "static/js/chunk-250d32fa.ee34e965.js"
},
{
"revision": "7b9212a0410ce12f6058",
"url": "static/js/element-ui.4e8e0db4.js"

View File

@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
"precache-manifest.c0675c9346646387db72c89398285074.js"
"precache-manifest.5a6aa66371ba042aaeb4213a18385bd8.js"
);
workbox.core.setCacheNameDetails({prefix: "xiaofa-admin"});

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
/*!
* build: xiaofa-admin
* copyright: https://www.lancerdt.com
* time: 2025-7-29 18:33:28
* time: 2025-8-2 15:53:06
*/
/*!
* Quill Editor v1.3.7

View File

@ -1,5 +1,5 @@
/*!
* build: xiaofa-admin
* copyright: https://www.lancerdt.com
* time: 2025-7-29 18:33:28
* time: 2025-8-2 15:53:06
*/@media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}}

View File

@ -1,5 +1,5 @@
/*!
* build: xiaofa-admin
* copyright: https://www.lancerdt.com
* time: 2025-7-29 18:33:28
* time: 2025-8-2 15:53:06
*/[data-v-28093814]:export{menu-color:#fff;menu-color-active:#fff;menu-background:#282c34;column-second-menu-background:#fff}.vab-avatar-list[data-v-28093814] .el-avatar{display:inline-block;margin-left:-15px;cursor:pointer;border:3px solid #fff}.echarts{width:600px;height:400px}[data-v-7f7baab5]:export{menu-color:#fff;menu-color-active:#fff;menu-background:#282c34;column-second-menu-background:#fff}@media only screen and (max-width:767px){[data-v-7f7baab5] .vab-cropper-canvas{display:block;float:none;margin:0 auto}[data-v-7f7baab5] .vab-cropper-preview{display:none}}[data-v-7f7baab5] .el-textarea{margin-top:20px}[data-v-7f7baab5] .el-dialog__footer{height:72px}[data-v-7f7baab5] .el-dialog__footer:before{display:block;clear:both;content:""}[data-v-7f7baab5] .el-dialog__footer>div>div{display:inline}[data-v-7f7baab5] .el-dialog__footer>div>div .el-upload-list{display:none}[data-v-7f7baab5] .el-dialog__footer>div>div .el-upload--picture-card{float:right;width:auto;height:32px;line-height:32px;vertical-align:middle;background-color:transparent;border:0;border-radius:0}[data-v-7f7baab5] .el-dialog__footer>div .el-button{float:right;margin-left:10px}.icon-selector-popper .el-card__body{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:20px;cursor:pointer}.icon-selector-popper .el-card__body i{font-size:28px;color:rgba(0,0,0,.65);text-align:center;vertical-align:middle;pointer-events:none;cursor:pointer}.icon-selector-popper .el-pagination{margin:0}[data-v-3aef4cea]:export{menu-color:#fff;menu-color-active:#fff;menu-background:#282c34;column-second-menu-background:#fff}.upload[data-v-3aef4cea]{height:500px}.upload .upload-content .el-upload__tip[data-v-3aef4cea]{display:block;height:30px;line-height:30px}.upload .upload-content[data-v-3aef4cea] .el-upload--picture-card{width:128px;height:128px;margin:3px 8px 8px 8px;border:2px dashed #c0ccda}.upload .upload-content[data-v-3aef4cea] .el-upload-list--picture{margin-bottom:20px}.upload .upload-content[data-v-3aef4cea] .el-upload-list--picture-card .el-upload-list__item{width:128px;height:128px;margin:3px 8px 8px 8px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -189,11 +189,11 @@ export function updatePrnterStatus(params){
* @param {orderId} DD-20241112-1
* @returns
*/
export function testPrinter(params){
export function testPrinter(printer_id){
return request({
url: URL.shop.store.printer.testPrinter,
method: 'post',
params,
params:printer_id,
})
}

View File

@ -1065,7 +1065,7 @@ let url = {
//商家端-更新打印机状态
updatePrnterStatus: api_url + '/admin/shop/store/printer/status/update',
//商家端-测试打印
testPrinter: api_url + '/admin/shop/store/printer/print/order',
testPrinter: api_url + '/admin/shop/store/printer/tryprint',
},
sameCityTransport: {
getSameCityTransport:

View File

@ -561,9 +561,9 @@
</div>
<div class="footer">
<el-button class="btn" size="medium" @click="handerGoTo">取消</el-button>
<el-button class="btn" size="medium" @click="handerTestPrint" disabled>
<!-- <el-button class="btn" size="medium" @click="handerTestPrint">
测试打印
</el-button>
</el-button> -->
<el-button class="btn" size="medium" type="primary" @click="handerSubmit">
保存
</el-button>
@ -867,7 +867,8 @@ export default {
handerStoreCheckbox(index) {},
handleTepOptions(item, index) {},
async handerTestPrint() {
let res = testPrinter({ orderId: 'DD-20241112-1' })
let res = testPrinter({ printer_id: '24' })
console.log("这是打印机",res);
},
handerGoTo() {
this.$router.push({

View File

@ -36,12 +36,40 @@
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width"
v-if="item.prop !== 'testPrint' && item.prop !== 'operation'"
></el-table-column>
<!-- 单独定义打印机测试列 -->
<el-table-column
align="center"
prop="testPrint"
label="打印机测试"
width="100"
>
<template #default="{ row, $index }" v-if="item.label == '操作'">
<template #default="{ row }">
<el-button
type="text"
size="small"
@click="handleSkipEdit(row, $index)"
@click="handleTestPrinter(row.printer_id)"
>
测试
</el-button>
</template>
</el-table-column>
<!-- 单独定义操作列 -->
<el-table-column
align="center"
prop="operation"
label="操作"
width="200"
>
<template #default="{ row }">
<el-button
type="text"
size="small"
@click="handleSkipEdit(row)"
>
编辑
</el-button>
@ -49,11 +77,12 @@
删除
</el-button>
<el-button type="text" size="small" @click="handerDisabledPrint(row)">
{{ row.status == '停用' ? '启用' : '禁用' }}
{{ row.status === '停用' ? '启用' : '禁用' }}
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
background
:current-page="params.pageNum"
@ -67,193 +96,209 @@
</template>
<script>
import {
getPrinterList,
delectPrinter,
updatePrnterStatus,
} from '@/api/printer/printer'
export default {
name: 'plotterManager',
data() {
return {
layout: 'total, sizes, prev, pager, next, jumper',
total: 0,
printerName: '',
tableConfig: {
height: window.innerHeight - 220 - 150,
},
params: {
keyword: '',
pageNum: 1,
pageSize: 20,
},
tabColumn: [
{
prop: 'printer_name',
label: '打印机名称',
import {
getPrinterList,
delectPrinter,
updatePrnterStatus,
testPrinter
} from '@/api/printer/printer'
export default {
name: 'plotterManager',
data() {
return {
layout: 'total, sizes, prev, pager, next, jumper',
total: 0,
printerName: '',
tableConfig: {
height: window.innerHeight - 220 - 150,
},
{
prop: 'model_name',
label: '设备品牌',
params: {
keyword: '',
pageNum: 1,
pageSize: 20,
},
{
prop: 'printer_sn',
label: '打印机编号',
},
{
prop: 'printer_key',
label: '打印机密钥',
},
{
prop: 'website_url',
label: '官网地址',
},
{
prop: 'region',
label: '打印来源',
},
{
prop: 'paper_with',
label: '纸张大小',
},
{
prop: 'printReceipt',
label: '打印小票',
},
{
prop: 'status',
label: '状态',
},
{
prop: 'operation',
label: '操作',
},
],
tableData: [
{
printer_name: '飞蛾',
model_name: '365云打印S2(编号kdt2)',
region: '收银台',
paper_with: 58,
printReceipt: '',
status: 1,
operation: '操作',
},
],
}
},
created() {
this.getPrinterList()
},
methods: {
async handerDisabledPrint(item) {
let res = await updatePrnterStatus({
printer_id: item.printer_id,
status: item.status == '停用' ? 1 : 0,
})
if (res && res.status == 200) {
this.$message({
type: 'success',
message: item.status == '停用' ? '启动成功' : '停用成功',
})
this.getPrinterList()
} else {
this.$message({
type: 'error',
message: res.msg,
})
// tabColumntestPrintoperation
tabColumn: [
{
prop: 'printer_name',
label: '打印机名称',
},
{
prop: 'model_name',
label: '设备品牌',
},
{
prop: 'printer_sn',
label: '打印机编号',
},
{
prop: 'printer_key',
label: '打印机密钥',
},
{
prop: 'website_url',
label: '官网地址',
},
{
prop: 'region',
label: '打印来源',
},
{
prop: 'paper_with',
label: '纸张大小',
},
{
prop: 'printReceipt',
label: '打印小票',
},
{
prop: 'status',
label: '状态',
},
],
tableData: [
{
printer_id: 1,
printer_name: '飞蛾',
model_name: '365云打印S2(编号kdt2)',
region: '收银台',
paper_with: 58,
printReceipt: '',
status: '启用',
},
],
}
},
handerDelectPrint(item) {
this.$confirm('您确认删除这个打印机吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
let res = await delectPrinter({ printer_id: item.printer_id })
if (res && res.status == 200) {
created() {
this.getPrinterList()
},
methods: {
//
async handleTestPrinter(printer_id) {
let res = await testPrinter({ printer_id: printer_id });
if (res && res.status === 200) {
this.$message({
type: 'success',
message: '删除成功!',
message: '打印机测试成功'
})
await this.getPrinterList()
} else {
this.$message({
type: 'error',
message: res.msg,
message: res.msg || '打印机测试失败'
})
}
},
//
async handerDisabledPrint(item) {
let res = await updatePrnterStatus({
printer_id: item.printer_id,
status: item.status === '停用' ? 1 : 0,
})
.catch(() => {
if (res && res.status === 200) {
this.$message({
type: 'info',
message: '已取消删除',
type: 'success',
message: item.status === '停用' ? '启动成功' : '停用成功',
})
this.getPrinterList()
} else {
this.$message({
type: 'error',
message: res.msg,
})
})
},
async getPrinterList() {
let res = await getPrinterList(this.params)
if (res.status == 200) {
this.total = res.data.total
this.tableData = res.data.items
this.tableData.forEach((item) => {
item.paper_with += 'mm'
if (item.status == 1) {
item.status = '启用'
} else {
item.status = '停用'
}
})
} else {
this.$message({
type: 'error',
message: res.msg || '服务器异常',
})
}
},
handleSkip() {
this.$router.push({ path: '/addCloudPrint' })
},
async handleClear() {
this.printerName = ''
this.params = {
pageNum: 1,
paper_with: 20,
}
await this.getPrinterList()
},
handleSkipEdit(row, index) {
this.$router.push({
path: '/editCloudPrint',
query: { id: row.printer_id },
})
},
handerColor({ row, column, rowIndex, columnIndex }) {
if (row) {
if (row.status == '启用' && columnIndex == 8) {
return 'status-on'
}
if (row.status == '停用' && columnIndex == 8) {
return 'status-off'
},
handerDelectPrint(item) {
this.$confirm('您确认删除这个打印机吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
let res = await delectPrinter({ printer_id: item.printer_id })
if (res && res.status === 200) {
this.$message({
type: 'success',
message: '删除成功!',
})
await this.getPrinterList()
} else {
this.$message({
type: 'error',
message: res.msg,
})
}
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除',
})
})
},
async getPrinterList() {
let res = await getPrinterList(this.params)
if (res.status === 200) {
this.total = res.data.total
this.tableData = res.data.items
this.tableData.forEach((item) => {
item.paper_with += 'mm'
item.status = item.status === 1 ? '启用' : '停用'
})
} else {
this.$message({
type: 'error',
message: res.msg || '服务器异常',
})
}
}
},
handleSkip() {
this.$router.push({ path: '/addCloudPrint' })
},
async handleClear() {
this.printerName = ''
this.params = {
keyword: '',
pageNum: 1,
pageSize: 20,
}
await this.getPrinterList()
},
handleSkipEdit(row) {
this.$router.push({
path: '/editCloudPrint',
query: { id: row.printer_id },
})
},
handerColor({ row, column }) {
if (row && column && column.prop === 'status') {
return row.status === '启用' ? 'status-on' : 'status-off'
}
},
handleSearch() {
this.params.keyword = this.printerName
this.params.pageNum = 1
this.getPrinterList()
},
handleSizeChange(pageSize) {
this.params.pageSize = pageSize
this.getPrinterList()
},
handleCurrentChange(pageNum) {
this.params.pageNum = pageNum
this.getPrinterList()
},
},
handleSearch() {
this.params.keyword = this.printerName
this.getPrinterList()
},
handleSizeChange(pageSize) {
this.params.pageSize = pageSize
this.getPrinterList()
},
handleCurrentChange(pageNum) {
this.params.pageNum = pageNum
this.getPrinterList()
},
},
}
}
</script>
<style lang="scss">
@ -263,34 +308,36 @@ export default {
box-shadow: inset 0 -1px 0 #efefef;
}
.content {
display: flex;
align-items: center;
text-align: center;
margin: 20px 0;
.content {
display: flex;
align-items: center;
margin: 20px 0;
.name {
font-weight: bold;
.name {
font-weight: bold;
margin-right: 10px;
}
.input-with-select {
margin: 0 10px;
width: 270px;
}
}
.input-with-select {
margin: 0 10px;
width: 270px;
}
}
.status- {
&on {
.status-on {
.cell {
color: #48c978 !important;
}
}
&off {
.status-off {
.cell {
color: red !important;
}
}
.el-button + .el-button {
margin-left: 10px;
}
}
}
</style>
</style>