|
@@ -18,11 +18,17 @@
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 关联项目 -->
|
|
<!-- 关联项目 -->
|
|
|
<div class="image-selection padded-lr-20" v-show="projectBoxShow">
|
|
<div class="image-selection padded-lr-20" v-show="projectBoxShow">
|
|
|
- <div class="project-placeholder">
|
|
|
|
|
|
|
+ <div class="project-box">
|
|
|
|
|
+ <div class="project-overlay" v-show="overlayShow"></div>
|
|
|
<div class="project-add-box">
|
|
<div class="project-add-box">
|
|
|
- <span style="font-weight: 700;"><span style="color: red;margin-right: 5px;">*</span>关联项目</span>
|
|
|
|
|
|
|
+ <div class="fws-change-box" @click="overlayShow = !overlayShow">
|
|
|
|
|
+ <span class="fws-code">{{fwsCode}}</span>
|
|
|
|
|
+ <span class="change-txt">切换</span>
|
|
|
|
|
+ <van-icon v-show="!overlayShow" name="arrow-down" color="#0057BA" />
|
|
|
|
|
+ <van-icon v-show="overlayShow" name="arrow-up" color="#0057BA" />
|
|
|
|
|
+ </div>
|
|
|
<van-popover placement="bottom-end" :offset="[17, 4]" v-model="showProjectPopover" theme="dark"
|
|
<van-popover placement="bottom-end" :offset="[17, 4]" v-model="showProjectPopover" theme="dark"
|
|
|
- trigger="click">
|
|
|
|
|
|
|
+ trigger="click">
|
|
|
<div role="menu" class="van-popover__content">
|
|
<div role="menu" class="van-popover__content">
|
|
|
<div role="menuitem" class="van-popover__action van-popover__action--with-icon" @click="toProjectLink">
|
|
<div role="menuitem" class="van-popover__action van-popover__action--with-icon" @click="toProjectLink">
|
|
|
<img width="30px" :src="require('@/assets/AIDesign/projectIcon.png')" alt="">
|
|
<img width="30px" :src="require('@/assets/AIDesign/projectIcon.png')" alt="">
|
|
@@ -34,29 +40,50 @@
|
|
|
</template>
|
|
</template>
|
|
|
</van-popover>
|
|
</van-popover>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="list-item-checked" v-if="checkedProject != null">
|
|
|
|
|
- <div class="title-item" v-show="checkedProject.fulladdress">
|
|
|
|
|
- <span class="title" style="text-align: left;">{{ checkedProject.fulladdress }}</span>
|
|
|
|
|
- <span class="status">已报备</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="user-item" v-show="checkedProject.contact">
|
|
|
|
|
- <van-icon name="user-o" />
|
|
|
|
|
- <span class="txt">{{ checkedProject.contact }}</span>
|
|
|
|
|
|
|
+ <div class="check-list-box" v-show="overlayShow">
|
|
|
|
|
+ <van-radio-group v-model="fwsRadioValue">
|
|
|
|
|
+ <van-cell-group>
|
|
|
|
|
+ <van-cell clickable v-for="(item,index) in fwsList" :key="index" @click="radioClick(item.shop_code,item.shop_name)">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <van-radio :name="item.shop_code" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template #title>
|
|
|
|
|
+ <div :class="fwsRadioValue == item.shop_code ? 'list-label-checked' : 'list-label'">
|
|
|
|
|
+ <span class="code">{{item.shop_code}}</span>
|
|
|
|
|
+ <span class="value">{{item.shop_name}}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-cell>
|
|
|
|
|
+ </van-cell-group>
|
|
|
|
|
+ </van-radio-group>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="project-placeholder">
|
|
|
|
|
+ <div style="font-weight: 700;width: 100%;text-align: left;margin-bottom: 10px;"><span style="color: red;margin-right: 5px;">*</span>关联项目</div>
|
|
|
|
|
+ <div class="point-box">已有积分:<span>{{projectPoint}}</span></div>
|
|
|
|
|
+ <div class="list-item-checked" v-if="checkedProject != null">
|
|
|
|
|
+ <div class="title-item" v-show="checkedProject.fulladdress">
|
|
|
|
|
+ <span class="title" style="text-align: left;">{{ checkedProject.fulladdress }}</span>
|
|
|
|
|
+ <span class="status">已报备</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="user-item" v-show="checkedProject.contact">
|
|
|
|
|
+ <van-icon name="user-o" />
|
|
|
|
|
+ <span class="txt">{{ checkedProject.contact }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="user-item" v-show="checkedProject.tel">
|
|
|
|
|
+ <van-icon name="phone-o" />
|
|
|
|
|
+ <span class="txt">{{ checkedProject.tel }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="user-item">
|
|
|
|
|
+ <van-icon name="info-o" color="#D43030" />
|
|
|
|
|
+ <span class="txt" style="color: #D43030;">已生成套数:{{ checkedProject.DesignCount }}</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="user-item" v-show="checkedProject.tel">
|
|
|
|
|
- <van-icon name="phone-o" />
|
|
|
|
|
- <span class="txt">{{ checkedProject.tel }}</span>
|
|
|
|
|
|
|
+ <div class="placeholder" style="width: 100%">
|
|
|
|
|
+ <p v-if="checkedProject == null" class="placeholder-text">当前暂无已关联的项目,请选择已报备项目</p>
|
|
|
|
|
+ <van-button type="primary" color="#2484F2" block @click="chooseProject" :loading="showChooseProject"
|
|
|
|
|
+ :disabled="showChooseProject" loading-type="spinner" loading-text="选择项目"
|
|
|
|
|
+ style="width: 80%;margin-left: 10%;">选择项目</van-button>
|
|
|
</div>
|
|
</div>
|
|
|
- <!-- <div class="user-item">
|
|
|
|
|
- <van-icon name="info-o" color="#D43030" />
|
|
|
|
|
- <span class="txt" style="color: #D43030;">剩余免费生成次数:{{ checkedProject.AvailableQuantity }}</span>
|
|
|
|
|
- </div> -->
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="placeholder" style="width: 100%">
|
|
|
|
|
- <p v-if="checkedProject == null" class="placeholder-text">当前暂无已关联的项目,请选择已报备项目</p>
|
|
|
|
|
- <van-button type="primary" color="#2484F2" block @click="chooseProject" :loading="showChooseProject"
|
|
|
|
|
- :disabled="showChooseProject" loading-type="spinner" loading-text="选择项目"
|
|
|
|
|
- style="width: 80%;margin-left: 10%;">选择项目</van-button>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -103,16 +130,29 @@
|
|
|
</template>
|
|
</template>
|
|
|
</van-popover>
|
|
</van-popover>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="option-grid stone-colors-grid" ref="designsRef">
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <div class="option-grid stone-colors-grid" ref="designsRef" @mousedown="handleMouseDown"
|
|
|
|
|
+ @mousemove="handleMouseMove" @mouseup="handleMouseUp" @mouseleave="handleMouseUp">
|
|
|
<div v-for="(style, index) in designStyles" :key="index" class="option-item"
|
|
<div v-for="(style, index) in designStyles" :key="index" class="option-item"
|
|
|
- :class="{ active: DesignStyle === style.value }" @click="selectStyle(style.value, 'designsRef', index)">
|
|
|
|
|
|
|
+ :class="{ active: DesignStyle === style.value }" @click="selectStyle(style.value, 'designsRef', index)">
|
|
|
<img :src="imgBaseUrl + style.imgPath" alt="" class="style-image" />
|
|
<img :src="imgBaseUrl + style.imgPath" alt="" class="style-image" />
|
|
|
- <div class="style-name">{{ style.text }}</div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="rightArrows">
|
|
|
|
|
- <img width="12" :src="require('@/assets/AIDesign/rightjt.png')" />
|
|
|
|
|
|
|
+ <div class="split-name">{{ style.text }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div class="rightArrows">
|
|
|
|
|
+ <img width="12" :src="require('@/assets/AIDesign/rightjt.png')" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!--<div class="option-grid stone-colors-grid" ref="designsRef">-->
|
|
|
|
|
+ <!--<div v-for="(style, index) in designStyles" :key="index" class="option-item"-->
|
|
|
|
|
+ <!--:class="{ active: DesignStyle === style.value }" @click="selectStyle(style.value, 'designsRef', index)">-->
|
|
|
|
|
+ <!--<img :src="imgBaseUrl + style.imgPath" alt="" class="style-image" />-->
|
|
|
|
|
+ <!--<div class="style-name">{{ style.text }}</div>-->
|
|
|
|
|
+ <!--</div>-->
|
|
|
|
|
+ <!--<div class="rightArrows">-->
|
|
|
|
|
+ <!--<img width="12" :src="require('@/assets/AIDesign/rightjt.png')" />-->
|
|
|
|
|
+ <!--</div>-->
|
|
|
|
|
+ <!--</div>-->
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 仿石漆电子色卡 -->
|
|
<!-- 仿石漆电子色卡 -->
|
|
@@ -316,7 +356,7 @@
|
|
|
<div class="generate-section padded-lr-20">
|
|
<div class="generate-section padded-lr-20">
|
|
|
<van-button v-show="AIBtnDisabled" type="primary" block color="#E87838" disabled loading loading-type="spinner"
|
|
<van-button v-show="AIBtnDisabled" type="primary" block color="#E87838" disabled loading loading-type="spinner"
|
|
|
loading-text="AI生成"></van-button>
|
|
loading-text="AI生成"></van-button>
|
|
|
- <van-button v-show="!AIBtnDisabled" type="primary" block @click="generateDesign"
|
|
|
|
|
|
|
+ <van-button v-show="!AIBtnDisabled" type="primary" block @click="beforeGenerateDesign"
|
|
|
color="#E87838">AI生成</van-button>
|
|
color="#E87838">AI生成</van-button>
|
|
|
<div class="btn-note">*效果图仅供参考, 不作为交付标准</div>
|
|
<div class="btn-note">*效果图仅供参考, 不作为交付标准</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -355,7 +395,7 @@
|
|
|
<van-button type="primary" size="mini" color="#2484F2" class="btn" @click="onSearch">搜索</van-button>
|
|
<van-button type="primary" size="mini" color="#2484F2" class="btn" @click="onSearch">搜索</van-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div style="width: 90%;height: 50px;"></div>
|
|
|
|
|
|
|
+ <div style="width: 90%;height: 55px;"></div>
|
|
|
<div class="list-item" :style="checkedProjectId == index ? 'border: 1px solid #2484F2;' : ''"
|
|
<div class="list-item" :style="checkedProjectId == index ? 'border: 1px solid #2484F2;' : ''"
|
|
|
v-for="(item, index) in projectList" :key="index" @click="checkedProjectId = index">
|
|
v-for="(item, index) in projectList" :key="index" @click="checkedProjectId = index">
|
|
|
<div class="title-item">
|
|
<div class="title-item">
|
|
@@ -370,10 +410,10 @@
|
|
|
<van-icon name="phone-o" />
|
|
<van-icon name="phone-o" />
|
|
|
<span class="txt">{{ item.tel }}</span>
|
|
<span class="txt">{{ item.tel }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
- <!-- <div class="user-item">
|
|
|
|
|
|
|
+ <div class="user-item">
|
|
|
<van-icon name="info-o" color="#D43030" />
|
|
<van-icon name="info-o" color="#D43030" />
|
|
|
- <span class="txt" style="color: #D43030;">剩余免费生成次数:{{ item.AvailableQuantity }}</span>
|
|
|
|
|
- </div> -->
|
|
|
|
|
|
|
+ <span class="txt" style="color: #D43030;">已生成套数:{{ item.DesignCount }}</span>
|
|
|
|
|
+ </div>
|
|
|
<div class="img-item" v-show="checkedProjectId == index">
|
|
<div class="img-item" v-show="checkedProjectId == index">
|
|
|
<img src="../../assets/AIDesign/project_checked.png" class="img-checked">
|
|
<img src="../../assets/AIDesign/project_checked.png" class="img-checked">
|
|
|
</div>
|
|
</div>
|
|
@@ -394,12 +434,39 @@
|
|
|
<div class="dialog-btn" @click="dialogShow = false">知道了</div>
|
|
<div class="dialog-btn" @click="dialogShow = false">知道了</div>
|
|
|
</div>
|
|
</div>
|
|
|
</van-dialog>
|
|
</van-dialog>
|
|
|
|
|
+ <van-dialog v-model="pointDialogShow1" :show-confirm-button="false" style="overflow: visible;">
|
|
|
|
|
+ <div class="dialog-point-box">
|
|
|
|
|
+ <div class="title">AI生图<span class="txt-color1"> 积分轻松抵</span></div>
|
|
|
|
|
+ <div class="content">已有积分:<span class="txt-color2">{{projectPoint}}</span></div>
|
|
|
|
|
+ <div class="content">成功生图限时折扣
|
|
|
|
|
+ <img src="../../assets/AIDesign/point-dialog-icon-success.png" class="point-icon-small">
|
|
|
|
|
+ <span class="txt-color1" style="font-size: 22px;">100</span>
|
|
|
|
|
+ <span class="txt-color1">/次</span>
|
|
|
|
|
+ <span class="txt-color2" style="text-decoration: line-through;color: #999999;margin-left: 5px;">500</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="content" style="font-size: 12px;">*AI设计属虚拟产品,生图成功后无法退还积分</div>
|
|
|
|
|
+ <div class="dialog-btn-point1" @click="pointDialogSure">确认生成</div>
|
|
|
|
|
+ <div class="dialog-btn-point2" @click="pointDialogShow1 = false">稍后再说</div>
|
|
|
|
|
+ <img src="../../assets/AIDesign/point-dialog-icon-success.png" class="point-icon">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </van-dialog>
|
|
|
|
|
+ <van-dialog v-model="pointDialogShow2" :show-confirm-button="false" style="overflow: visible;">
|
|
|
|
|
+ <div class="dialog-point-box">
|
|
|
|
|
+ <div class="title txt-color1">本次生图失败</div>
|
|
|
|
|
+ <div class="content">失败原因:您的积分不足</div>
|
|
|
|
|
+ <div class="content">使用积分:<span class="txt-color2">0</span></div>
|
|
|
|
|
+ <div class="content">剩余积分:<span class="txt-color2">{{projectPoint}}</span></div>
|
|
|
|
|
+ <div class="content">小提示:可完成项目交付获取更多积分~</div>
|
|
|
|
|
+ <div class="dialog-btn-point2" style="margin-top: 20px;" @click="pointDialogShow2 = false">我知道了</div>
|
|
|
|
|
+ <img src="../../assets/AIDesign/point-dialog-icon-fail.png" class="point-icon">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </van-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
|
import { Component, Vue } from "vue-property-decorator";
|
|
import { Component, Vue } from "vue-property-decorator";
|
|
|
-import { CreateDesign, GetEntity, GetReadState, UpdateReadState, GetProjectlist, GetDictList } from "@/api/indexAI";
|
|
|
|
|
|
|
+import { CreateDesign, GetEntity, GetReadState, UpdateReadState, GetProjectlist, GetDictList, GetPoints } from "@/api/indexAI";
|
|
|
import { ImagePreview, Popover } from 'vant';
|
|
import { ImagePreview, Popover } from 'vant';
|
|
|
import { Dialog } from 'vant';
|
|
import { Dialog } from 'vant';
|
|
|
import { getWecomType, toLBHome, toXiaoChengxu } from '@/utils/index';
|
|
import { getWecomType, toLBHome, toXiaoChengxu } from '@/utils/index';
|
|
@@ -447,6 +514,7 @@ export default class extends Vue {
|
|
|
private dialogContent = '';
|
|
private dialogContent = '';
|
|
|
private AIBtnDisabled = false;
|
|
private AIBtnDisabled = false;
|
|
|
private projectBoxShow = false;
|
|
private projectBoxShow = false;
|
|
|
|
|
+ private freetimes = 0;
|
|
|
private save_projectBoxShow_org = false;
|
|
private save_projectBoxShow_org = false;
|
|
|
private projectSearchValue = '';
|
|
private projectSearchValue = '';
|
|
|
private checkedProjectId = null;
|
|
private checkedProjectId = null;
|
|
@@ -503,7 +571,16 @@ export default class extends Vue {
|
|
|
private popover_actions = [{ text: "风格主要对应罗马柱类型,请按需选择", className: "actionsTit" }];
|
|
private popover_actions = [{ text: "风格主要对应罗马柱类型,请按需选择", className: "actionsTit" }];
|
|
|
private showChooseProject = false;
|
|
private showChooseProject = false;
|
|
|
private showProjectPopover = false;
|
|
private showProjectPopover = false;
|
|
|
- created() {
|
|
|
|
|
|
|
+ private projectPoint = '';
|
|
|
|
|
+ private pointDialogShow1 = false;
|
|
|
|
|
+ private pointDialogShow2 = false;
|
|
|
|
|
+ private fwsCode = '';
|
|
|
|
|
+ private fwsName = '';
|
|
|
|
|
+ private fwsList = [];
|
|
|
|
|
+ private fwsRadioValue = '';
|
|
|
|
|
+ private overlayShow = false;
|
|
|
|
|
+
|
|
|
|
|
+ created() {
|
|
|
// 图片头
|
|
// 图片头
|
|
|
if (window.location.href.indexOf('aidesign.') > -1) {
|
|
if (window.location.href.indexOf('aidesign.') > -1) {
|
|
|
this.imgBaseUrl = 'https://aidesign.nipponpaint.com.cn'
|
|
this.imgBaseUrl = 'https://aidesign.nipponpaint.com.cn'
|
|
@@ -530,6 +607,7 @@ export default class extends Vue {
|
|
|
this.AIBtnDisabled = false;
|
|
this.AIBtnDisabled = false;
|
|
|
this.checkedProjectId = null;
|
|
this.checkedProjectId = null;
|
|
|
this.checkedProject = null;
|
|
this.checkedProject = null;
|
|
|
|
|
+ this.freetimes = 0;
|
|
|
this.oldf_id = null;
|
|
this.oldf_id = null;
|
|
|
this.Userfile1 = null;
|
|
this.Userfile1 = null;
|
|
|
this.DesignStyle = null;
|
|
this.DesignStyle = null;
|
|
@@ -549,6 +627,7 @@ export default class extends Vue {
|
|
|
this.startIndex = 0;
|
|
this.startIndex = 0;
|
|
|
this.currentIndex = 0;
|
|
this.currentIndex = 0;
|
|
|
this.currentTitle = null;
|
|
this.currentTitle = null;
|
|
|
|
|
+ this.overlayShow = false;
|
|
|
this.activeName = "外墙质感";// tab选中的项
|
|
this.activeName = "外墙质感";// tab选中的项
|
|
|
this.color_selItem = null;//选中的外墙平涂
|
|
this.color_selItem = null;//选中的外墙平涂
|
|
|
this.color_options = [];//外墙平涂列表
|
|
this.color_options = [];//外墙平涂列表
|
|
@@ -574,7 +653,9 @@ export default class extends Vue {
|
|
|
private getServiceCode() {
|
|
private getServiceCode() {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
- let serviceCodeArray = [];
|
|
|
|
|
|
|
+ const checkedFwsInfo: any = JSON.parse(window.localStorage.getItem("pageDesignfwsRadioValue")!);
|
|
|
|
|
+ let serviceCodeArray = [];
|
|
|
|
|
+ let serviceObjArray = [];
|
|
|
// if (userInfo && userInfo.loginTypeList && userInfo.loginTypeList.length > 0) {
|
|
// if (userInfo && userInfo.loginTypeList && userInfo.loginTypeList.length > 0) {
|
|
|
// userInfo.loginTypeList.forEach(item => {
|
|
// userInfo.loginTypeList.forEach(item => {
|
|
|
// if (item.shopType == 'stoneLikePaint') {
|
|
// if (item.shopType == 'stoneLikePaint') {
|
|
@@ -586,8 +667,25 @@ export default class extends Vue {
|
|
|
// }
|
|
// }
|
|
|
if (userInfo && userInfo.ServiceCode) {
|
|
if (userInfo && userInfo.ServiceCode) {
|
|
|
serviceCodeArray = userInfo.ServiceCode.split(',').map(item => item.trim()).filter(item => item !== '');
|
|
serviceCodeArray = userInfo.ServiceCode.split(',').map(item => item.trim()).filter(item => item !== '');
|
|
|
|
|
+ userInfo.ServiceCode.split(',').forEach((item,index)=>{
|
|
|
|
|
+ let obj = {};
|
|
|
|
|
+ obj.shop_code = item;
|
|
|
|
|
+ obj.shop_name = userInfo.ServiceName.split(',')[index];
|
|
|
|
|
+ serviceObjArray.push(obj);
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
+ that.fwsList = serviceObjArray;
|
|
|
that.serviceCodeArray = serviceCodeArray;
|
|
that.serviceCodeArray = serviceCodeArray;
|
|
|
|
|
+ if (checkedFwsInfo){
|
|
|
|
|
+ const serviceCodeIndex = serviceObjArray.findIndex(item => item.shop_code == checkedFwsInfo.shop_code);
|
|
|
|
|
+ if (serviceCodeIndex == -1){
|
|
|
|
|
+ that.radioClick(serviceObjArray[0].shop_code,serviceObjArray[0].shop_name,true);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ that.radioClick(checkedFwsInfo.shop_code,checkedFwsInfo.shop_name,true);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ that.radioClick(serviceObjArray[0].shop_code,serviceObjArray[0].shop_name,true);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
// 处理文件选择(对应 beforeRead + afterRead)
|
|
// 处理文件选择(对应 beforeRead + afterRead)
|
|
|
handleFileChange(e) {
|
|
handleFileChange(e) {
|
|
@@ -665,6 +763,24 @@ export default class extends Vue {
|
|
|
ImagePreview([url]);
|
|
ImagePreview([url]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ radioClick(code,value,isClearCheckedProject = true){
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ that.fwsName = value;
|
|
|
|
|
+ that.fwsCode = code;
|
|
|
|
|
+ that.fwsRadioValue = code;
|
|
|
|
|
+ let overviewRadioValue = {
|
|
|
|
|
+ shop_code:code,
|
|
|
|
|
+ shop_name:value
|
|
|
|
|
+ }
|
|
|
|
|
+ that.GetPointsFn();
|
|
|
|
|
+ if (isClearCheckedProject){
|
|
|
|
|
+ that.checkedProject = null;
|
|
|
|
|
+ that.checkedProjectId = null;
|
|
|
|
|
+ }
|
|
|
|
|
+ window.localStorage.setItem("pageDesignfwsRadioValue", JSON.stringify(overviewRadioValue));
|
|
|
|
|
+ that.overlayShow = false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 处理罗马柱
|
|
// 处理罗马柱
|
|
|
openComponentPreview(initIndex: number, list) {
|
|
openComponentPreview(initIndex: number, list) {
|
|
|
if (list.length > 0) {
|
|
if (list.length > 0) {
|
|
@@ -684,6 +800,18 @@ export default class extends Vue {
|
|
|
this.currentTitle = this.titlesArray[index] || "无标题";
|
|
this.currentTitle = this.titlesArray[index] || "无标题";
|
|
|
this.currentIndex = index;
|
|
this.currentIndex = index;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ GetPointsFn(){
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ const formData = new FormData();
|
|
|
|
|
+ formData.append('serviceCode', that.fwsCode);
|
|
|
|
|
+ GetPoints(formData).then(response => {
|
|
|
|
|
+ if (response.StatusCode == 200) {
|
|
|
|
|
+ that.projectPoint = response.Data.point;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
GetReadStateFn() {
|
|
GetReadStateFn() {
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
@@ -719,36 +847,85 @@ export default class extends Vue {
|
|
|
if (response.Data.F_UserFilePath) {
|
|
if (response.Data.F_UserFilePath) {
|
|
|
this.selectedImage = response.Data.BaseUrl + response.Data.F_UserFilePath;
|
|
this.selectedImage = response.Data.BaseUrl + response.Data.F_UserFilePath;
|
|
|
}
|
|
}
|
|
|
|
|
+ //设计风格
|
|
|
if (response.Data.F_Color) {
|
|
if (response.Data.F_Color) {
|
|
|
this.DesignStyle = this.designStyles[0].value;
|
|
this.DesignStyle = this.designStyles[0].value;
|
|
|
} else {
|
|
} else {
|
|
|
- this.DesignStyle = this.cardValueFindIndex(response.Data.F_DesignStyle,this.designStyles) == -1 ? this.designStyles[0].value : response.Data.F_DesignStyle;
|
|
|
|
|
- // this.DesignStyle = response.Data.F_DesignStyle || this.designStyles[0].value;
|
|
|
|
|
|
|
+ let DesignStyleIndex = this.cardValueFindIndex(response.Data.F_DesignStyle,this.designStyles);
|
|
|
|
|
+ if (DesignStyleIndex == -1){
|
|
|
|
|
+ this.DesignStyle = this.designStyles[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectStyle(response.Data.F_DesignStyle,'designsRef',DesignStyleIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //仿石漆电子色卡
|
|
|
|
|
+ let ColorCardIndex = this.cardValueFindIndex(response.Data.F_ColorCard,this.stoneColors);
|
|
|
|
|
+ if (ColorCardIndex == -1) {
|
|
|
|
|
+ this.ColorCard = this.stoneColors[0].value;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ this.selectColor(response.Data.F_ColorCard,'stoneColorsRef',ColorCardIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ //墙面工艺
|
|
|
|
|
+ let selectedProcessIndex = this.cardValueFindIndex(response.Data.F_DeepGrooveTech,this.deepSlotProcesses);
|
|
|
|
|
+ if (selectedProcessIndex == -1){
|
|
|
|
|
+ this.selectedProcess = this.deepSlotProcesses[0].value;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ this.selectProcess(response.Data.F_DeepGrooveTech,'processesRef',selectedProcessIndex);
|
|
|
}
|
|
}
|
|
|
- this.ColorCard = this.cardValueFindIndex(response.Data.F_ColorCard,this.stoneColors) == -1 ? this.stoneColors[0].value : response.Data.F_ColorCard;
|
|
|
|
|
- // this.ColorCard = response.Data.F_ColorCard || this.stoneColors[0].value;
|
|
|
|
|
- this.selectedProcess = this.cardValueFindIndex(response.Data.F_DeepGrooveTech,this.deepSlotProcesses) == -1 ? this.deepSlotProcesses[0].value : response.Data.F_DeepGrooveTech;
|
|
|
|
|
- // this.selectedProcess = response.Data.F_DeepGrooveTech || this.deepSlotProcesses[0].value;
|
|
|
|
|
// 有墙面工艺
|
|
// 有墙面工艺
|
|
|
if (this.selectedProcess && this.selectedProcess != '平涂') {
|
|
if (this.selectedProcess && this.selectedProcess != '平涂') {
|
|
|
const selectedProcessSelctIndex = this.deepSlotProcesses.findIndex(item => item.value === this.selectedProcess);
|
|
const selectedProcessSelctIndex = this.deepSlotProcesses.findIndex(item => item.value === this.selectedProcess);
|
|
|
// 墙面分割线选项
|
|
// 墙面分割线选项
|
|
|
this.splitWays = this.deepSlotProcesses[selectedProcessSelctIndex].subitems;
|
|
this.splitWays = this.deepSlotProcesses[selectedProcessSelctIndex].subitems;
|
|
|
- this.selectedSplit = this.cardValueFindIndex(response.Data.F_DivisionMethod,this.splitWays) == -1 ? this.splitWays[0].value : response.Data.F_DivisionMethod;
|
|
|
|
|
- // this.selectedSplit = response.Data.F_DivisionMethod || this.splitWays[0].value;
|
|
|
|
|
|
|
+ let selectedSplitIndex = this.cardValueFindIndex(response.Data.F_DivisionMethod,this.splitWays);
|
|
|
|
|
+ if (selectedSplitIndex == -1){
|
|
|
|
|
+ this.selectedSplit = this.splitWays[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectSplit(response.Data.F_DivisionMethod,'splitsRef',selectedSplitIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //窗套颜色
|
|
|
|
|
+ let selectedWindowFrameIndex = this.cardValueFindIndex(response.Data.F_WindowsColor,this.windowFrames);
|
|
|
|
|
+ if (selectedWindowFrameIndex == -1){
|
|
|
|
|
+ this.selectedWindowFrame = this.windowFrames[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectWindowFrame(response.Data.F_WindowsColor,'windowsRef',selectedWindowFrameIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ //栏杆
|
|
|
|
|
+ let selectedRailingIndex = this.cardValueFindIndex(response.Data.F_CastRailing,this.railings);
|
|
|
|
|
+ if (selectedRailingIndex == -1){
|
|
|
|
|
+ this.selectedRailing = this.railings[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectRailing(response.Data.F_CastRailing,'railingsRef',selectedRailingIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ //新琉璃瓦
|
|
|
|
|
+ let selectedTileIndex = this.cardValueFindIndex(response.Data.F_GlazedTile,this.tiles);
|
|
|
|
|
+ if (selectedTileIndex == -1){
|
|
|
|
|
+ this.selectedTile = this.tiles[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectTile(response.Data.F_GlazedTile,'tilesRef',selectedTileIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ //墙裙
|
|
|
|
|
+ let selectedSkirtTypeIndex = this.cardValueFindIndex(response.Data.F_SkirtType,this.skirtTypes);
|
|
|
|
|
+ if (selectedSkirtTypeIndex == -1){
|
|
|
|
|
+ this.selectedSkirtType = this.skirtTypes[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectSkirtType(response.Data.F_SkirtType,'skirtTypesRef',selectedSkirtTypeIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ //浮雕
|
|
|
|
|
+ let selectedReliefTypeIndex = this.cardValueFindIndex(response.Data.F_carvingType,this.outsideRelief);
|
|
|
|
|
+ if (selectedReliefTypeIndex == -1){
|
|
|
|
|
+ this.selectedReliefType = this.outsideRelief[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectReliefType(response.Data.F_carvingType, 'outsideReliefRef', selectedReliefTypeIndex)
|
|
|
|
|
+ }
|
|
|
|
|
+ //窗套样式
|
|
|
|
|
+ let selectedWindowStyleIndex = this.cardValueFindIndex(response.Data.F_WindowsStyle,this.WindowStyle);
|
|
|
|
|
+ if (selectedWindowStyleIndex == -1){
|
|
|
|
|
+ this.selectedWindowStyle = this.WindowStyle[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectWindowStyle(response.Data.F_WindowsStyle, 'WindowStyleRef', selectedWindowStyleIndex)
|
|
|
}
|
|
}
|
|
|
- this.selectedWindowFrame = this.cardValueFindIndex(response.Data.F_WindowsColor,this.windowFrames) == -1 ? this.windowFrames[0].value : response.Data.F_WindowsColor;
|
|
|
|
|
- // this.selectedWindowFrame = response.Data.F_WindowsColor || this.windowFrames[0].value;
|
|
|
|
|
- this.selectedRailing = this.cardValueFindIndex(response.Data.F_CastRailing,this.railings) == -1 ? this.railings[0].value : response.Data.F_CastRailing;
|
|
|
|
|
- // this.selectedRailing = response.Data.F_CastRailing || this.railings[0].value;
|
|
|
|
|
- this.selectedTile = this.cardValueFindIndex(response.Data.F_GlazedTile,this.tiles) == -1 ? this.tiles[0].value : response.Data.F_GlazedTile;
|
|
|
|
|
- // this.selectedTile = response.Data.F_GlazedTile || this.tiles[0].value;//新琉璃瓦
|
|
|
|
|
- this.selectedSkirtType = this.cardValueFindIndex(response.Data.F_SkirtType,this.skirtTypes) == -1 ? this.skirtTypes[0].value : response.Data.F_SkirtType;
|
|
|
|
|
- // this.selectedSkirtType = response.Data.F_SkirtType || this.skirtTypes[0].value;//墙裙
|
|
|
|
|
- this.selectedReliefType = this.cardValueFindIndex(response.Data.F_carvingType,this.outsideRelief) == -1 ? this.outsideRelief[0].value : response.Data.F_carvingType;
|
|
|
|
|
- // this.selectedReliefType = response.Data.F_carvingType || this.outsideRelief[0].value;//浮雕
|
|
|
|
|
- this.selectedWindowStyle = this.cardValueFindIndex(response.Data.F_WindowsStyle,this.WindowStyle) == -1 ? this.WindowStyle[0].value : response.Data.F_WindowsStyle;
|
|
|
|
|
- // this.selectedWindowStyle = response.Data.F_WindowsStyle || this.WindowStyle[0].value;//窗套样式
|
|
|
|
|
this.oldf_id = response.Data.F_ID;
|
|
this.oldf_id = response.Data.F_ID;
|
|
|
this.color_selValue = response.Data.F_Color || null;// 外墙平涂选中的值
|
|
this.color_selValue = response.Data.F_Color || null;// 外墙平涂选中的值
|
|
|
if (this.color_selValue) {
|
|
if (this.color_selValue) {
|
|
@@ -796,7 +973,12 @@ export default class extends Vue {
|
|
|
this.ColumnTypes = [];
|
|
this.ColumnTypes = [];
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- this.selectedColumnType = this.cardValueFindIndex(F_ColumnType,this.ColumnTypes) == -1 ? this.ColumnTypes[0].value : F_ColumnType;
|
|
|
|
|
|
|
+ let selectedColumnTypeIndex = this.cardValueFindIndex(F_ColumnType,this.ColumnTypes);
|
|
|
|
|
+ if (selectedColumnTypeIndex == -1){
|
|
|
|
|
+ this.selectedColumnType = this.ColumnTypes[0].value;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.selectColumnType(F_ColumnType, 'ColumnTypeRef', selectedColumnTypeIndex)
|
|
|
|
|
+ }
|
|
|
// this.selectedColumnType = F_ColumnType;//罗马柱
|
|
// this.selectedColumnType = F_ColumnType;//罗马柱
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -839,7 +1021,6 @@ export default class extends Vue {
|
|
|
// console.log('拍摄图片');
|
|
// console.log('拍摄图片');
|
|
|
// }
|
|
// }
|
|
|
private autoScrollToActive(refsName: string, selcIndex: number) {
|
|
private autoScrollToActive(refsName: string, selcIndex: number) {
|
|
|
- // console.log("refsName=", refsName)
|
|
|
|
|
const container = this.$refs[refsName];
|
|
const container = this.$refs[refsName];
|
|
|
const activeItem = container.children[selcIndex];
|
|
const activeItem = container.children[selcIndex];
|
|
|
const itemWidth = activeItem.offsetWidth * 1.1;
|
|
const itemWidth = activeItem.offsetWidth * 1.1;
|
|
@@ -850,13 +1031,13 @@ export default class extends Vue {
|
|
|
const isFullyVisibleL = itemRect.left >= containerRect.left;
|
|
const isFullyVisibleL = itemRect.left >= containerRect.left;
|
|
|
const isFullyVisibleR = itemRect.right <= containerRect.right;
|
|
const isFullyVisibleR = itemRect.right <= containerRect.right;
|
|
|
if (!isFullyVisibleL) {
|
|
if (!isFullyVisibleL) {
|
|
|
- container.scrollBy({
|
|
|
|
|
- left: -itemWidth, // 右边滑一格多的距离
|
|
|
|
|
|
|
+ container.scrollBy({
|
|
|
|
|
+ left: -(containerRect.left - itemRect.left + itemWidth), // 右边滑一格多的距离
|
|
|
behavior: 'smooth' // 平滑滚动
|
|
behavior: 'smooth' // 平滑滚动
|
|
|
});
|
|
});
|
|
|
} else if (!isFullyVisibleR) {
|
|
} else if (!isFullyVisibleR) {
|
|
|
container.scrollBy({
|
|
container.scrollBy({
|
|
|
- left: itemWidth, // 左滑一格多的距离
|
|
|
|
|
|
|
+ left: itemRect.right - containerRect.right + itemWidth, // 左滑一格多的距离
|
|
|
behavior: 'smooth' // 平滑滚动
|
|
behavior: 'smooth' // 平滑滚动
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -890,7 +1071,9 @@ export default class extends Vue {
|
|
|
|
|
|
|
|
private selectSplit(value: string, refsName: string, selcIndex: number) {
|
|
private selectSplit(value: string, refsName: string, selcIndex: number) {
|
|
|
this.selectedSplit = value;
|
|
this.selectedSplit = value;
|
|
|
- this.autoScrollToActive(refsName, selcIndex); // 选中后触发自动滚动
|
|
|
|
|
|
|
+ setTimeout(function () {
|
|
|
|
|
+ this.autoScrollToActive(refsName, selcIndex); // 选中后触发自动滚动
|
|
|
|
|
+ },1000)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private selectWindowStyle(value: string, refsName: string, selcIndex: number) {
|
|
private selectWindowStyle(value: string, refsName: string, selcIndex: number) {
|
|
@@ -968,24 +1151,51 @@ export default class extends Vue {
|
|
|
this.currentScrollElement = null;
|
|
this.currentScrollElement = null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //积分提醒弹框确认事件
|
|
|
|
|
+ private pointDialogSure(){
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ if (that.projectPoint >= 100){
|
|
|
|
|
+ that.generateDesign();
|
|
|
|
|
+ that.pointDialogShow1 = false;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ that.pointDialogShow1 = false;
|
|
|
|
|
+ that.pointDialogShow2 = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private beforeGenerateDesign(){
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ if (!this.Userfile1 && !this.oldf_id) {
|
|
|
|
|
+ this.$toast.fail('请选择图片');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }else if (that.projectBoxShow == true && this.activeName === '外墙质感') {
|
|
|
|
|
+ if (that.checkedProject == null) {
|
|
|
|
|
+ that.$toast.fail('请选择关联项目');
|
|
|
|
|
+ return;
|
|
|
|
|
+ } else if (that.checkedProject != null && that.checkedProject.AvailableQuantity <= 0){
|
|
|
|
|
+ const formData = new FormData();
|
|
|
|
|
+ formData.append('serviceCode', that.fwsCode);
|
|
|
|
|
+ GetPoints(formData).then(response => {
|
|
|
|
|
+ if (response.StatusCode == 200) {
|
|
|
|
|
+ that.projectPoint = response.Data.point;
|
|
|
|
|
+ that.pointDialogShow1 = true;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ that.generateDesign();
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
|
|
+ that.generateDesign();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private generateDesign() {
|
|
private generateDesign() {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
// console.log(this.Userfile1);
|
|
// console.log(this.Userfile1);
|
|
|
// 实现AI生成功能
|
|
// 实现AI生成功能
|
|
|
- if (that.projectBoxShow == true && this.activeName === '外墙质感') {
|
|
|
|
|
- if (that.checkedProject == null) {
|
|
|
|
|
- that.$toast.fail('请选择关联项目');
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- // if (that.checkedProject.AvailableQuantity == 0) {
|
|
|
|
|
- // this.projectActionNumShow = true;
|
|
|
|
|
- // return;
|
|
|
|
|
- // }
|
|
|
|
|
- }
|
|
|
|
|
- if (!this.Userfile1 && !this.oldf_id) {
|
|
|
|
|
- this.$toast.fail('请选择图片');
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
// const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
// const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
if (this.activeName === '外墙质感') {
|
|
if (this.activeName === '外墙质感') {
|
|
@@ -1150,11 +1360,18 @@ export default class extends Vue {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
// const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
// const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
- formData.append('ServiceCode', that.serviceCodeArray.join(','));
|
|
|
|
|
|
|
+ // formData.append('ServiceCode', that.serviceCodeArray.join(','));
|
|
|
|
|
+ formData.append('servicecode', that.fwsCode);
|
|
|
formData.append('projectid', projectId);
|
|
formData.append('projectid', projectId);
|
|
|
GetProjectlist(formData).then(response => {
|
|
GetProjectlist(formData).then(response => {
|
|
|
if (response.StatusCode == 200) {
|
|
if (response.StatusCode == 200) {
|
|
|
- that.checkedProject = response.Data[0];
|
|
|
|
|
|
|
+ const serviceCodeIndex = that.fwsList.findIndex(item => item.shop_code == response.Data[0].servicecode);
|
|
|
|
|
+ if (serviceCodeIndex == -1){
|
|
|
|
|
+ that.radioClick(that.fwsList[0].shop_code,'',true);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ that.checkedProject = response.Data[0];
|
|
|
|
|
+ that.radioClick(response.Data[0].servicecode,'',false);
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
// console.log(response.Info)
|
|
// console.log(response.Info)
|
|
|
}
|
|
}
|
|
@@ -1166,7 +1383,8 @@ export default class extends Vue {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
- formData.append('ServiceCode', that.serviceCodeArray.join(','));
|
|
|
|
|
|
|
+ // formData.append('ServiceCode', that.serviceCodeArray.join(','));
|
|
|
|
|
+ formData.append('servicecode', that.fwsCode);
|
|
|
if (that.projectSearchValue.trim().length != 0) {
|
|
if (that.projectSearchValue.trim().length != 0) {
|
|
|
formData.append('keyWord', that.projectSearchValue);
|
|
formData.append('keyWord', that.projectSearchValue);
|
|
|
}
|
|
}
|
|
@@ -1193,7 +1411,8 @@ export default class extends Vue {
|
|
|
//跳转项目报备链接
|
|
//跳转项目报备链接
|
|
|
private toProjectLink() {
|
|
private toProjectLink() {
|
|
|
this.showProjectPopover = false;
|
|
this.showProjectPopover = false;
|
|
|
- window.location.href = this.addProjectLink;
|
|
|
|
|
|
|
+ // window.location.href = this.addProjectLink;
|
|
|
|
|
+ toXiaoChengxu(`${process.env.VUE_APP_BASE_DISID9}`,'packageC/projectFiling/index');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//获取风格选项图片列表
|
|
//获取风格选项图片列表
|
|
@@ -1218,6 +1437,7 @@ export default class extends Vue {
|
|
|
GetDictList(formData).then(response => {
|
|
GetDictList(formData).then(response => {
|
|
|
if (response.StatusCode == 200) {
|
|
if (response.StatusCode == 200) {
|
|
|
that.isNeedProject = response.Data.isNeedProject;
|
|
that.isNeedProject = response.Data.isNeedProject;
|
|
|
|
|
+ that.freetimes = response.Data.freetimes;
|
|
|
that.addProjectLink = response.Data.projectAddress;
|
|
that.addProjectLink = response.Data.projectAddress;
|
|
|
// 字典获取选择列表
|
|
// 字典获取选择列表
|
|
|
// 设计风格
|
|
// 设计风格
|
|
@@ -1258,6 +1478,9 @@ export default class extends Vue {
|
|
|
that.projectBoxShow = false;
|
|
that.projectBoxShow = false;
|
|
|
} else {
|
|
} else {
|
|
|
that.projectBoxShow = that.isNeedProject;
|
|
that.projectBoxShow = that.isNeedProject;
|
|
|
|
|
+ if (that.projectBoxShow == true){
|
|
|
|
|
+ that.GetPointsFn();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
that.save_projectBoxShow_org = that.projectBoxShow;
|
|
that.save_projectBoxShow_org = that.projectBoxShow;
|
|
|
this.zgInitData();
|
|
this.zgInitData();
|
|
@@ -1351,6 +1574,18 @@ export default class extends Vue {
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+.point-box{
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ margin-left: 20px;
|
|
|
|
|
+ span{
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
.container {
|
|
.container {
|
|
|
// padding: 0 20px;
|
|
// padding: 0 20px;
|
|
|
}
|
|
}
|
|
@@ -1437,6 +1672,85 @@ export default class extends Vue {
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+.project-box{
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ .project-overlay{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ z-index: 100;
|
|
|
|
|
+ background-color: rgba(0, 0, 0, 0.7);
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .project-add-box {
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ border-radius: 12px 12px 0 0;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ z-index: 200;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ background-color: #ffffff;
|
|
|
|
|
+ .fws-change-box{
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ .fws-code{
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #0057ba;
|
|
|
|
|
+ border: 1px solid #0057ba;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ padding: 2px 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .change-txt{
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #0057BA;
|
|
|
|
|
+ margin-left: 5px;
|
|
|
|
|
+ margin-right: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .check-list-box{
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+ padding: 10px 10px 5px 10px;
|
|
|
|
|
+ /*background-color: red;*/
|
|
|
|
|
+ z-index: 200;
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 42px;
|
|
|
|
|
+ background: linear-gradient(135deg, #ecf1f4 0%, #e7ecfb 100%);
|
|
|
|
|
+ .list-label{
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ margin-left: 15px;
|
|
|
|
|
+ .code{
|
|
|
|
|
+ color: #666666;
|
|
|
|
|
+ }
|
|
|
|
|
+ .value{
|
|
|
|
|
+ color: #666666;
|
|
|
|
|
+ margin-left: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .list-label-checked{
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ margin-left: 15px;
|
|
|
|
|
+ .code{
|
|
|
|
|
+ color: #0057BA;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ }
|
|
|
|
|
+ .value{
|
|
|
|
|
+ color: #0057BA;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ margin-left: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
.image-placeholder {
|
|
.image-placeholder {
|
|
|
position: relative;
|
|
position: relative;
|
|
|
display: flex;
|
|
display: flex;
|
|
@@ -1467,13 +1781,13 @@ export default class extends Vue {
|
|
|
padding-bottom: 30px;
|
|
padding-bottom: 30px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-.project-add-box {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- flex-direction: row;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- margin-bottom: 20px;
|
|
|
|
|
|
|
+.van-cell-group{
|
|
|
|
|
+ background-color: transparent;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.van-cell{
|
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
::v-deep .van-button--normal {
|
|
::v-deep .van-button--normal {
|
|
@@ -2038,6 +2352,56 @@ export default class extends Vue {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+.dialog-point-box{
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ padding: 20px 15px;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ .title{
|
|
|
|
|
+ font-size: 22px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .content{
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ }
|
|
|
|
|
+ .txt-color1{
|
|
|
|
|
+ color: #E55B2A;
|
|
|
|
|
+ }
|
|
|
|
|
+ .txt-color2{
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dialog-btn-point1{
|
|
|
|
|
+ background-color: #E55B2A;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ color:#fff;
|
|
|
|
|
+ margin-top: 20px;
|
|
|
|
|
+ padding: 6px 0;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dialog-btn-point2{
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ padding: 6px 0;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .point-icon{
|
|
|
|
|
+ width: 120px;
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: -55px;
|
|
|
|
|
+ right: -10px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .point-icon-small{
|
|
|
|
|
+ width: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
.dialog-box {
|
|
.dialog-box {
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
display: flex;
|
|
display: flex;
|