From a0b5604fcefa0c7900ecc50830b718f77bba8f39 Mon Sep 17 00:00:00 2001 From: heyujie <516346543@qq.com> Date: 星期五, 15 七月 2022 14:43:40 +0800 Subject: [PATCH] add cluster pwd --- src/views/productDetail/components/PayCard.vue | 337 +++++++++++++++++++------------------------------------ 1 files changed, 118 insertions(+), 219 deletions(-) diff --git a/src/views/productDetail/components/PayCard.vue b/src/views/productDetail/components/PayCard.vue index 8177742..18a7ef1 100644 --- a/src/views/productDetail/components/PayCard.vue +++ b/src/views/productDetail/components/PayCard.vue @@ -1,16 +1,16 @@ <template> <div class="PayCard"> <div class="imageArea" v-if="data.pics.length"> - <img class="activeImg" :src="'/httpImage/' + activeImg.url" /> + <ImageShow class="activeImg" :src="activeImg.url" /> <div class="imgList"> - <img + <ImageShow v-for="(item, index) in data.pics" class="preImg" - :src="'/httpImage/' + item.url" + :src="item.url" :key="index" alt="" :class="{ active: activeImg.index == index }" - @click="selectImg(index, item.url)" + @click.native="selectImg(index, item.url)" /> </div> </div> @@ -36,207 +36,6 @@ <div class="label">浠锋牸</div> <div class="number">锟{ data.priceBase }}.00</div> </div> - <!-- - <div class="row"> - <div class="label">璐拱鏁伴噺</div> - <el-input-number - v-model="cartItem.devCount" - :disabled="data.productType == 5" - size="small" - :min="1" - label="鎻忚堪鏂囧瓧" - ></el-input-number> - </div> - - <div class="row"> - <div class="label">鏈嶅姟鏃堕暱</div> - <el-button-group class="serviceYearOpt"> - <el-button - type="default" - size="small" - :class="cartItem.timeLength == 1 ? 'selected' : ''" - @click="selectYear(1)" - >涓�骞�</el-button - > - <el-button - type="default" - size="small" - :class="cartItem.timeLength == 2 ? 'selected' : ''" - @click="selectYear(2)" - >涓ゅ勾</el-button - > - <el-button - type="default" - size="small" - :class="cartItem.timeLength == 3 ? 'selected' : ''" - @click="selectYear(3)" - >涓夊勾</el-button - > - </el-button-group> - </div> - - <div class="row"> - <div class="label">閰嶇疆妯″潡</div> - <div class="check-component"> - <div class="check-list"> - <div - class="check-item" - v-for="(item, index) in cartItem.modules" - :key="index + 'c'" - :style="isSmartCalDot ? { cursor: 'default' } : {}" - :class="item.selected ? 'selected' : ''" - @click="selectModel(index)" - > - {{ item.moduleName }} - </div> - </div> - <div class="checked-list"> - <div class="label">宸查��</div> - <div class="list"> - <div - class="checked-item" - v-for="(item, index) in cartItem.modules" - v-show="item.selected" - :key="index + 'd'" - > - {{ item.moduleName }} - </div> - </div> - </div> - </div> - </div> - - <div class="row"> - <div class="label">璇锋眰鐮�</div> - <el-input - type="textarea" - autosize - placeholder="璇疯緭鍏ヨ姹傜爜" - v-model="cartItem.requestCode" - > - </el-input> - </div> - - <div class="row"> - <div class="label">閫氶亾鏁伴噺</div> - <el-input-number - v-model="cartItem.chCount" - @change="handleChangeCh" - :disabled="!data.hasChUnitPrice" - size="small" - :min="1" - :max="16" - label="鎻忚堪鏂囧瓧" - ></el-input-number> - <span class="desText">鏈�澶ф敮鎸�16璺�</span> - </div> - - <div class="row"> - <div class="label">鎺堟潈鏁伴噺</div> - <el-input-number - v-model="cartItem.chCount" - @change="handleChangeCh" - :disabled="!data.hasChUnitPrice" - size="small" - :min="1" - :max="16" - label="鎻忚堪鏂囧瓧" - ></el-input-number> - <span class="desText">鏈�澶ф敮鎸�16璺�</span> - <el-input-number - v-model="cartItem.authCount" - @change="handleChangeAuth" - :disabled="!data.hasAuthPrice" - size="small" - :min="this.cartItem.chCount" - label="鎻忚堪鏂囧瓧" - ></el-input-number> - <span class="desText">鍙敮鎸佺殑杞璺暟</span> - </div> - - <div class="row"> - <div class="label">閰嶇疆绠楁硶</div> - <div class="check-component"> - <div class="check-list"> - <div - class="check-item" - v-for="(item, index) in cartItem.sdks" - :key="index + 'c'" - :class="item.selected ? 'selected' : ''" - @click="selectAlgorithm(index)" - > - {{ item.sdkName }} - </div> - </div> - <div class="checked-list"> - <div class="label">宸查��</div> - <div class="list"> - <div - class="checked-item" - v-for="(item, index) in cartItem.sdks" - v-show="item.selected" - :key="index + 'd'" - > - {{ item.sdkName }} - </div> - </div> - </div> - </div> - </div> - - <div class="row"> - <div class="label">鑺墖鏋舵瀯</div> - <el-select - v-model="cartItem.targetPlatform" - placeholder="璇烽�夋嫨浣跨敤鑺墖" - style=" - width: 329px; - height: 40px; - border-color: #ddd; - border-radius: 0; - " - > - <el-option - v-for="item in data.productBaseDetail && - data.productBaseDetail.platforms" - style="font-size: 12px" - :key="item.id" - :label="item.id" - :value="item.id" - :title="item.name" - ></el-option> - </el-select> - </div> - - <div class="row"> - <div class="label">璁惧ID</div> - <el-select - collapse-tags - multiple - :multiple-limit="cartItem.devCount" - v-model="cartItem.devIdList" - placeholder="璇烽�夋嫨璁惧ID" - :popper-append-to-body="false" - style=" - width: 329px; - height: 40px; - border-color: #ddd; - border-radius: 0; - " - > - <el-option - v-for="item in devList" - style="font-size: 12px" - :key="item.id" - :label="item.id" - :value="item.id" - :title="item.id" - > - <span class="option-lt" :title="item.id">{{ item.id }}</span> - <span class="option-rt" :title="item.name">{{ item.name }}</span> - </el-option> - </el-select> - </div> --> <div class="row"> <div class="label">璐拱鏁伴噺</div> @@ -344,16 +143,6 @@ > <div class="label">鎺堟潈鏁伴噺</div> <el-input-number - v-model="cartItem.chCount" - @change="handleChangeCh" - :disabled="!data.hasChUnitPrice" - size="small" - :min="1" - :max="16" - label="鎻忚堪鏂囧瓧" - ></el-input-number> - <span class="desText">鏈�澶ф敮鎸�16璺�</span> - <el-input-number v-model="cartItem.authCount" @change="handleChangeAuth" :disabled="!data.hasAuthPrice" @@ -370,7 +159,8 @@ data.productBaseDetail && data.productBaseDetail.hasPriceBase && data.productType != 5 && - !isSmartCalDot + !isSmartCalDot && + cartItem.sdks.length > 0 " > <div class="label">閰嶇疆绠楁硶</div> @@ -441,6 +231,40 @@ v-if=" data.productType != 2 && data.productType != 1 && + data.productType != 5 && + data.productType == 3 && + (cartItem.targetPlatform.includes('x86') || + cartItem.targetPlatform.includes('X86')) + " + > + <div class="label">鏄惧崱鍨嬪彿</div> + <el-select + v-model="cartItem.vGpu" + style=" + width: 329px; + height: 40px; + border-color: #ddd; + border-radius: 0; + " + placeholder="璇烽�夋嫨鏄惧崱鍨嬪彿" + > + <el-option + v-for="item in data.productBaseDetail && + data.productBaseDetail.vGpus" + style="font-size: 12px" + :key="item.id" + :label="item.id" + :value="item.id" + :title="item.name" + ></el-option> + </el-select> + </div> + + <div + class="row" + v-if=" + data.productType != 2 && + data.productType != 1 && data.productType != 5 " > @@ -476,21 +300,38 @@ <div class="btns"> <div class="button addCar">鍔犲叆璐墿杞�</div> - <div class="button pay">绔嬪嵆璐拱</div> + <div class="button pay" @click="confirmNow"> + {{ data.priceBase ? "绔嬪嵆璐拱" : "鍏嶈垂璇曠敤" }} + </div> </div> </div> + + <ConfirmOrder + v-if="showOrder" + :orderId="orderId" + @close="showOrder = false" + ></ConfirmOrder> </div> </template> <script> import { findDevListByUser } from "@/api/device"; import { getReleaseProduct } from "@/api/product"; +import { resumeOrder } from "@/api/shopcart"; +import ConfirmOrder from "@/views/productDetail/components/ConfirmOrder"; +import { resumePay } from "@/api/order"; export default { props: { dataInfo: {}, }, + components: { + ConfirmOrder, + }, created() { + this.data = this.dataInfo.data; + this.labels = this.dataInfo.labels; + this.cartItem.id = this.data.id; this.getDevList(); if (this.dataInfo.data.pics.length > 0) { this.activeImg.url = this.dataInfo.data.pics[0].url; @@ -499,8 +340,8 @@ }, data() { return { - data: this.dataInfo.data, - labels: this.dataInfo.labels, + data: {}, + labels: [], cartItem: { id: "", productName: "", @@ -528,6 +369,8 @@ index: 0, url: "", }, + showOrder: false, + orderId: "", }; }, methods: { @@ -671,6 +514,58 @@ selectImg(index, url) { this.activeImg.index = index; this.activeImg.url = url; + }, + confirmNow() { + let products = [ + { + activateCode: this.cartItem.requestCode, + authCount: this.cartItem.authCount, + chCount: this.cartItem.chCount, + devCount: this.cartItem.devCount, + devIdList: this.cartItem.devIdList, + moduleIds: this.cartItem.moduleIds, + productId: this.cartItem.id, + productPrice: this.cartItem.totalPrice, + quantity: 1, + sdkIds: this.cartItem.sdkIds, + serveYear: this.cartItem.timeLength, + targetPlatform: this.cartItem.targetPlatform, + vGpu: this.cartItem.vGpu, + }, + ]; + resumeOrder({ + orderMoney: this.numeral(this.sum).value(), + payMethod: 0, + products, + status: 0, + userId: JSON.parse(sessionStorage.getItem("userInfo")).id, + }).then((res) => { + if (res.success) { + this.orderId = res.data.orderId; + + if (this.data.priceBase == 0) { + resumePay({ orderId: this.orderId, payMethod: 5 }).then((res) => { + if (res.success) { + this.$router.push({ + path: "/personalCenter", + query: { + id: 1, + }, + }); + this.$notify({ + type: "success", + message: "鎴愬姛璇曠敤", + duration: 2500, + offset: 57, + }); + } + }); + return; + } else { + this.showOrder = true; + } + } + }); }, }, }; @@ -871,6 +766,10 @@ border: 1px solid #c0c5cc; border-radius: 0; } + + .el-tag { + margin-top: 0; + } } } -- Gitblit v1.8.0