feat: 提交创建服务工单组件封装

This commit is contained in:
duanshuwen
2025-07-11 14:01:13 +08:00
parent 875c60d3ec
commit fb6c258893
46 changed files with 573 additions and 411 deletions

View File

@@ -0,0 +1,33 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
__name: "index",
setup(__props) {
const contactName = common_vendor.ref("");
const contactPhone = common_vendor.ref("");
const handleCall = () => {
common_vendor.index.__f__("log", "at components/create-service-order/index.vue:59", "Calling with:", contactName.value, contactPhone.value);
};
const makePhoneCall = () => {
common_vendor.index.makePhoneCall({
phoneNumber: "15185111210"
});
};
return (_ctx, _cache) => {
return {
a: common_assets._imports_0$6,
b: contactName.value,
c: common_vendor.o(($event) => contactName.value = $event.detail.value),
d: contactPhone.value,
e: common_vendor.o(($event) => contactPhone.value = $event.detail.value),
f: common_vendor.o(handleCall),
g: common_assets._imports_1$3,
h: common_vendor.o(makePhoneCall)
};
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-a90069d4"]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/create-service-order/index.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="create-service-order data-v-a90069d4"><view class="create-service-wrapper data-v-a90069d4"><view class="order-header data-v-a90069d4"><text class="data-v-a90069d4">创建服务工单</text></view><view class="order-content data-v-a90069d4"><view class="order-item data-v-a90069d4"><image src="{{a}}" class="order-icon data-v-a90069d4"></image><text class="order-description data-v-a90069d4">加一台麻将机</text></view><view class="order-line data-v-a90069d4"></view><view class="order-details data-v-a90069d4"><view class="detail-item data-v-a90069d4"><text class="detail-label data-v-a90069d4">房间号:</text><text class="detail-value data-v-a90069d4">302</text></view><view class="detail-item data-v-a90069d4"><text class="detail-label data-v-a90069d4">服务时间:</text><text class="detail-value data-v-a90069d4">2025-09-12 12:00</text></view><view class="detail-item data-v-a90069d4"><text class="detail-label data-v-a90069d4">联系房客:</text><input class="detail-input data-v-a90069d4" placeholder="请填写联系人" value="{{b}}" bindinput="{{c}}"/></view><view class="detail-item data-v-a90069d4"><text class="detail-label data-v-a90069d4">联系电话:</text><input class="detail-input data-v-a90069d4" placeholder="请填写联系电话" value="{{d}}" bindinput="{{e}}"/></view></view><button class="order-button data-v-a90069d4" bindtap="{{f}}">立即呼叫</button></view></view><view class="footer-help data-v-a90069d4"><image src="{{g}}" class="help-icon data-v-a90069d4"></image><text class="help-text data-v-a90069d4">没解决问题?给我打电话吧!</text><text class="help-phone data-v-a90069d4" bindtap="{{h}}">15185111210</text></view></view>

View File

@@ -0,0 +1,148 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.create-service-order.data-v-a90069d4 {
margin-left: 12px;
margin-right: 12px;
}
.create-service-wrapper.data-v-a90069d4 {
box-sizing: border-box;
padding: 12px 12px 16px;
background-color: #eff6fa;
box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.1);
border-radius: 4px 20px 20px 20px;
border: 1px solid #fff;
}
.order-header.data-v-a90069d4 {
font-size: 14px;
font-weight: 500;
margin-bottom: 10px;
color: #333;
}
.order-content.data-v-a90069d4 {
width: 100%;
box-sizing: border-box;
background-color: #fff;
padding: 12px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.order-item.data-v-a90069d4 {
display: flex;
align-items: center;
margin-bottom: 12px;
}
.order-icon.data-v-a90069d4 {
width: 24px;
height: 24px;
margin-right: 8px;
border-radius: 50%;
background-color: #ffa500;
display: flex;
align-items: center;
justify-content: center;
}
.order-description.data-v-a90069d4 {
font-size: 14px;
font-weight: 500;
color: #333;
}
.order-line.data-v-a90069d4 {
position: relative;
border: 1px dashed #eeeeee;
margin-left: -12px;
margin-right: -12px;
}
.order-line.data-v-a90069d4::before, .order-line.data-v-a90069d4::after {
content: "";
position: absolute;
top: -8px;
width: 16px;
height: 16px;
border-radius: 50px;
background-color: #eff6fa;
}
.order-line.data-v-a90069d4::before {
left: -8px;
}
.order-line.data-v-a90069d4::after {
right: -8px;
}
.order-details.data-v-a90069d4 {
margin-top: 12px;
}
.detail-item.data-v-a90069d4 {
display: flex;
align-items: center;
margin-bottom: 10px;
font-size: 14px;
color: #666;
}
.detail-label.data-v-a90069d4 {
width: 70px;
margin-right: 10px;
}
.detail-value.data-v-a90069d4 {
color: #333;
}
.detail-input.data-v-a90069d4 {
border: none;
outline: none;
width: calc(100% - 80px);
font-size: 14px;
color: #999;
border-bottom: 1px solid #ddd;
}
.order-button.data-v-a90069d4 {
width: 280px;
height: 42px;
background: linear-gradient(90deg, #ff7e00, #ffba00);
color: #fff;
font-size: 14px;
font-weight: 600;
border-radius: 20px;
margin-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.footer-help.data-v-a90069d4 {
margin-top: 8px;
display: flex;
align-items: center;
font-size: 14px;
color: #ed6a0c;
}
.help-icon.data-v-a90069d4 {
width: 16px;
height: 14px;
margin-right: 5px;
}
.help-text.data-v-a90069d4 {
margin-right: 5px;
}
.help-phone.data-v-a90069d4 {
cursor: pointer;
}