|
|
|
@ -4,41 +4,22 @@
|
|
|
|
<div class="breadcrumb-section">
|
|
|
|
<div class="breadcrumb-section">
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<el-breadcrumb separator="/">
|
|
|
|
<el-breadcrumb separator="/">
|
|
|
|
<el-breadcrumb-item :to="{ path: '/' }"
|
|
|
|
<el-breadcrumb-item :to="{ path: '/' }">電商管理中心</el-breadcrumb-item>
|
|
|
|
>電商管理中心</el-breadcrumb-item
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-breadcrumb-item><a href="/">訂單信息</a></el-breadcrumb-item>
|
|
|
|
<el-breadcrumb-item><a href="/">訂單信息</a></el-breadcrumb-item>
|
|
|
|
</el-breadcrumb>
|
|
|
|
</el-breadcrumb>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<el-button type="danger" size="small" @click="$router.push('/list')"
|
|
|
|
<el-button type="danger" size="small" @click="$router.push('/list')">訂單列表</el-button>
|
|
|
|
>訂單列表</el-button
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- Breadcrumb: End -->
|
|
|
|
<!-- Breadcrumb: End -->
|
|
|
|
<hr />
|
|
|
|
<hr />
|
|
|
|
<el-card class="top-action">
|
|
|
|
<el-card class="top-action">
|
|
|
|
<el-button
|
|
|
|
<el-button type="primary" class="default-button-style" @click="handleGetOrder(orderInfo.prev)"
|
|
|
|
type="primary"
|
|
|
|
:disabled="!orderInfo.prev">前一個訂單</el-button>
|
|
|
|
class="default-button-style"
|
|
|
|
<el-button type="primary" class="default-button-style" @click="handleGetOrder(orderInfo.next)"
|
|
|
|
@click="handleGetOrder(orderInfo.prev)"
|
|
|
|
:disabled="!orderInfo.next">後一個訂單</el-button>
|
|
|
|
:disabled="!orderInfo.prev"
|
|
|
|
<el-button type="primary" class="default-button-style" @click="handlePrint">打印訂單</el-button>
|
|
|
|
>前一個訂單</el-button
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
|
|
class="default-button-style"
|
|
|
|
|
|
|
|
@click="handleGetOrder(orderInfo.next)"
|
|
|
|
|
|
|
|
:disabled="!orderInfo.next"
|
|
|
|
|
|
|
|
>後一個訂單</el-button
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
|
|
class="default-button-style"
|
|
|
|
|
|
|
|
@click="handlePrint"
|
|
|
|
|
|
|
|
>打印訂單</el-button
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
<el-card class="box-card">
|
|
|
|
<el-card class="box-card">
|
|
|
|
<template #header>
|
|
|
|
<template #header>
|
|
|
|
@ -48,12 +29,7 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<div class="card-body">
|
|
|
|
<div class="card-body">
|
|
|
|
<el-table
|
|
|
|
<el-table :data="orderInfo.goods_item" :summary-method="getSummaries" show-summary style="width: 100%">
|
|
|
|
:data="orderInfo.goods_item"
|
|
|
|
|
|
|
|
:summary-method="getSummaries"
|
|
|
|
|
|
|
|
show-summary
|
|
|
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-table-column prop="goods_name" label="商品名稱" />
|
|
|
|
<el-table-column prop="goods_name" label="商品名稱" />
|
|
|
|
<el-table-column prop="goods_sn" label="商品編號" />
|
|
|
|
<el-table-column prop="goods_sn" label="商品編號" />
|
|
|
|
<el-table-column prop="product_sn" label="貨品號" />
|
|
|
|
<el-table-column prop="product_sn" label="貨品號" />
|
|
|
|
@ -376,11 +352,7 @@
|
|
|
|
<div align="right"><strong>操作備註:</strong></div>
|
|
|
|
<div align="right"><strong>操作備註:</strong></div>
|
|
|
|
</td>
|
|
|
|
</td>
|
|
|
|
<td width="75%">
|
|
|
|
<td width="75%">
|
|
|
|
<el-input
|
|
|
|
<el-input v-model="orderInfo.action_note" :rows="2" type="textarea" />
|
|
|
|
v-model="orderInfo.action_note"
|
|
|
|
|
|
|
|
:rows="2"
|
|
|
|
|
|
|
|
type="textarea"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
@ -388,13 +360,8 @@
|
|
|
|
<div align="right"><strong>當前可執行操作:</strong></div>
|
|
|
|
<div align="right"><strong>當前可執行操作:</strong></div>
|
|
|
|
</td>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<td>
|
|
|
|
<el-button
|
|
|
|
<el-button type="danger" v-for="(v, i) in orderInfo.op_list" :key="i" @click="handleOp(v)">{{ opName[v]
|
|
|
|
type="danger"
|
|
|
|
}}</el-button>
|
|
|
|
v-for="(v, i) in orderInfo.op_list"
|
|
|
|
|
|
|
|
:key="i"
|
|
|
|
|
|
|
|
@click="handleOp(v)"
|
|
|
|
|
|
|
|
>{{ opName[v] }}</el-button
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</table>
|
|
|
|
@ -419,11 +386,10 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<el-dialog
|
|
|
|
<el-dialog v-model="dialogPrintCardVisible" @open="handleOpenPrintCard" title="配貨">
|
|
|
|
v-model="dialogPrintCardVisible"
|
|
|
|
<div class="dialog-message">
|
|
|
|
@open="handleOpenPrintCard"
|
|
|
|
{{ dialogMessage }}
|
|
|
|
title="配貨"
|
|
|
|
</div>
|
|
|
|
>
|
|
|
|
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
|
|
|
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
|
|
|
<el-tab-pane label="正面" name="front" />
|
|
|
|
<el-tab-pane label="正面" name="front" />
|
|
|
|
@ -436,7 +402,7 @@
|
|
|
|
<!-- <img class="front-bg" src="@/assets/images/card/front.png"> -->
|
|
|
|
<!-- <img class="front-bg" src="@/assets/images/card/front.png"> -->
|
|
|
|
<div class="front-cname">{{ cardInfo.cname }}</div>
|
|
|
|
<div class="front-cname">{{ cardInfo.cname }}</div>
|
|
|
|
<div class="front-ename">{{ cardInfo.ename }}</div>
|
|
|
|
<div class="front-ename">{{ cardInfo.ename }}</div>
|
|
|
|
<img class="front-logo" :src="cardInfo.image||cardImg" />
|
|
|
|
<img class="front-logo" :src="cardInfo.image || cardImg" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="card-preview" v-show="showCardType === 1">
|
|
|
|
<div class="card-preview" v-show="showCardType === 1">
|
|
|
|
@ -453,29 +419,16 @@
|
|
|
|
<el-button type="primary" v-print="printObj">列印卡片</el-button>
|
|
|
|
<el-button type="primary" v-print="printObj">列印卡片</el-button>
|
|
|
|
<el-button type="primary" @click="printLabel">列印標籤</el-button>
|
|
|
|
<el-button type="primary" @click="printLabel">列印標籤</el-button>
|
|
|
|
<el-button type="primary" @click="handleNfcCard">複製Nfc網址</el-button>
|
|
|
|
<el-button type="primary" @click="handleNfcCard">複製Nfc網址</el-button>
|
|
|
|
|
|
|
|
<el-button type="primary" @click="makeNfcCard">製卡</el-button>
|
|
|
|
<el-button type="success" @click="handleFinish">完成</el-button>
|
|
|
|
<el-button type="success" @click="handleFinish">完成</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</el-dialog>
|
|
|
|
</el-dialog>
|
|
|
|
<el-dialog
|
|
|
|
<el-dialog v-model="dialogPrintVisible" @close="handleClosePrint" title="列印超商標籤">
|
|
|
|
v-model="dialogPrintVisible"
|
|
|
|
<iframe id="printIframe" ref="printIframe" :src="printUrl" style="width: 340px; height: 520px" scrolling="no">
|
|
|
|
@close="handleClosePrint"
|
|
|
|
|
|
|
|
title="列印超商標籤"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<iframe
|
|
|
|
|
|
|
|
id="printIframe"
|
|
|
|
|
|
|
|
ref="printIframe"
|
|
|
|
|
|
|
|
:src="printUrl"
|
|
|
|
|
|
|
|
style="width: 340px; height: 520px"
|
|
|
|
|
|
|
|
scrolling="no"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
</iframe>
|
|
|
|
</iframe>
|
|
|
|
<el-button type="primary" v-print="'#printIframe'">列印</el-button>
|
|
|
|
<el-button type="primary" v-print="'#printIframe'">列印</el-button>
|
|
|
|
</el-dialog>
|
|
|
|
</el-dialog>
|
|
|
|
<el-dialog
|
|
|
|
<el-dialog v-model="dialogPrintAddrVisible" @close="handleClosePrintAddr" title="列印住址標籤">
|
|
|
|
v-model="dialogPrintAddrVisible"
|
|
|
|
|
|
|
|
@close="handleClosePrintAddr"
|
|
|
|
|
|
|
|
title="列印住址標籤"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<div id="printAddr">
|
|
|
|
<div id="printAddr">
|
|
|
|
<div class="addr">
|
|
|
|
<div class="addr">
|
|
|
|
<div class="address">
|
|
|
|
<div class="address">
|
|
|
|
@ -505,6 +458,7 @@ import { getCardInfo, updateOrder } from "@/api/order";
|
|
|
|
import { getOrderInfo, getOrderAction, updateOrderAction } from "@/api/order";
|
|
|
|
import { getOrderInfo, getOrderAction, updateOrderAction } from "@/api/order";
|
|
|
|
|
|
|
|
|
|
|
|
import defaultImg from "@/assets/images/logo.png";
|
|
|
|
import defaultImg from "@/assets/images/logo.png";
|
|
|
|
|
|
|
|
import { ElMessage } from "element-plus";
|
|
|
|
|
|
|
|
|
|
|
|
const route = useRoute();
|
|
|
|
const route = useRoute();
|
|
|
|
const router = useRouter();
|
|
|
|
const router = useRouter();
|
|
|
|
@ -540,6 +494,8 @@ const orderInfo = ref({
|
|
|
|
address: {},
|
|
|
|
address: {},
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const dialogMessage = ref("");
|
|
|
|
|
|
|
|
|
|
|
|
const orderAction = ref([]);
|
|
|
|
const orderAction = ref([]);
|
|
|
|
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
onMounted(async () => {
|
|
|
|
@ -633,9 +589,9 @@ const dialogPrintAddrVisible = ref(false);
|
|
|
|
const handleOp = async (op) => {
|
|
|
|
const handleOp = async (op) => {
|
|
|
|
if (op === "prepare") {
|
|
|
|
if (op === "prepare") {
|
|
|
|
// if (op === "prepare") {
|
|
|
|
// if (op === "prepare") {
|
|
|
|
// router.push({ path: "/printcard", query: { order_sn: orderInfo.value.order_sn } });
|
|
|
|
// router.push({ path: "/printcard", query: { order_sn: orderInfo.value.order_sn } });
|
|
|
|
// openPrintCard(orderInfo.value.order_sn);
|
|
|
|
// openPrintCard(orderInfo.value.order_sn);
|
|
|
|
dialogPrintCardVisible.value = true;
|
|
|
|
dialogPrintCardVisible.value = true;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
let res = await updateOrderAction({
|
|
|
|
let res = await updateOrderAction({
|
|
|
|
@ -651,7 +607,7 @@ const handleOp = async (op) => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
console.log('op',op)
|
|
|
|
console.log('op', op)
|
|
|
|
ElMessageBox.confirm("確認" + opName[op] + "?", "訂單操作", {})
|
|
|
|
ElMessageBox.confirm("確認" + opName[op] + "?", "訂單操作", {})
|
|
|
|
.then(async () => {
|
|
|
|
.then(async () => {
|
|
|
|
let res = await updateOrderAction({
|
|
|
|
let res = await updateOrderAction({
|
|
|
|
@ -706,7 +662,7 @@ const handleClick = (tab, event) => {
|
|
|
|
const printObj = ref({
|
|
|
|
const printObj = ref({
|
|
|
|
id: "printMe",
|
|
|
|
id: "printMe",
|
|
|
|
popTitle: "card print",
|
|
|
|
popTitle: "card print",
|
|
|
|
beforeOpenCallback(vue) {},
|
|
|
|
beforeOpenCallback(vue) { },
|
|
|
|
clickMounted() {
|
|
|
|
clickMounted() {
|
|
|
|
size.value = 300;
|
|
|
|
size.value = 300;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
@ -752,27 +708,28 @@ const printLabel = async () => {
|
|
|
|
let iTop = (window.screen.availHeight - 30 - iHeight) / 2; //視窗的垂直位置;
|
|
|
|
let iTop = (window.screen.availHeight - 30 - iHeight) / 2; //視窗的垂直位置;
|
|
|
|
let iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //視窗的水平位置;
|
|
|
|
let iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //視窗的水平位置;
|
|
|
|
window.open(
|
|
|
|
window.open(
|
|
|
|
`https://shop.slash1000.com/adminapi/v1/order/printlabel?order_id=${order_id}`,
|
|
|
|
`${import.meta.env.VITE_APP_BASE_URL}adminapi/v1/order/printlabel?order_id=${order_id}`,
|
|
|
|
"Print Label",
|
|
|
|
"Print Label",
|
|
|
|
"height=" +
|
|
|
|
"height=" +
|
|
|
|
iHeight +
|
|
|
|
iHeight +
|
|
|
|
",,innerHeight=" +
|
|
|
|
",,innerHeight=" +
|
|
|
|
iHeight +
|
|
|
|
iHeight +
|
|
|
|
",width=" +
|
|
|
|
",width=" +
|
|
|
|
iWidth +
|
|
|
|
iWidth +
|
|
|
|
",innerWidth=" +
|
|
|
|
",innerWidth=" +
|
|
|
|
iWidth +
|
|
|
|
iWidth +
|
|
|
|
",top=" +
|
|
|
|
",top=" +
|
|
|
|
iTop +
|
|
|
|
iTop +
|
|
|
|
",left=" +
|
|
|
|
",left=" +
|
|
|
|
iLeft +
|
|
|
|
iLeft +
|
|
|
|
",status=no,location=no,status=no,menubar=no,toolbar=no,resizable=no,scrollbars=no"
|
|
|
|
",status=no,location=no,status=no,menubar=no,toolbar=no,resizable=no,scrollbars=no"
|
|
|
|
);
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
changePrintPage("10cm 15cm");
|
|
|
|
changePrintPage("10cm 15cm");
|
|
|
|
//列印超商標籤
|
|
|
|
//列印超商標籤
|
|
|
|
dialogPrintVisible.value = true;
|
|
|
|
dialogPrintVisible.value = true;
|
|
|
|
printUrl.value = `https://shop.slash1000.com/adminapi/v1/order/printlabel?order_id=${order_id}`;
|
|
|
|
printUrl.value = `${import.meta.env.VITE_APP_BASE_URL}adminapi/v1/order/printlabel?order_id=${order_id}`;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -805,13 +762,55 @@ const changePrintPage = (page) => {
|
|
|
|
head.appendChild(style);
|
|
|
|
head.appendChild(style);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const makeNfcCard = async () => {
|
|
|
|
|
|
|
|
let nfcReaderUrl = 'http://localhost:8088'
|
|
|
|
|
|
|
|
const data = new URLSearchParams();
|
|
|
|
|
|
|
|
//將cardInfo去除掉https://
|
|
|
|
|
|
|
|
let cardInfoUrl = cardInfo.value.nfcurl.replace('https://', '')
|
|
|
|
|
|
|
|
data.append('data', cardInfoUrl);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
let res = await fetch(nfcReaderUrl + '/writenfc', {
|
|
|
|
|
|
|
|
method: 'POST',
|
|
|
|
|
|
|
|
body: data,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res = await res.json()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (res.code !== 200) {
|
|
|
|
|
|
|
|
dialogMessage.value = res.error
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
|
|
dialogMessage.value = ""
|
|
|
|
|
|
|
|
}, 3000);
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
dialogMessage.value = "製卡成功"
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
|
|
dialogMessage.value = ""
|
|
|
|
|
|
|
|
}, 3000);
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
dialogMessage.value = "請確認NFCCard程式是否開啟"
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
|
|
dialogMessage.value = ""
|
|
|
|
|
|
|
|
}, 3000);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const handleNfcCard = async () => {
|
|
|
|
const handleNfcCard = async () => {
|
|
|
|
const { toClipboard } = useClipboard();
|
|
|
|
const { toClipboard } = useClipboard();
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
await toClipboard(cardInfo.value.nfcurl);
|
|
|
|
await toClipboard(cardInfo.value.nfcurl);
|
|
|
|
return ElMessage.success("複製成功");
|
|
|
|
dialogMessage.value = "複製成功"
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
|
|
dialogMessage.value = ""
|
|
|
|
|
|
|
|
}, 2000);
|
|
|
|
|
|
|
|
return;
|
|
|
|
} catch (e) {
|
|
|
|
} catch (e) {
|
|
|
|
return ElMessage.error("複製失敗");
|
|
|
|
dialogMessage.value = "複製失敗"
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
|
|
dialogMessage.value = ""
|
|
|
|
|
|
|
|
}, 2000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
@ -825,8 +824,7 @@ const handleNfcCard = async () => {
|
|
|
|
margin-bottom: 10px;
|
|
|
|
margin-bottom: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-card {
|
|
|
|
.el-card {}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
table {
|
|
|
|
table {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
@ -834,6 +832,7 @@ table {
|
|
|
|
|
|
|
|
|
|
|
|
.nav {
|
|
|
|
.nav {
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
.nav-item {
|
|
|
|
.nav-item {
|
|
|
|
margin-right: 10px;
|
|
|
|
margin-right: 10px;
|
|
|
|
// border: 1px solid #666;
|
|
|
|
// border: 1px solid #666;
|
|
|
|
@ -846,6 +845,7 @@ table {
|
|
|
|
// border: 1px solid #000;
|
|
|
|
// border: 1px solid #000;
|
|
|
|
margin: 0px;
|
|
|
|
margin: 0px;
|
|
|
|
position: relative;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
img {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
height: 100%;
|
|
|
|
@ -853,10 +853,12 @@ table {
|
|
|
|
top: 0;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
left: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.front {
|
|
|
|
.front {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
height: 100%;
|
|
|
|
position: absolute;
|
|
|
|
position: absolute;
|
|
|
|
|
|
|
|
|
|
|
|
.front-logo {
|
|
|
|
.front-logo {
|
|
|
|
position: absolute;
|
|
|
|
position: absolute;
|
|
|
|
width: 100px;
|
|
|
|
width: 100px;
|
|
|
|
@ -889,9 +891,11 @@ table {
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
|
|
.nfcimg {
|
|
|
|
.nfcimg {
|
|
|
|
width: 100px;
|
|
|
|
width: 100px;
|
|
|
|
height: 100px;
|
|
|
|
height: 100px;
|
|
|
|
|
|
|
|
|
|
|
|
canvas {
|
|
|
|
canvas {
|
|
|
|
width: 100px !important;
|
|
|
|
width: 100px !important;
|
|
|
|
height: 100px !important;
|
|
|
|
height: 100px !important;
|
|
|
|
@ -903,18 +907,21 @@ table {
|
|
|
|
#printAddr {
|
|
|
|
#printAddr {
|
|
|
|
width: 600px;
|
|
|
|
width: 600px;
|
|
|
|
height: 400px;
|
|
|
|
height: 400px;
|
|
|
|
|
|
|
|
|
|
|
|
.addr {
|
|
|
|
.addr {
|
|
|
|
.address {
|
|
|
|
.address {
|
|
|
|
font-size: 20px;
|
|
|
|
font-size: 20px;
|
|
|
|
font-weight: bold;
|
|
|
|
font-weight: bold;
|
|
|
|
line-height: 100px;
|
|
|
|
line-height: 100px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.name {
|
|
|
|
.name {
|
|
|
|
font-size: 20px;
|
|
|
|
font-size: 20px;
|
|
|
|
font-weight: bold;
|
|
|
|
font-weight: bold;
|
|
|
|
line-height: 100px;
|
|
|
|
line-height: 100px;
|
|
|
|
padding-left: 100px;
|
|
|
|
padding-left: 100px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.sender {
|
|
|
|
.sender {
|
|
|
|
text-align: right;
|
|
|
|
text-align: right;
|
|
|
|
font-size: 20px;
|
|
|
|
font-size: 20px;
|
|
|
|
@ -935,6 +942,7 @@ table {
|
|
|
|
// border: 1px solid #000;
|
|
|
|
// border: 1px solid #000;
|
|
|
|
margin: 0px;
|
|
|
|
margin: 0px;
|
|
|
|
position: relative;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
img {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
height: 100%;
|
|
|
|
@ -942,10 +950,12 @@ table {
|
|
|
|
top: 0;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
left: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.front {
|
|
|
|
.front {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
height: 100%;
|
|
|
|
position: absolute;
|
|
|
|
position: absolute;
|
|
|
|
|
|
|
|
|
|
|
|
.front-logo {
|
|
|
|
.front-logo {
|
|
|
|
position: absolute;
|
|
|
|
position: absolute;
|
|
|
|
width: 300px;
|
|
|
|
width: 300px;
|
|
|
|
@ -978,6 +988,7 @@ table {
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
|
|
.nfcimg {
|
|
|
|
.nfcimg {
|
|
|
|
width: 300px;
|
|
|
|
width: 300px;
|
|
|
|
height: 300px;
|
|
|
|
height: 300px;
|
|
|
|
@ -985,8 +996,7 @@ table {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#printIframe {
|
|
|
|
#printIframe {}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#printAddr {
|
|
|
|
#printAddr {
|
|
|
|
width: 1020px;
|
|
|
|
width: 1020px;
|
|
|
|
@ -997,4 +1007,16 @@ table {
|
|
|
|
.action {
|
|
|
|
.action {
|
|
|
|
margin-top: 10px;
|
|
|
|
margin-top: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.message-override {
|
|
|
|
|
|
|
|
z-index: 9999 !important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.dialog-message {
|
|
|
|
|
|
|
|
padding: 10px 5px;
|
|
|
|
|
|
|
|
margin-top: -40px;
|
|
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
|
|
color: #FF7575;
|
|
|
|
|
|
|
|
border: 1px solid #ccc;
|
|
|
|
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|
|