Browse Source

添加分享人id

xiaohaizhao 1 year ago
parent
commit
c49b33acee

+ 0 - 5
.vscode/settings.json

@@ -1,5 +0,0 @@
-{
-    "cSpell.words": [
-        "shareuserid"
-    ]
-}

+ 44 - 35
components/bottomForm.vue

@@ -1,46 +1,55 @@
 <template>
-    <view>
-        <bottom1 v-if="bottomType == '默认黑色预约报名样式'" :ownertable="ownertable" :ownerid="ownerid" :type="type" :typemx="typemx"
-            :extrajson="extrajson" />
-        <bottom2 v-else-if="bottomType == '装修预算'" />
-    </view>
+  <view>
+    <bottom1
+      v-if="bottomType == '默认黑色预约报名样式'"
+      :ownertable="ownertable"
+      :ownerid="ownerid"
+      :type="type"
+      :typemx="typemx"
+      :extrajson="extrajson"
+      :shareuserid="shareuserid"
+    />
+    <bottom2 v-else-if="bottomType == '装修预算'" />
+  </view>
 </template>
 
 <script>
-import bottom1 from "./bottomModules/bottom1.vue"
-import bottom2 from "./bottomModules/bottom2.vue"
+import bottom1 from "./bottomModules/bottom1.vue";
+import bottom2 from "./bottomModules/bottom2.vue";
 export default {
-    components: {
-        bottom1,
-        bottom2
+  components: {
+    bottom1,
+    bottom2,
+  },
+  props: {
+    bottomType: {
+      type: String,
+      default: "默认黑色预约报名样式",
     },
-    props: {
-        bottomType: {
-            type: String,
-            default: "默认黑色预约报名样式"
-        },
-        ownertable: {
-            type: String
-        },
-        ownerid: {
-            type: [String, Number]
-        },
-        type: {
-            type: String
-        },
-        typemx: {
-            type: String
-        },
-        extrajson: {
-            type: Object
-        }
+    shareuserid: {
+      type: [String, Number],
+      default: 0,
     },
-    data() {
-        return {
-
-        }
+    ownertable: {
+      type: String,
+    },
+    ownerid: {
+      type: [String, Number],
+    },
+    type: {
+      type: String,
+    },
+    typemx: {
+      type: String,
+    },
+    extrajson: {
+      type: Object,
     },
-}
+  },
+  data() {
+    return {};
+  },
+};
 </script>
 
 <style></style>

+ 308 - 263
components/bottomModules/bottom1.vue

@@ -1,297 +1,342 @@
 <template>
-    <view class="box">
-        <image class="image"
-            src="https://yossys06593.obs.cn-east-3.myhuaweicloud.com:443/202404111712812810046B1fbafed9.png"
-            lazy-load="true" mode="aspectFill" />
-        <view class="function">
-            <view class="cn-title">预约免费设计</view>
-            <view class="en-title">Appointment Free Design</view>
-            <view class="form">
-                <view class="text" @click="setFocus('姓名')">
-                    <view class="bg" />
-                    <view class="iconfont icon-renyuan-hui" />
-                    <input class="input" :focus="focus == '姓名'" type="text" v-model="content.name" placeholder="请输入您的姓名">
-                </view>
-                <view class="text" @click="setFocus('手机号')">
-                    <view class="bg" />
-                    <view class="iconfont icon-dianhua-hui" />
-                    <input class="input" :focus="focus == '手机号'" :disabled="!manualOperation" type="number"
-                        v-model="content.phonenumber" placeholder="请输入您的电话号码">
-                    <button v-if="!manualOperation" class="button" open-type="getPhoneNumber"
-                        @getphonenumber="getphonenumber">123123323223323222222</button>
-                </view>
-                <picker mode='region' @change="getRegion">
-                    <view class="text">
-                        <view class="bg" />
-                        <view class="iconfont icon-dizhi-hui1" />
-                        <view style="color: #fff;" v-if="content.province">
-                            {{ this.getCity(content, false) }}
-                        </view>
-                        <view v-else style="opacity: .3;color: #fff;font-size: 14px;">
-                            请选择城市
-                        </view>
-                    </view>
-                </picker>
-                <view class="text textarea-box">
-                    <view class="bg" />
-                    <view class="iconfont icon-dizhi-hui1" />
-                    <textarea class="textarea" v-model="content.address" placeholder="请输入您的具体地址(街道、楼号、门牌号等)" />
-                </view>
-                <view v-if="!content.name || !content.phonenumber || !content.province" class="but forbidden"
-                    hover-class="navigator-hover" @click="reminder">
-                    立即免费预约 >
-                </view>
-                <view v-else class="but" hover-class="navigator-hover" @click="loading ? '' : submit()">
-                    <u-loading-icon v-if="loading" />
-                    <text v-else>
-                        立即免费预约 >
-                    </text>
-                </view>
+  <view class="box">
+    <image
+      class="image"
+      src="https://yossys06593.obs.cn-east-3.myhuaweicloud.com:443/202404111712812810046B1fbafed9.png"
+      lazy-load="true"
+      mode="aspectFill"
+    />
+    <view class="function">
+      <view class="cn-title">预约免费设计</view>
+      <view class="en-title">Appointment Free Design</view>
+      <view class="form">
+        <view class="text" @click="setFocus('姓名')">
+          <view class="bg" />
+          <view class="iconfont icon-renyuan-hui" />
+          <input
+            class="input"
+            :focus="focus == '姓名'"
+            type="text"
+            v-model="content.name"
+            placeholder="请输入您的姓名"
+          />
+        </view>
+        <view class="text" @click="setFocus('手机号')">
+          <view class="bg" />
+          <view class="iconfont icon-dianhua-hui" />
+          <input
+            class="input"
+            :focus="focus == '手机号'"
+            :disabled="!manualOperation"
+            type="number"
+            v-model="content.phonenumber"
+            placeholder="请输入您的电话号码"
+          />
+          <button
+            v-if="!manualOperation"
+            class="button"
+            open-type="getPhoneNumber"
+            @getphonenumber="getphonenumber"
+          >
+            123123323223323222222
+          </button>
+        </view>
+        <picker mode="region" @change="getRegion">
+          <view class="text">
+            <view class="bg" />
+            <view class="iconfont icon-dizhi-hui1" />
+            <view style="color: #fff" v-if="content.province">
+              {{ this.getCity(content, false) }}
+            </view>
+            <view v-else style="opacity: 0.3; color: #fff; font-size: 14px">
+              请选择城市
             </view>
+          </view>
+        </picker>
+        <view class="text textarea-box">
+          <view class="bg" />
+          <view class="iconfont icon-dizhi-hui1" />
+          <textarea
+            class="textarea"
+            v-model="content.address"
+            placeholder="请输入您的具体地址(街道、楼号、门牌号等)"
+          />
         </view>
+        <view
+          v-if="!content.name || !content.phonenumber || !content.province"
+          class="but forbidden"
+          hover-class="navigator-hover"
+          @click="reminder"
+        >
+          立即免费预约 >
+        </view>
+        <view
+          v-else
+          class="but"
+          hover-class="navigator-hover"
+          @click="loading ? '' : submit()"
+        >
+          <u-loading-icon v-if="loading" />
+          <text v-else> 立即免费预约 > </text>
+        </view>
+      </view>
     </view>
+  </view>
 </template>
 <script>
-import contact from "../contact.vue"
+import contact from "../contact.vue";
 export default {
-    components: { contact },
-    name: "bottom1",
-    props: {
-        ownertable: {
-            type: String
-        },
-        ownerid: {
-            type: [String, Number]
-        },
-        type: {
-            type: String
-        },
-        typemx: {
-            type: String
-        },
-        extrajson: {
-            type: Object,
-            default: {}
-        }
+  components: { contact },
+  name: "bottom1",
+  props: {
+    ownertable: {
+      type: String,
     },
-    data() {
-        return {
-            focus: '',
-            loading: false,
-            manualOperation: false,
-            content: {
-                name: "",
-                phonenumber: "",
-                address: "",
-                "province": "",
-                "city": "",
-                "county": "",
-            }
-        }
+    ownerid: {
+      type: [String, Number],
+    },
+    shareuserid: {
+      type: [String, Number],
+      default: 0,
+    },
+    type: {
+      type: String,
+    },
+    typemx: {
+      type: String,
     },
-    methods: {
-        setFocus(name) {
-            this.focus = '';
-            setTimeout(() => {
-                this.focus = name;
-            })
-        },
-        submit() {
-            let content = this.content;
-            content.ownertable = this.ownertable;
-            content.ownerid = this.ownerid;
-            content.type = this.type;
-            content.typemx = this.typemx;
-            content.extrajson = this.extrajson;
-            if (!new RegExp('^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\\d{8}$').test(content.phonenumber)) return uni.showModal({
-                title: '提示',
-                content: '手机号码格式错误',
-                showCancel: false,
-            })
-            this.loading = true;
-            this.$Http.basic({
-                "id": 20240513144602,
-                content
-            }).then(res => {
-                console.log("提交预约单", res)
-                this.loading = false;
-                if (this.cutoff(res.msg)) return;
-                uni.showModal({
-                    title: '提交成功',
-                    content: '感谢您的支持,工作人员会第一时间跟您联系!',
-                    showCancel: false,
-                    confirmColor: '#C30D23',
-                })
-                this.content = {
-                    name: "",
-                    phoneNumber: "",
-                    address: "",
-                    "province": "",
-                    "city": "",
-                    "county": "",
-                };
-            })
-        },
-        getRegion(e) {
-            this.content.province = e.detail.value[0];
-            this.content.city = e.detail.value[1];
-            this.content.county = e.detail.value[2];
-        },
-        reminder() {
-            uni.showToast({
-                title: "请先完成填写后提交",
-                icon: "none",
-                duration: 1500,
-            })
-        },
-        getphonenumber(e) {
-            if (e.detail.code) {
-                this.$Http.basic({
-                    "id": 20240520110702,
-                    "content": {
-                        "systemclient": "marketingtool",
-                        "code": e.detail.code
-                    }
-                }).then(res => {
-                    console.log("获取手机号", res)
-                    this.manualOperation = true;
-                    try {
-                        this.content.phonenumber = res.data.purePhoneNumber;
-                    } catch (error) {
-                        this.focus = '手机号';
-                    }
-                })
-            } else {
-                this.manualOperation = true;
-                this.focus = '手机号';
+    extrajson: {
+      type: Object,
+      default: {},
+    },
+  },
+  data() {
+    return {
+      focus: "",
+      loading: false,
+      manualOperation: false,
+      content: {
+        name: "",
+        phonenumber: "",
+        address: "",
+        province: "",
+        city: "",
+        county: "",
+      },
+    };
+  },
+  methods: {
+    setFocus(name) {
+      this.focus = "";
+      setTimeout(() => {
+        this.focus = name;
+      });
+    },
+    submit() {
+      let content = this.content;
+      content.ownertable = this.ownertable;
+      content.ownerid = this.ownerid;
+      content.type = this.type;
+      content.typemx = this.typemx;
+      content.extrajson = this.extrajson;
+      content.shareuserid = this.shareuserid;
+      if (
+        !new RegExp(
+          "^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\\d{8}$"
+        ).test(content.phonenumber)
+      )
+        return uni.showModal({
+          title: "提示",
+          content: "手机号码格式错误",
+          showCancel: false,
+        });
+      this.loading = true;
+      this.$Http
+        .basic({
+          id: 20240513144602,
+          content,
+        })
+        .then((res) => {
+          console.log("提交预约单", res);
+          this.loading = false;
+          if (this.cutoff(res.msg)) return;
+          uni.showModal({
+            title: "提交成功",
+            content: "感谢您的支持,工作人员会第一时间跟您联系!",
+            showCancel: false,
+            confirmColor: "#C30D23",
+          });
+          this.content = {
+            name: "",
+            phoneNumber: "",
+            address: "",
+            province: "",
+            city: "",
+            county: "",
+          };
+        });
+    },
+    getRegion(e) {
+      this.content.province = e.detail.value[0];
+      this.content.city = e.detail.value[1];
+      this.content.county = e.detail.value[2];
+    },
+    reminder() {
+      uni.showToast({
+        title: "请先完成填写后提交",
+        icon: "none",
+        duration: 1500,
+      });
+    },
+    getphonenumber(e) {
+      if (e.detail.code) {
+        this.$Http
+          .basic({
+            id: 20240520110702,
+            content: {
+              systemclient: "marketingtool",
+              code: e.detail.code,
+            },
+          })
+          .then((res) => {
+            console.log("获取手机号", res);
+            this.manualOperation = true;
+            try {
+              this.content.phonenumber = res.data.purePhoneNumber;
+            } catch (error) {
+              this.focus = "手机号";
             }
-        }
+          });
+      } else {
+        this.manualOperation = true;
+        this.focus = "手机号";
+      }
     },
-}
+  },
+};
 </script>
 <style lang="scss" scoped>
 .box {
-    position: relative;
-    width: 100vw;
-    height: 436px;
+  position: relative;
+  width: 100vw;
+  height: 436px;
 
-    .image {
-        width: 100%;
-        height: 100%;
-        display: block;
-        vertical-align: bottom;
-    }
+  .image {
+    width: 100%;
+    height: 100%;
+    display: block;
+    vertical-align: bottom;
+  }
 
-    .function {
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        z-index: 1;
-
-        .cn-title {
-            width: 100%;
-            text-align: center;
-            line-height: 22px;
-            font-family: PingFang SC, PingFang SC;
-            font-weight: 500;
-            font-size: 16px;
-            color: #FFFFFF;
-            margin-top: 30px;
-        }
+  .function {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 1;
 
-        .en-title {
-            width: 100%;
-            text-align: center;
-            font-family: PingFang SC, PingFang SC;
-            font-size: 10px;
-            color: #FFFFFF;
-        }
+    .cn-title {
+      width: 100%;
+      text-align: center;
+      line-height: 22px;
+      font-family: PingFang SC, PingFang SC;
+      font-weight: 500;
+      font-size: 16px;
+      color: #ffffff;
+      margin-top: 30px;
+    }
 
-        .form {
-            width: 260px;
-            margin: 0 auto;
-            margin-top: 20px;
+    .en-title {
+      width: 100%;
+      text-align: center;
+      font-family: PingFang SC, PingFang SC;
+      font-size: 10px;
+      color: #ffffff;
+    }
 
-            .text {
-                position: relative;
-                display: flex;
-                align-items: center;
-                width: 260px;
-                height: 45px;
-                border: 1px solid rgba(255, 255, 255, 0.4);
-                border-radius: 2px;
-                overflow: hidden;
-                padding: 0 10px;
-                box-sizing: border-box;
-                margin-bottom: 10px;
+    .form {
+      width: 260px;
+      margin: 0 auto;
+      margin-top: 20px;
 
-                .button {
-                    width: 100%;
-                    height: 100%;
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                    z-index: 2;
-                    opacity: 0;
-                }
+      .text {
+        position: relative;
+        display: flex;
+        align-items: center;
+        width: 260px;
+        height: 45px;
+        border: 1px solid rgba(255, 255, 255, 0.4);
+        border-radius: 2px;
+        overflow: hidden;
+        padding: 0 10px;
+        box-sizing: border-box;
+        margin-bottom: 10px;
 
-                .input {
-                    color: #fff;
-                    flex: 1;
-                }
+        .button {
+          width: 100%;
+          height: 100%;
+          position: absolute;
+          top: 0;
+          left: 0;
+          z-index: 2;
+          opacity: 0;
+        }
 
-                .textarea {
-                    color: #fff;
-                    flex: 1;
-                    height: 62px;
-                }
+        .input {
+          color: #fff;
+          flex: 1;
+        }
 
-                .iconfont {
-                    color: #fff;
-                    font-size: 20px;
-                    margin-right: 10px;
-                }
+        .textarea {
+          color: #fff;
+          flex: 1;
+          height: 62px;
+        }
 
-            }
+        .iconfont {
+          color: #fff;
+          font-size: 20px;
+          margin-right: 10px;
+        }
+      }
 
-            .textarea-box {
-                padding-top: 13px;
-                height: 90px;
-                align-items: flex-start;
-            }
+      .textarea-box {
+        padding-top: 13px;
+        height: 90px;
+        align-items: flex-start;
+      }
 
-            .text::after {
-                content: "";
-                position: absolute;
-                top: 0;
-                left: 0;
-                width: 100%;
-                height: 100%;
-                background: #fff;
-                opacity: .2;
-            }
+      .text::after {
+        content: "";
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+        background: #fff;
+        opacity: 0.2;
+      }
 
-            .but {
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                width: 260px;
-                height: 45px;
-                background: #C30D23;
-                border-radius: 2px;
+      .but {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 260px;
+        height: 45px;
+        background: #c30d23;
+        border-radius: 2px;
 
-                font-family: PingFang SC, PingFang SC;
-                font-weight: 500;
-                font-size: 14px;
-                color: #FFFFFF;
-            }
-        }
+        font-family: PingFang SC, PingFang SC;
+        font-weight: 500;
+        font-size: 14px;
+        color: #ffffff;
+      }
     }
+  }
 }
 
 .forbidden {
-    opacity: .6;
+  opacity: 0.6;
 }
 </style>

+ 230 - 189
components/bottomModules/bottom2.vue

@@ -1,214 +1,255 @@
 <template>
-    <view class="box">
-        <view class="title">
-            免费帮您获取装修预算
-        </view>
-        <view class="total">
-            今日已有 <text class="num">258</text>位业主申请
-        </view>
-        <view class="input-box" hover-class="navigator-hover" @click="showBathroom = true">
-            <input type="digit" @input="onInput" placeholder="您房子的面积是多少?" style="color: #fff;"
-                placeholder-class="placeholder" />
-            <text class="unit">
-                m²
-            </text>
-        </view>
-        <view class="input-box" hover-class="navigator-hover" @click="showBathroom = true">
-            <view class="value">
-                {{ submitData.bathroom }}
-            </view>
-            <text class="iconfont icon-a-wodetiaozhuan" />
-        </view>
-        <u-action-sheet :actions="bathroomList" :show="showBathroom" cancelText="取消" @close="showBathroom = false"
-            @select="onSelect($event, 'bathroom')" />
-
-        <view class="input-box" hover-class="navigator-hover" @click="showWall = true">
-            <view class="value">
-                {{ submitData.wall }}
-            </view>
-            <text class="iconfont icon-a-wodetiaozhuan" />
-        </view>
-
-        <u-action-sheet :actions="wallList" :show="showWall" cancelText="取消" @close="showWall = false"
-            @select="onSelect($event, 'wall')" />
-
-        <view class="radio-box">
-            <u-radio-group v-model="submitData.type">
-                <u-radio v-for="item in radioList" style="margin-right: 20px;" :key="item.name" activeColor="#E3041F"
-                    labelColor="#FFFFFF" :customStyle="item.customStyle" :labelSize="tovw(14)" :label="item.name"
-                    :name="item.name" />
-            </u-radio-group>
-        </view>
-        <view class="submit" hover-class="navigator-hover" @click="toEstimate">
-            立即估算报价 <text class="iconfont icon-a-wodetiaozhuan" />
-        </view>
-        <view class="evenMore">
-            更多阳台空间、全屋顶墙柜门等报价,请咨询当地专卖店
-        </view>
+  <view class="box">
+    <view class="title"> 免费帮您获取装修预算 </view>
+    <view class="total"> 今日已有 <text class="num">258</text>位业主申请 </view>
+    <view class="input-box" hover-class="navigator-hover">
+      <input
+        type="digit"
+        @input="onInput"
+        placeholder="您房子的面积是多少?"
+        style="color: #fff"
+        placeholder-class="placeholder"
+      />
+      <text class="unit"> m² </text>
     </view>
+    <view
+      class="input-box"
+      hover-class="navigator-hover"
+      @click="showBathroom = true"
+    >
+      <view class="value">
+        {{ submitData.bathroom }}
+      </view>
+      <text class="iconfont icon-a-wodetiaozhuan" />
+    </view>
+    <u-action-sheet
+      :actions="bathroomList"
+      :show="showBathroom"
+      cancelText="取消"
+      @close="showBathroom = false"
+      @select="onSelect($event, 'bathroom')"
+    />
+
+    <view
+      class="input-box"
+      hover-class="navigator-hover"
+      @click="showWall = true"
+    >
+      <view class="value">
+        {{ submitData.wall }}
+      </view>
+      <text class="iconfont icon-a-wodetiaozhuan" />
+    </view>
+
+    <u-action-sheet
+      :actions="wallList"
+      :show="showWall"
+      cancelText="取消"
+      @close="showWall = false"
+      @select="onSelect($event, 'wall')"
+    />
+
+    <view class="radio-box">
+      <u-radio-group v-model="submitData.type">
+        <u-radio
+          v-for="item in radioList"
+          style="margin-right: 20px"
+          :key="item.name"
+          activeColor="#E3041F"
+          labelColor="#FFFFFF"
+          :customStyle="item.customStyle"
+          :labelSize="tovw(14)"
+          :label="item.name"
+          :name="item.name"
+        />
+      </u-radio-group>
+    </view>
+    <view class="submit" hover-class="navigator-hover" @click="toEstimate">
+      立即估算报价 <text class="iconfont icon-a-wodetiaozhuan" />
+    </view>
+    <view class="evenMore">
+      更多阳台空间、全屋顶墙柜门等报价,请咨询当地专卖店
+    </view>
+  </view>
 </template>
 
 <script>
 export default {
-    name: "bottom2",
-    data() {
-        return {
-            submitData: {
-                "area": "100",
-                "wall": "1个背景墙",
-                "bathroom": "1厨1卫",
-                "type": "毛坯房装修"
-            },
-            radioList: [{
-                name: "毛坯房装修",
-                customStyle: { marginRight: this.tovw(26) }
-            }, {
-                name: "旧房装修",
-                customStyle: { marginRight: this.tovw(26) }
-            }, {
-                name: "精装房焕新"
-            }],
-            showWall: false,
-            showBathroom: false,
-            bathroomList: [{
-                name: '0厨0卫',
-            }, {
-                name: '1厨1卫',
-            }, {
-                name: '1厨2卫',
-            }, {
-                name: '1厨3卫',
-            }, {
-                name: '1厨>3卫',
-            }],
-            wallList: [{
-                name: '0个背景墙',
-            }, {
-                name: '1个背景墙',
-            }, {
-                name: '2个背景墙',
-            }, {
-                name: '3个背景墙',
-            }, {
-                name: '>3个背景墙',
-            }]
-        }
-    },
-    methods: {
-        onSelect({ name }, key) {
-            this.submitData[key] = name;
+  name: "bottom2",
+  data() {
+    return {
+      submitData: {
+        area: "100",
+        wall: "1个背景墙",
+        bathroom: "1厨1卫",
+        type: "毛坯房装修",
+      },
+      radioList: [
+        {
+          name: "毛坯房装修",
+          customStyle: { marginRight: this.tovw(26) },
+        },
+        {
+          name: "旧房装修",
+          customStyle: { marginRight: this.tovw(26) },
+        },
+        {
+          name: "精装房焕新",
+        },
+      ],
+      showWall: false,
+      showBathroom: false,
+      bathroomList: [
+        {
+          name: "0厨0卫",
+        },
+        {
+          name: "1厨1卫",
+        },
+        {
+          name: "1厨2卫",
+        },
+        {
+          name: "1厨3卫",
+        },
+        {
+          name: "1厨>3卫",
+        },
+      ],
+      wallList: [
+        {
+          name: "0个背景墙",
+        },
+        {
+          name: "1个背景墙",
         },
-        onInput(e) {
-            this.submitData.area = e.detail.value;
-            console.log("submitData", this.submitData)
+        {
+          name: "2个背景墙",
         },
-        toEstimate() {
-            uni.navigateTo({
-                url: '/store/budget/result?data=' + JSON.stringify(this.submitData)
-            });
-        }
+        {
+          name: "3个背景墙",
+        },
+        {
+          name: ">3个背景墙",
+        },
+      ],
+    };
+  },
+  methods: {
+    onSelect({ name }, key) {
+      this.submitData[key] = name;
     },
-}
+    onInput(e) {
+      this.submitData.area = e.detail.value;
+      console.log("submitData", this.submitData);
+    },
+    toEstimate() {
+      uni.navigateTo({
+        url: "/store/budget/result?data=" + JSON.stringify(this.submitData),
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
 .box {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    width: 100vw;
-    padding: 30px 0;
-    background: radial-gradient(100% 0% at 50% 50%, #7E7E7E 0%, #787878 100%);
-
-    /deep/.placeholder {
-        color: #fff;
-        opacity: .6;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100vw;
+  padding: 30px 0;
+  background: radial-gradient(100% 0% at 50% 50%, #7e7e7e 0%, #787878 100%);
+
+  /deep/.placeholder {
+    color: #fff;
+    opacity: 0.6;
+  }
+
+  .title {
+    line-height: 22px;
+    font-family: PingFang SC, PingFang SC;
+    font-weight: 500;
+    font-size: 16px;
+    color: #ffffff;
+    letter-spacing: 1px;
+  }
+
+  .total {
+    line-height: 17px;
+    font-family: PingFang SC, PingFang SC;
+    font-size: 12px;
+    color: #ffffff;
+    margin-top: 5px;
+    letter-spacing: 1.5px;
+
+    .num {
+      color: #fc9228;
+      padding: 0 5px;
+      letter-spacing: 0px;
     }
+  }
 
-    .title {
-        line-height: 22px;
-        font-family: PingFang SC, PingFang SC;
-        font-weight: 500;
-        font-size: 16px;
-        color: #FFFFFF;
-        letter-spacing: 1px;
+  .input-box {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    width: 315px;
+    height: 45px;
+    background: rgba(255, 255, 255, 0.2);
+    border-radius: 2px;
+    border: 1px solid rgba(255, 255, 255, 0.2);
+    box-sizing: border-box;
+    padding: 0 10px;
+    margin-top: 10px;
+
+    .value {
+      color: #ffffff;
+      font-size: 14px;
     }
 
-    .total {
-        line-height: 17px;
-        font-family: PingFang SC, PingFang SC;
-        font-size: 12px;
-        color: #FFFFFF;
-        margin-top: 5px;
-        letter-spacing: 1.5px;
-
-        .num {
-            color: #FC9228;
-            padding: 0 5px;
-            letter-spacing: 0px;
-        }
+    .iconfont {
+      color: #ffffff;
+      transform: rotate(90deg);
     }
 
-    .input-box {
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        width: 315px;
-        height: 45px;
-        background: rgba(255, 255, 255, 0.2);
-        border-radius: 2px;
-        border: 1px solid rgba(255, 255, 255, 0.2);
-        box-sizing: border-box;
-        padding: 0 10px;
-        margin-top: 10px;
-
-        .value {
-            color: #FFFFFF;
-            font-size: 14px;
-        }
-
-        .iconfont {
-            color: #FFFFFF;
-            transform: rotate(90deg);
-        }
-
-        .unit {
-            color: #FFFFFF;
-        }
+    .unit {
+      color: #ffffff;
     }
+  }
 
-    .radio-box {
-        height: 20px;
-        line-height: 20px;
-        margin-top: 20px;
-    }
+  .radio-box {
+    height: 20px;
+    line-height: 20px;
+    margin-top: 20px;
+  }
 
-    .submit {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 315px;
-        height: 45px;
-        background: #FC9228;
-        border-radius: 2px;
-        font-family: PingFang SC, PingFang SC;
-        font-weight: 500;
-        font-size: 14px;
-        color: #FFFFFF;
-        margin-top: 20px;
-
-        .iconfont {
-            font-size: 12px;
-            margin-left: 4px;
-        }
-    }
-
-    .evenMore {
-        margin-top: 10px;
-        line-height: 17px;
-        font-family: PingFang SC, PingFang SC;
-        font-size: 12px;
-        color: rgba(255, 255, 255, 0.8);
+  .submit {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 315px;
+    height: 45px;
+    background: #fc9228;
+    border-radius: 2px;
+    font-family: PingFang SC, PingFang SC;
+    font-weight: 500;
+    font-size: 14px;
+    color: #ffffff;
+    margin-top: 20px;
+
+    .iconfont {
+      font-size: 12px;
+      margin-left: 4px;
     }
+  }
+
+  .evenMore {
+    margin-top: 10px;
+    line-height: 17px;
+    font-family: PingFang SC, PingFang SC;
+    font-size: 12px;
+    color: rgba(255, 255, 255, 0.8);
+  }
 }
 </style>

+ 92 - 72
packageA/advertising/modules/page.vue

@@ -1,96 +1,116 @@
 <template>
-    <view>
-        <block v-if="detail.type == 1">
-            <image v-for="(item, index) in detail.attinfos_pic" :key="item.attachmentid" class="image"
-                :src="item.attinfos[0].url" mode="widthFix" hover-class="navigator-hover" lazy-load="true"
-                @click="onClick(item, index)" />
-        </block>
-        <u-parse v-else-if="detail.type == 3" :content="detail.content" />
-        <bottomForm v-if="detail.sharepagecontrol.style_bottom" :bottomType="detail.sharepagecontrol.style_bottom"
-            :type="detail.sharepagecontrol.style_signup" ownertable="sat_sharematerial" :ownerid="detail.sat_sharematerialid" />
-        <view v-else style="height: 10px;" />
-    </view>
+  <view>
+    <block v-if="detail.type == 1">
+      <image
+        v-for="(item, index) in detail.attinfos_pic"
+        :key="item.attachmentid"
+        class="image"
+        :src="item.attinfos[0].url"
+        mode="widthFix"
+        hover-class="navigator-hover"
+        lazy-load="true"
+        @click="onClick(item, index)"
+      />
+    </block>
+    <u-parse v-else-if="detail.type == 3" :content="detail.content" />
+    <bottomForm
+      v-if="detail.sharepagecontrol.style_bottom"
+      :shareuserid="shareuserid"
+      :bottomType="detail.sharepagecontrol.style_bottom"
+      :type="detail.sharepagecontrol.style_signup"
+      ownertable="sat_sharematerial"
+      :ownerid="detail.sat_sharematerialid"
+    />
+    <view v-else style="height: 10px" />
+  </view>
 </template>
 
 <script>
 import { viewImage } from "../../../utils/settleFiles";
 export default {
-    name: "advertisingPage",
-    data() {
-        return {
-            detail: {
-                type: 1,//1图片 2视频 3图文
-                content: ""
-            },
-        }
+  name: "advertisingPage",
+  props: {
+    shareuserid: {
+      type: [String, Number],
+      default: 0,
     },
-    methods: {
-        getDetail(id) {
-            return new Promise((resolve, reject) => {
-                this.$Http.basic({
-                    "id": "20240408131902",
-                    "content": {
-                        "sat_sharematerialid": id
-                    }
-                }).then(res => {
-                    console.log('获取长图文详情', res)
-                    if (this.cutoff(res.msg)) return;
-                    let tips = '';
-                    if (!res.data.status) {
-                        tips = '数据已过期'
-                    } else {
-                        if (res.data.status != '发布') tips = '敬请期待!'
-                    };
-
-                    if (tips) {
-                        uni.showModal({
-                            title: '提示',
-                            content: tips,
-                            showCancel: false,
-                            complete: (complete) => {
-                                uni.navigateBack();
-                            },
-                        })
-                    } else {
-                        this.detail = res.data;
-                        resolve(res.data)
-                        uni.setNavigationBarTitle({
-                            title: res.data.title,
-                        })
-                    }
-                })
-            })
+  },
+  data() {
+    return {
+      detail: {
+        type: 1, //1图片 2视频 3图文
+        content: "",
+      },
+    };
+  },
+  methods: {
+    getDetail(id) {
+      return new Promise((resolve, reject) => {
+        this.$Http
+          .basic({
+            id: "20240408131902",
+            content: {
+              sat_sharematerialid: id,
+            },
+          })
+          .then((res) => {
+            console.log("获取长图文详情", res);
+            if (this.cutoff(res.msg)) return;
+            let tips = "";
+            if (!res.data.status) {
+              tips = "数据已过期";
+            } else {
+              if (res.data.status != "发布") tips = "敬请期待!";
+            }
 
-        },
-        onClick(item, index) {
-            console.log(item, index)
-            if (item.jumpurl) {
-                uni.navigateTo({
-                    url: item.jumpurl,
-                    fail: (fail) => {
-                        viewImage(item.attinfos[0].url)
-                    },
-                })
+            if (tips) {
+              uni.showModal({
+                title: "提示",
+                content: tips,
+                showCancel: false,
+                complete: (complete) => {
+                  uni.navigateBack();
+                },
+              });
             } else {
-                viewImage(item.attinfos[0].url)
+              this.detail = res.data;
+              resolve(res.data);
+              uni.setNavigationBarTitle({
+                title: res.data.title,
+              });
             }
-        }
+          });
+      });
     },
-}
+    onClick(item, index) {
+      console.log(item, index);
+      if (item.jumpurl) {
+        uni.navigateTo({
+          url: item.jumpurl,
+          fail: (fail) => {
+            viewImage(item.attinfos[0].url);
+          },
+        });
+      } else {
+        viewImage(item.attinfos[0].url);
+      }
+    },
+  },
+};
 </script>
 
 <style lang="scss" >
 image,
 img {
-    display: block;
-    vertical-align: bottom;
+  display: block;
+  vertical-align: bottom;
 }
 
 .image {
-    width: 100vw;
+  width: 100vw;
 }
 
 .image:first-child {
-    margin-top: 0;
+  margin-top: 0;
 }
 </style>

+ 2 - 1
packageA/advertising/shareable.vue

@@ -1,6 +1,6 @@
 <template>
   <view>
-    <page ref="list" />
+    <page :shareuserid="shareUserid" ref="list" />
   </view>
 </template>
 
@@ -13,6 +13,7 @@ export default {
     return {
       id: "",
       detail: {},
+      shareUserid: 0,
     };
   },
   onLoad(options) {

+ 2 - 0
packageCase/imgs/detail.vue

@@ -113,6 +113,7 @@
     </view>
     <bottomForm
       type="效果图"
+      :shareuserid="shareUserid"
       ownertable="sat_sharematerial"
       :ownerid="sat_sharematerialid"
     />
@@ -142,6 +143,7 @@ export default {
         },
       },
       productList: [],
+      shareUserid: 0,
     };
   },
   onLoad(options) {

+ 7 - 1
packageCase/product/detail.vue

@@ -81,7 +81,12 @@
         </l-painter-view>
       </l-painter>
     </view>
-    <bottomForm type="产品" ownertable="sa_fad" :ownerid="sa_fadid" />
+    <bottomForm
+      :shareuserid="shareUserid"
+      type="产品"
+      ownertable="sa_fad"
+      :ownerid="sa_fadid"
+    />
   </view>
 </template>
 
@@ -99,6 +104,7 @@ export default {
       detail: {},
       slides: [],
       collectLoading: false,
+      shareUserid: 0,
     };
   },
   onLoad(options) {

+ 2 - 0
store/budget/result.vue

@@ -17,6 +17,7 @@
     <bottomForm
       submitType="品质服务"
       :extrajson="extrajson"
+      :shareuserid="shareUserid"
       typemx="装修预算"
     />
   </view>
@@ -33,6 +34,7 @@ export default {
         max: 0,
       },
       sa_storeid: 0,
+      shareUserid: 0,
     };
   },
   onLoad(options) {