|
|
@@ -31,8 +31,21 @@
|
|
|
产品信息
|
|
|
</view>
|
|
|
|
|
|
+ <up-form-item label="保修卡号" v-if="form.servicetype != '安装'" :required="rules.cardno[0].required"
|
|
|
+ prop="cardno">
|
|
|
+ <up-input v-model="form.cardno" disabled placeholder="保修卡号" clearable @blur="skuConfirm">
|
|
|
+ <template #suffix>
|
|
|
+ <view style="display: flex;align-items: center;">
|
|
|
+ <view class="my-but" hover-class="navigator-hover" @click="cardnoCustomer">
|
|
|
+ 选择保修卡
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </up-input>
|
|
|
+ </up-form-item>
|
|
|
+
|
|
|
<up-form-item label="序列号" :required="rules.sku[0].required" prop="sku">
|
|
|
- <up-input v-model="form.sku" placeholder="序列号" clearable @blur="skuConfirm">
|
|
|
+ <up-input v-model="form.sku" disabled placeholder="序列号" clearable @blur="skuConfirm">
|
|
|
<template #suffix>
|
|
|
<view style="display: flex;align-items: center;">
|
|
|
<view class="my-but" hover-class="navigator-hover" @click="toSelectMyProduct">
|
|
|
@@ -45,20 +58,16 @@
|
|
|
</up-form-item>
|
|
|
|
|
|
<up-form-item label="客户名称" :required="rules.customername[0].required" prop="customername">
|
|
|
- <up-input v-model="form.customername" :disabled="disabledCustomername" placeholder="客户名称">
|
|
|
+ <up-input v-model="form.customername" disabled placeholder="客户名称">
|
|
|
<template #suffix>
|
|
|
- <up-button type="success" v-if="form.sku && form.sa_customersid == 0" size="mini" text="客户档案查询"
|
|
|
- @click="queryCustomer" />
|
|
|
+ <up-button type="success" v-if="(form.sku || form.cardno) && form.sa_customersid == 0"
|
|
|
+ size="mini" text="客户档案查询" @click="queryCustomer" />
|
|
|
</template>
|
|
|
</up-input>
|
|
|
</up-form-item>
|
|
|
|
|
|
<up-form-item label="客户电话" :required="rules.customerphonenumber[0].required" prop="customerphonenumber">
|
|
|
- <up-input v-model="form.customerphonenumber" placeholder="客户电话">
|
|
|
- <template #suffix>
|
|
|
- <up-button type="success" :disabled="!form.customerphonenumber" size="mini" text="查询"
|
|
|
- @click="phonenumberConfirm" />
|
|
|
- </template>
|
|
|
+ <up-input v-model="form.customerphonenumber" disabled placeholder="客户电话">
|
|
|
</up-input>
|
|
|
</up-form-item>
|
|
|
<up-form-item label="产品名称" prop="itemname" :required="rules.itemname[0].required">
|
|
|
@@ -138,7 +147,7 @@ const uFormRef = ref(null);
|
|
|
const form = reactive({
|
|
|
sa_serviceorderid: 0,
|
|
|
sa_orderid: 0,
|
|
|
- servicetype: '', // 服务类型
|
|
|
+ servicetype: '安装', // 服务类型
|
|
|
class1: '', // 产品品类
|
|
|
class2: '', // 故障类型
|
|
|
sku: '', // 序列号
|
|
|
@@ -178,12 +187,12 @@ const rules = reactive({
|
|
|
itemno: [{ required: false, message: '请输入产品编号', trigger: 'blur' }],
|
|
|
itemname: [{ required: true, message: '请选择产品', trigger: 'blur' }],
|
|
|
model: [{ required: false, message: '请输入产品型号', trigger: 'blur' }],
|
|
|
- cardno: [{ required: false, message: '请输入保修卡号', trigger: 'blur' }],
|
|
|
+ cardno: [{ required: false, message: '请选择保修卡号', trigger: 'blur' }],
|
|
|
province: [{ required: true, message: '请选择省市县', trigger: 'change' }],
|
|
|
address: [{ required: true, message: '请输入详细地址', trigger: 'blur' }],
|
|
|
sa_customersid: [{ required: true }],
|
|
|
customername: [{ required: true, disabled: true, message: '请输客户名称', trigger: 'blur' }],
|
|
|
- customerphonenumber: [{ required: true, message: '请输入客户电话', trigger: 'blur', pattern: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/, message: '请输入正确的手机号码' }],
|
|
|
+ customerphonenumber: [{ required: false, message: '请输入客户电话', trigger: 'blur', pattern: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/, message: '请输入正确的手机号码' }],
|
|
|
scenecontact: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
|
|
|
scenecontactphonenumber: [{ required: true, message: '请输入联系人电话', trigger: 'blur', pattern: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/, message: '请输入正确的手机号码' }],
|
|
|
});
|
|
|
@@ -197,6 +206,7 @@ function changeClass2(e) {
|
|
|
// 切换服务类型
|
|
|
function servicetypeChange(type) {
|
|
|
rules.class2[0].required = type == '维修';
|
|
|
+ rules.sku[0].required = type == '安装';
|
|
|
uFormRef.value.setRules(rules);
|
|
|
}
|
|
|
|
|
|
@@ -206,19 +216,19 @@ const class1 = ref(''),
|
|
|
|
|
|
onShow(() => {
|
|
|
$Http.getClass('servertype').then(res => {
|
|
|
- servertypes.value = res.data.map(v => v.value);
|
|
|
if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
|
+ servertypes.value = res.data.map(v => v.value);
|
|
|
});
|
|
|
|
|
|
$Http.getClass('prodclass1').then(res => {
|
|
|
- class1.value = res.data;
|
|
|
if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
|
+ class1.value = res.data;
|
|
|
});
|
|
|
|
|
|
$Http.getClass('faulttype').then(res => {
|
|
|
+ if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
|
class2.value = res.data;
|
|
|
uFormRef.value.setRules(rules);
|
|
|
- if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
|
});
|
|
|
});
|
|
|
|
|
|
@@ -387,15 +397,23 @@ function changeItem(item) {
|
|
|
}
|
|
|
|
|
|
function openScan() {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages/bookingService/getCode'
|
|
|
+ uni.scanCode({
|
|
|
+ onlyFromCamera: true,
|
|
|
+ scanType: ['qrCode', 'barCode'],
|
|
|
+ success: (res) => {
|
|
|
+ console.log("扫码结果", res);
|
|
|
+ if (res.result) {
|
|
|
+ form.sku = res.result;
|
|
|
+ skuConfirm();
|
|
|
+ } else {
|
|
|
+ uni.showToast({ title: '扫码失败,请重试', icon: 'none' });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.error("扫码失败", err);
|
|
|
+ uni.showToast({ title: '扫码失败,请重试', icon: 'none' });
|
|
|
+ }
|
|
|
});
|
|
|
- $Http.getCode = (code) => {
|
|
|
- form.sku = code || '';
|
|
|
- skuConfirm();
|
|
|
- uni.navigateBack()
|
|
|
- delete $Http.getCode;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
function toSelectMyProduct() {
|
|
|
@@ -403,14 +421,19 @@ function toSelectMyProduct() {
|
|
|
url: '/pages/launchApplication/skus'
|
|
|
});
|
|
|
$Http.onSelected = (item) => {
|
|
|
- ['customername', 'customerphonenumber', 'sku', 'cardno', 'itemid', 'itemname', 'itemno', 'model', 'unitname', 'spec', 'sa_customersid'].forEach(key => {
|
|
|
+ console.log("选择sku", item);
|
|
|
+ ['customername', 'customerphonenumber', 'sku', 'cardno', 'itemid', 'itemname', 'itemno', 'model', 'unitname', 'spec', 'sa_customersid', 'province', 'city', 'county', 'address'].forEach(key => {
|
|
|
if (key == 'customername') {
|
|
|
form.scenecontact = item['customername'];
|
|
|
disabledCustomername.value = item['customername'] != ''
|
|
|
} else if (key == 'customerphonenumber') {
|
|
|
form.scenecontactphonenumber = item['customerphonenumber'];
|
|
|
}
|
|
|
- form[key] = item[key] || '';
|
|
|
+ try {
|
|
|
+ form[key] = item[key] || ''
|
|
|
+ } catch (error) {
|
|
|
+ form[key] = ''
|
|
|
+ }
|
|
|
});
|
|
|
uni.navigateBack()
|
|
|
delete $Http.onSelected
|
|
|
@@ -422,7 +445,7 @@ function queryCustomer() {
|
|
|
url: '/pages/launchApplication/customer'
|
|
|
});
|
|
|
$Http.onSelected = (item) => {
|
|
|
- console.log("32332323", item);
|
|
|
+ console.log("选择客户档案", item);
|
|
|
['name', 'phonenumber', 'sa_customersid', 'province', 'city', 'county', 'address'].forEach(key => {
|
|
|
if (key == 'name') {
|
|
|
form.scenecontact = item['name'];
|
|
|
@@ -432,7 +455,37 @@ function queryCustomer() {
|
|
|
form.customerphonenumber = item['phonenumber'];
|
|
|
form.scenecontactphonenumber = item['phonenumber'];
|
|
|
}
|
|
|
- if (item[key]) form[key] = item[key] || '';
|
|
|
+ try {
|
|
|
+ form[key] = item[key] || ''
|
|
|
+ } catch (error) {
|
|
|
+ form[key] = ''
|
|
|
+ }
|
|
|
+ })
|
|
|
+ uni.navigateBack()
|
|
|
+ delete $Http.onSelected
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function cardnoCustomer() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/launchApplication/cardno'
|
|
|
+ });
|
|
|
+ $Http.onSelected = (item) => {
|
|
|
+ console.log("保修卡选择", item);
|
|
|
+ ['name', 'phonenumber', 'sku', 'cardno', 'itemid', 'itemname', 'itemno', 'model', 'unitname', 'spec', 'sa_customersid', 'province', 'city', 'county', 'address'].forEach(key => {
|
|
|
+ if (key == 'name') {
|
|
|
+ form.scenecontact = item['name'];
|
|
|
+ form.customername = item['name'];
|
|
|
+ disabledCustomername.value = item['name'] != ''
|
|
|
+ } else if (key == 'phonenumber') {
|
|
|
+ form.customerphonenumber = item['phonenumber'];
|
|
|
+ form.scenecontactphonenumber = item['phonenumber'];
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ form[key] = item[key] || ''
|
|
|
+ } catch (error) {
|
|
|
+ form[key] = ''
|
|
|
+ }
|
|
|
})
|
|
|
uni.navigateBack()
|
|
|
delete $Http.onSelected
|