|
@@ -47,11 +47,11 @@
|
|
|
</up-input>
|
|
</up-input>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
|
|
|
|
|
- <up-form-item label="产品名称" prop="itemname">
|
|
|
|
|
|
|
+ <up-form-item label="产品名称" prop="itemname" :required="rules.itemname[0].required">
|
|
|
<up-input v-model="form.itemname" disabled placeholder="请输入序列号或选择产品">
|
|
<up-input v-model="form.itemname" disabled placeholder="请输入序列号或选择产品">
|
|
|
<template #suffix>
|
|
<template #suffix>
|
|
|
<view style="display: flex;align-items: center;">
|
|
<view style="display: flex;align-items: center;">
|
|
|
- <view class="my-but" hover-class="navigator-hover">
|
|
|
|
|
|
|
+ <view class="my-but" hover-class="navigator-hover" @click="toSelectProduct">
|
|
|
选择产品
|
|
选择产品
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
@@ -90,10 +90,14 @@
|
|
|
</My_region>
|
|
</My_region>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
|
|
|
|
|
- <up-form-item label="详细地址" prop="address">
|
|
|
|
|
|
|
+ <up-form-item label="详细地址" prop="address" :required="rules.address[0].required">
|
|
|
<up-textarea maxlength="499" v-model="form.address" placeholder="详细地址" autoHeight height="20" />
|
|
<up-textarea maxlength="499" v-model="form.address" placeholder="详细地址" autoHeight height="20" />
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
|
|
|
|
|
|
|
+ <up-form-item label="" prop="remarks">
|
|
|
|
|
+ <up-textarea v-model="form.remarks" placeholder="如有特殊需求,您可在此处留言" count></up-textarea>
|
|
|
|
|
+ </up-form-item>
|
|
|
|
|
+
|
|
|
</up-form>
|
|
</up-form>
|
|
|
<view style="padding-bottom: 50px;width: 350rpx;margin: 40rpx auto 0;" @click="save">
|
|
<view style="padding-bottom: 50px;width: 350rpx;margin: 40rpx auto 0;" @click="save">
|
|
|
<My-button text="保存" :loading="loading" />
|
|
<My-button text="保存" :loading="loading" />
|
|
@@ -135,36 +139,41 @@ import { ref, reactive, getCurrentInstance } from 'vue';
|
|
|
const { $Http } = getCurrentInstance().proxy;
|
|
const { $Http } = getCurrentInstance().proxy;
|
|
|
import { onShow } from '@dcloudio/uni-app';
|
|
import { onShow } from '@dcloudio/uni-app';
|
|
|
|
|
|
|
|
|
|
+const userMsg = uni.getStorageSync('userMsg')
|
|
|
const uFormRef = ref(null);
|
|
const uFormRef = ref(null);
|
|
|
const form = reactive({
|
|
const form = reactive({
|
|
|
sa_serviceorderid: 0,
|
|
sa_serviceorderid: 0,
|
|
|
|
|
+ sa_orderid: 0,
|
|
|
|
|
+ sys_enterpriseid: 0,
|
|
|
|
|
+ sa_customersid: uni.getStorageSync("userRecord").sa_customersid || 0,
|
|
|
servicetype: '', // 服务类型
|
|
servicetype: '', // 服务类型
|
|
|
class1: '', // 产品品类
|
|
class1: '', // 产品品类
|
|
|
class2: '', // 故障类型
|
|
class2: '', // 故障类型
|
|
|
sku: '', // 序列号
|
|
sku: '', // 序列号
|
|
|
|
|
+ itemid: '', // 产品ID
|
|
|
itemname: '', // 产品名称
|
|
itemname: '', // 产品名称
|
|
|
itemno: '', // 产品编号
|
|
itemno: '', // 产品编号
|
|
|
model: '', // 产品型号
|
|
model: '', // 产品型号
|
|
|
cardno: '', // 保修卡号
|
|
cardno: '', // 保修卡号
|
|
|
|
|
|
|
|
- scenecontact: '', // 联系人
|
|
|
|
|
- scenecontactphonenumber: '', // 联系人电话
|
|
|
|
|
|
|
+ scenecontact: userMsg.name, // 联系人
|
|
|
|
|
+ scenecontactphonenumber: userMsg.phonenumber, // 联系人电话
|
|
|
|
|
|
|
|
province: '', // 省
|
|
province: '', // 省
|
|
|
city: '', // 市
|
|
city: '', // 市
|
|
|
county: '', // 县
|
|
county: '', // 县
|
|
|
|
|
|
|
|
address: '', // 详细地址
|
|
address: '', // 详细地址
|
|
|
|
|
+ remarks: ''
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-
|
|
|
|
|
const rules = reactive({
|
|
const rules = reactive({
|
|
|
servicetype: [{ required: true, message: '请选择服务类型', trigger: 'change' }],
|
|
servicetype: [{ required: true, message: '请选择服务类型', trigger: 'change' }],
|
|
|
class1: [{ required: true, message: '请选择产品品类', trigger: 'change' }],
|
|
class1: [{ required: true, message: '请选择产品品类', trigger: 'change' }],
|
|
|
class2: [{ required: false, message: "请选择故障类型", trigger: 'change' }],
|
|
class2: [{ required: false, message: "请选择故障类型", trigger: 'change' }],
|
|
|
sku: [{ required: false, message: '请输入序列号', trigger: 'blur' }],
|
|
sku: [{ required: false, message: '请输入序列号', trigger: 'blur' }],
|
|
|
itemno: [{ required: false, message: '请输入产品编号', trigger: 'blur' }],
|
|
itemno: [{ required: false, message: '请输入产品编号', trigger: 'blur' }],
|
|
|
- itemname: [{ required: true, message: '请输入产品名称', trigger: 'blur' }],
|
|
|
|
|
|
|
+ itemname: [{ required: true, message: '请选择产品', trigger: 'blur' }],
|
|
|
model: [{ required: false, 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' }],
|
|
province: [{ required: true, message: '请选择省市县', trigger: 'change' }],
|
|
@@ -173,12 +182,18 @@ const rules = reactive({
|
|
|
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: '请输入正确的手机号码' }],
|
|
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: '请输入正确的手机号码' }],
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+// 切换服务类型
|
|
|
|
|
+function servicetypeChange(type) {
|
|
|
|
|
+ rules.class2[0].required = type == '维修';
|
|
|
|
|
+ rules.sku[0].required = type == '安装';
|
|
|
|
|
+ uFormRef.value.setRules(rules);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
const class1 = ref(''),
|
|
const class1 = ref(''),
|
|
|
servertypes = ref(['安装', '维修', '清洗']),
|
|
servertypes = ref(['安装', '维修', '清洗']),
|
|
|
class2 = ref('');
|
|
class2 = ref('');
|
|
|
|
|
|
|
|
-let sa_workorderid = 0;
|
|
|
|
|
-
|
|
|
|
|
onShow(() => {
|
|
onShow(() => {
|
|
|
$Http.getClass('servertype').then(res => {
|
|
$Http.getClass('servertype').then(res => {
|
|
|
servertypes.value = res.data.map(v => v.value);
|
|
servertypes.value = res.data.map(v => v.value);
|
|
@@ -192,16 +207,11 @@ onShow(() => {
|
|
|
|
|
|
|
|
$Http.getClass('faulttype').then(res => {
|
|
$Http.getClass('faulttype').then(res => {
|
|
|
class2.value = res.data;
|
|
class2.value = res.data;
|
|
|
|
|
+ uFormRef.value.setRules(rules);
|
|
|
if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-function servicetypeChange(type) {
|
|
|
|
|
- rules.class2[0].required = type == '维修';
|
|
|
|
|
- rules.sku[0].required = type == '安装';
|
|
|
|
|
- uFormRef.value.setRules(rules);
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
// 保存
|
|
// 保存
|
|
|
let loading = ref(false);
|
|
let loading = ref(false);
|
|
|
|
|
|
|
@@ -211,17 +221,15 @@ function save() {
|
|
|
uFormRef.value.validate().then(valid => {
|
|
uFormRef.value.validate().then(valid => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
let content = {
|
|
let content = {
|
|
|
- "sa_workorderid": sa_workorderid,
|
|
|
|
|
- sa_serviceorderid: detail.sa_serviceorderid,
|
|
|
|
|
...form
|
|
...form
|
|
|
};
|
|
};
|
|
|
loading.value = true;
|
|
loading.value = true;
|
|
|
$Http.basic({
|
|
$Http.basic({
|
|
|
- "id": "20230208140003",
|
|
|
|
|
|
|
+ "id": "20230206091403",
|
|
|
content
|
|
content
|
|
|
}).then(res => {
|
|
}).then(res => {
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
|
- console.log("保存工单", res);
|
|
|
|
|
|
|
+ console.log("提交申请单", res);
|
|
|
uni.showToast({ title: res.code !== 1 ? res.msg : "保存成功", icon: 'none', mask: res.code == 1 });
|
|
uni.showToast({ title: res.code !== 1 ? res.msg : "保存成功", icon: 'none', mask: res.code == 1 });
|
|
|
if (res.code == 1) setTimeout(() => {
|
|
if (res.code == 1) setTimeout(() => {
|
|
|
uni.navigateBack();
|
|
uni.navigateBack();
|
|
@@ -284,56 +292,13 @@ function closePopup() {
|
|
|
}
|
|
}
|
|
|
function changeItem(item) {
|
|
function changeItem(item) {
|
|
|
item.contact = item.name;
|
|
item.contact = item.name;
|
|
|
-
|
|
|
|
|
- if (item.itemid == detail.itemid) {
|
|
|
|
|
- handle();
|
|
|
|
|
- } else {
|
|
|
|
|
- uni.showModal({
|
|
|
|
|
- title: '提示',
|
|
|
|
|
- content: `当前选择的产品与工单中的产品不一致,是否继续?`,
|
|
|
|
|
- success: function ({ confirm }) {
|
|
|
|
|
- if (confirm) handle()
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- function handle() {
|
|
|
|
|
- item.serviceenterprisename = item.serviceenterprisename || item.enterprisename;
|
|
|
|
|
- ['contact', 'serviceenterprisename', 'sku', 'cardno', 'itemid', 'itemname', 'itemno', 'model', 'phonenumber', 'unitname', 'spec'].forEach(key => {
|
|
|
|
|
- form[key] = item[key] || '';
|
|
|
|
|
- });
|
|
|
|
|
- uni.showToast({ title: '已填充表单', icon: 'none' });
|
|
|
|
|
- querySku.value = true;
|
|
|
|
|
- closePopup();
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-function phonenumberConfirm() {
|
|
|
|
|
- // 校验手机号
|
|
|
|
|
- let reg = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/;
|
|
|
|
|
- if (!reg.test(form.phonenumber)) {
|
|
|
|
|
- return uni.showToast({ title: '请输入正确的手机号', icon: 'none' });
|
|
|
|
|
- }
|
|
|
|
|
- $Http.basic({
|
|
|
|
|
- "id": 2025080813465203,
|
|
|
|
|
- "content": {
|
|
|
|
|
- "pageNumber": 1,
|
|
|
|
|
- "pageSize": 50,
|
|
|
|
|
- phonenumber: form.phonenumber,
|
|
|
|
|
- "where": {
|
|
|
|
|
- // phonenumber: form.phonenumber,
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }).then(res => {
|
|
|
|
|
- console.log("根据用户手机查询", res)
|
|
|
|
|
- if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
|
|
|
|
|
- if (res.data.length === 0) return uni.showToast({ title: '未找到对应的客户信息', icon: 'none' });
|
|
|
|
|
- if (res.data.length == 1 && detail.itemid == res.data[0].itemid) {
|
|
|
|
|
- changeItem(res.data[0]);
|
|
|
|
|
- } else {
|
|
|
|
|
- products.value = res.data;
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ item.serviceenterprisename = item.serviceenterprisename || item.enterprisename;
|
|
|
|
|
+ ['contact', 'serviceenterprisename', 'sku', 'cardno', 'itemid', 'itemname', 'itemno', 'model', 'phonenumber', 'unitname', 'spec'].forEach(key => {
|
|
|
|
|
+ form[key] = item[key] || '';
|
|
|
|
|
+ });
|
|
|
|
|
+ uni.showToast({ title: '已填充表单', icon: 'none' });
|
|
|
|
|
+ querySku.value = true;
|
|
|
|
|
+ closePopup();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function openScan() {
|
|
function openScan() {
|