|
@@ -7,15 +7,19 @@
|
|
|
placeholder="名称"
|
|
|
:rules="[{ required: true, message: '请填写姓名' }]"
|
|
|
/>
|
|
|
- <van-field label="套餐">
|
|
|
- <template #input>
|
|
|
- <van-radio-group v-model="radio" direction="horizontal">
|
|
|
- <van-radio v-for="(item, i) in goodsLi" :key="i" :name="item.id">{{
|
|
|
- item.name
|
|
|
- }}</van-radio>
|
|
|
- </van-radio-group>
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
+ <van-field
|
|
|
+ @click="() => (program = true)"
|
|
|
+ v-model="radioname"
|
|
|
+ label="套餐"
|
|
|
+ placeholder="请选择套餐"
|
|
|
+ readonly
|
|
|
+ :rules="[{ required: true, message: '未选择套餐' }]"
|
|
|
+ />
|
|
|
+ <!-- <van-radio-group v-model="radio" direction="horizontal">
|
|
|
+ <van-radio v-for="(item, i) in goodsLi" :key="i" :name="item.id"
|
|
|
+ >{{ item.name }}({{ item.price }}元)</van-radio
|
|
|
+ >
|
|
|
+ </van-radio-group> -->
|
|
|
<van-field
|
|
|
v-model="userphone"
|
|
|
type="tel"
|
|
@@ -27,9 +31,9 @@
|
|
|
@click="() => (dateInput = true)"
|
|
|
v-model="selectTime"
|
|
|
label="预定时间"
|
|
|
- placeholder="预定时间"
|
|
|
+ placeholder="请选择预定时间"
|
|
|
readonly
|
|
|
- :rules="[{ required: true, message: '请选择预定时间' }]"
|
|
|
+ :rules="[{ required: true, message: '未选择预定时间' }]"
|
|
|
/>
|
|
|
<div style="margin: 16px">
|
|
|
<van-button
|
|
@@ -42,15 +46,13 @@
|
|
|
预约
|
|
|
</van-button>
|
|
|
<br />
|
|
|
- <van-button
|
|
|
- color="#2a7ef4"
|
|
|
- round
|
|
|
- block
|
|
|
- type="info"
|
|
|
- @click="toAppointment"
|
|
|
- >
|
|
|
+ <van-button round block type="default" @click="toAppointment">
|
|
|
查看预约
|
|
|
</van-button>
|
|
|
+ <br />
|
|
|
+ <van-button round block type="default" @click="price">
|
|
|
+ 查看价目表
|
|
|
+ </van-button>
|
|
|
</div>
|
|
|
</van-form>
|
|
|
|
|
@@ -65,6 +67,17 @@
|
|
|
:columns="tagList"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
+ <!-- #2a7ef4 -->
|
|
|
+ <van-popup v-model="program" position="bottom">
|
|
|
+ <van-picker
|
|
|
+ title="选择项目"
|
|
|
+ @cancel="program = false"
|
|
|
+ @confirm="onConfirmpro"
|
|
|
+ value-key="name"
|
|
|
+ show-toolbar
|
|
|
+ :columns="goodsLi"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -75,9 +88,10 @@ import {
|
|
|
Field as vanField,
|
|
|
Button as vanButton,
|
|
|
Popup as vanPopup,
|
|
|
- RadioGroup as vanRadioGroup,
|
|
|
- Radio as vanRadio,
|
|
|
+// RadioGroup as vanRadioGroup,
|
|
|
+// Radio as vanRadio,
|
|
|
Picker as vanPicker,
|
|
|
+ ImagePreview,
|
|
|
} from "vant";
|
|
|
import "vant/lib/form/style/index";
|
|
|
import "vant/lib/field/style/index";
|
|
@@ -92,6 +106,7 @@ export default {
|
|
|
name: "Apply",
|
|
|
data() {
|
|
|
return {
|
|
|
+ program: false,
|
|
|
username: "",
|
|
|
userphone: "",
|
|
|
date: "",
|
|
@@ -100,6 +115,7 @@ export default {
|
|
|
minDate: new Date(Date.now()),
|
|
|
maxDate: new Date(Date.now() + 86400000),
|
|
|
radio: "",
|
|
|
+ radioname: "",
|
|
|
finished: false,
|
|
|
loading: false,
|
|
|
|
|
@@ -108,45 +124,49 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
- let user = {};
|
|
|
- var payload = {
|
|
|
- type: "JSbridge",
|
|
|
- functionName: "getUserInfo",
|
|
|
- arguments: {},
|
|
|
- };
|
|
|
- if (isAndroid && window.H5Listener && window.H5Listener.getUserInfo)
|
|
|
- user = JSON.parse(window.H5Listener.getUserInfo());
|
|
|
- if (isIphone) user = window.prompt(JSON.stringify(payload)) || {};
|
|
|
- console.log(user);
|
|
|
- this.userphone = user.realName || "";
|
|
|
- this.username = user.phone || "";
|
|
|
- goodsList().then(res => {
|
|
|
- this.goodsLi = res || [];
|
|
|
- this.radio = (this.goodsLi[0] || {}).id;
|
|
|
- });
|
|
|
- applyrang().then(res => {
|
|
|
- let l = res || [],
|
|
|
- nl = [],
|
|
|
- o = {};
|
|
|
- for (let i = 0; i < l.length; i++) {
|
|
|
- const v = l[i];
|
|
|
- if (v.isOrder === 1) continue;
|
|
|
- let keys = v.startTime.split(" "),
|
|
|
- key = keys[0],
|
|
|
- val = keys[1];
|
|
|
- v.startTime = val.replace(/:00$/, "");
|
|
|
- if (o[key] >= 0) {
|
|
|
- nl[o[key]].children.push(v);
|
|
|
- } else {
|
|
|
- o[key] = nl.length;
|
|
|
- nl[o[key]] = {
|
|
|
- startTime: key,
|
|
|
- children: [v],
|
|
|
- };
|
|
|
+ window.voteNext = () => {
|
|
|
+ let user = "";
|
|
|
+ var payload = {
|
|
|
+ type: "JSbridge",
|
|
|
+ functionName: "getUserInfo",
|
|
|
+ arguments: {},
|
|
|
+ };
|
|
|
+ if (isAndroid && window.H5Listener && window.H5Listener.getUserInfo)
|
|
|
+ user = window.H5Listener.getUserInfo();
|
|
|
+ if (isIphone) user = window.prompt(JSON.stringify(payload));
|
|
|
+ user && (user = JSON.parse(user || "{}"));
|
|
|
+ console.log(user)
|
|
|
+ this.userphone = user.phone || "";
|
|
|
+ this.username = user.realName || "";
|
|
|
+ goodsList().then(res => {
|
|
|
+ this.goodsLi = res || [];
|
|
|
+ this.radio = (this.goodsLi[0] || {}).id;
|
|
|
+ });
|
|
|
+ applyrang().then(res => {
|
|
|
+ let l = res || [],
|
|
|
+ nl = [],
|
|
|
+ o = {};
|
|
|
+ for (let i = 0; i < l.length; i++) {
|
|
|
+ const v = l[i];
|
|
|
+ if (v.isOrder === 1) continue;
|
|
|
+ let keys = v.startTime.split(" "),
|
|
|
+ key = keys[0],
|
|
|
+ val = keys[1];
|
|
|
+ v.startTime = val.replace(/:00$/, "");
|
|
|
+ if (o[key] >= 0) {
|
|
|
+ nl[o[key]].children.push(v);
|
|
|
+ } else {
|
|
|
+ o[key] = nl.length;
|
|
|
+ nl[o[key]] = {
|
|
|
+ startTime: key,
|
|
|
+ children: [v],
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- this.tagList = nl;
|
|
|
- });
|
|
|
+ this.tagList = nl;
|
|
|
+ });
|
|
|
+ };
|
|
|
+ window.voteNext();
|
|
|
},
|
|
|
computed: {
|
|
|
selectTime() {
|
|
@@ -154,6 +174,12 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ price() {
|
|
|
+ ImagePreview([
|
|
|
+ "https://djweb.smcic.net/miniProgrammeData/img/price.jpg?v=" +
|
|
|
+ Date.now(),
|
|
|
+ ]);
|
|
|
+ },
|
|
|
toAppointment() {
|
|
|
this.$router.push({
|
|
|
name: "Appointment",
|
|
@@ -189,6 +215,11 @@ export default {
|
|
|
this.dateInput = false;
|
|
|
this.date = date.join(" ");
|
|
|
},
|
|
|
+ onConfirmpro(date){
|
|
|
+ console.log(date)
|
|
|
+ this.program = false;
|
|
|
+ this.radioname = date.name
|
|
|
+ }
|
|
|
},
|
|
|
beforeUnmount: function () {},
|
|
|
components: {
|
|
@@ -196,8 +227,8 @@ export default {
|
|
|
vanField,
|
|
|
vanPopup,
|
|
|
vanButton,
|
|
|
- vanRadioGroup,
|
|
|
- vanRadio,
|
|
|
+ // vanRadioGroup,
|
|
|
+ // vanRadio,
|
|
|
vanPicker,
|
|
|
},
|
|
|
};
|
|
@@ -213,4 +244,7 @@ export default {
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
|
}
|
|
|
+.apply .van-radio {
|
|
|
+ margin-bottom: 3px;
|
|
|
+}
|
|
|
</style>
|