shangfutong-ui/jeepay-ui-uapp-agent/pageWork/deviceManagement/editPrint.vue

151 lines
4.7 KiB
Vue

<template>
<view>
<JHeaderTitle title="编辑信息" bgColor="transparent" />
<JMainCard pd="0" wrapPd="30rpx">
<JInput name="设备名称" :isBorder="true" v-model:value="vdata.deviceName" place="请输入设备名称" />
</JMainCard>
<JMainCard pd="0" wrapPd="0 30rpx 40rpx 30rpx">
<JInput name="打印联数" :isBorder="true" type="number" v-model:value="printNum" place="请输入打印联数" />
</JMainCard>
<JMainCard pd="0" wrapPd="0 30rpx 40rpx 30rpx">
<JInput name="打印参数" :isBorder="true" :img="true">
<view @tap="change">{{ printModeText[vdata.bizConfigParams?.printMode] || "请选择" }}</view>
</JInput>
</JMainCard>
<JPopup ref="JPopupRef">
<JMainCard pd="0 0 30rpx 0" wrapPd="30rpx">
<JLine
iconOn="/pageWork/static/images/no-fixed-on.svg"
iconClose="/pageWork/static/images/no-fixed-close.svg"
name="仅打印"
:isBorder="true"
:isSelect="printMode == 1"
@tap="changeAmount('仅打印', 1)"
/>
<JLine
iconOn="/static/equipmentImg/fixed-on.svg"
iconClose="/pageWork/static/images/fixed-close.svg"
name="仅播报"
:isSelect="printMode == 2"
@tap="changeAmount('仅播报', 2)"
/>
<JLine
iconOn="/static/equipmentImg/fixed-on.svg"
iconClose="/pageWork/static/images/fixed-close.svg"
name="打印并播报"
:isSelect="printMode == 3"
@tap="changeAmount('播报并打印', 3)"
/>
</JMainCard>
<JButton pd="0 30rpx 50rpx 30rpx" bottom="50rpx" color="#303030" bgColor="rgba(255,255,255,0.8)" pdTop="0"
>取消</JButton
>
</JPopup>
<JButton pd="30rpx" @HandleTouch="preservation">保存</JButton>
</view>
</template>
<script setup>
import { $upDateQRcodeList, $getDeviceDetail, $updateDeviceDetail } from "@/http/apiManager.js"
import { onLoad } from "@dcloudio/uni-app"
import { ref, reactive, toRaw, computed } from "vue"
import JInput from "@/components/newComponents/JInput/JInput.vue"
import JMainCard from "@/components/newComponents/JMainCard/JMainCard.vue"
import JPopup from "@/components/newComponents/JPopup/JPopup.vue"
import JHeaderTitle from "@/components/newComponents/JHeaderTitle/JHeaderTitle.vue" // 导航栏
import JLine from "@/components/newComponents/JLine/JLine.vue"
import JButton from "@/components/newComponents/JButton/JButton.vue"
const vdata = reactive({})
const printMode = ref("") // 打印参数
const printNum = ref("") // 打印联数
onLoad((option) => {
$getDeviceDetail(option.id).then(({ bizData }) => {
bizData.deviceName ? null : (bizData.deviceName = "未命名")
bizData.bizConfigParams = JSON.parse(bizData.bizConfigParams)
Object.assign(vdata, bizData)
printNum.value = vdata.bizConfigParams.printNum
printMode.value = vdata.bizConfigParams.printMode
// 切换打印参数
// switch (vdata.bizConfigParams.printMode) {
// case 1:
// printMode.value = "仅打印"
// break
// case 2:
// printMode.value = "仅播报"
// break
// case 3:
// printMode.value = "播报并打印"
// break
// default:
// null
// }
})
})
const printModeText = reactive(["", "仅打印", "仅播报", "播报并打印"])
const JPopupRef = ref(null) // 弹窗组件
// 切换金额
const change = () => JPopupRef.value.open()
// 选择金额
const changeAmount = (data, num) => {
printMode.value = num
vdata.bizConfigParams.printMode = num
JPopupRef.value.close()
}
// 保存
const preservation = () => {
// 校验 1.设备名称不为空 2.打印联数不为空,并且是数字
if (!vdata.deviceName) {
return uni.showToast({ title: "请输入设备名称", icon: "none" })
}
if (!printNum.value) {
return uni.showToast({ title: "请输入打印联数", icon: "none" })
}
if (!/^[0-9]*$/.test(printNum.value)) {
return uni.showToast({ title: "打印联数必须是数字", icon: "none" })
}
vdata.bizConfigParams = {
printMode: printMode.value,
printNum: printNum.value,
}
const params = {}
params.deviceName = vdata.deviceName
params.printNum = printNum.value
params.bizConfigParams = vdata.bizConfigParams
$updateDeviceDetail(vdata.deviceId, params).then(({ bizData }) => {
uni.showToast({ icon: "none", title: "保存成功" })
setTimeout(() => {
uni.navigateBack()
}, 1000)
})
}
</script>
<style lang="scss">
page {
background: #f2f2f2;
}
.tiptext {
margin: 10rpx 30rpx 0;
border-radius: 10rpx;
background: #f2f2f2;
padding: 20rpx;
box-sizing: border-box;
font-size: 27rpx;
line-height: 46rpx;
}
</style>