12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310 |
- <template>
- <div class="orderConfirm pagePadding">
- <div
- style="width: 100%"
- v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
- >
- <show-data-table
- style="margin: 0 0 10px 0; padding: 0"
- :sitem="sitem"
- v-if="sitem && status"
- :columns="showColumns"
- border
- >
- <template #status>
- <el-tag
- :size="'mini'"
- :type="sitem.status_type"
- style="margin: auto"
- >{{ sitem.status_name }}</el-tag
- >
- </template>
- </show-data-table>
- <el-form
- ref="ruleForm"
- :model="ruleForm"
- status-icon
- :size="'mini'"
- :rules="rulesThis"
- label-width="0px"
- >
- <div class="tab-row">
- <div class="tab-item-label">
- <label style="color: transparent">*</label>字段
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">文件导入数据</el-col>
- <el-col :span="9">系统解析数据</el-col>
- <el-col :span="11">确认后的数据</el-col>
- </el-row>
- </div>
- </div>
- <div
- v-if="
- importSitem &&
- importSitem.platform_code &&
- confirmSitem &&
- confirmSitem.platform_code
- "
- >
- <div class="tab-row">
- <div class="tab-item-label">
- <div><label style="color: red">*</label>平台订单号</div>
- <div><label style="color: transparent">*</label>其他单号</div>
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">
- <div style="min-height: 26px">
- {{ importSitem.platform_code }}
- </div>
- <div style="min-height: 26px">{{ importSitem.po_code }}</div>
- </el-col>
- <el-col :span="9">
- <div style="min-height: 26px">
- {{ confirmSitem.platform_code }}
- </div>
- <div style="min-height: 26px">{{ confirmSitem.po_code }}</div>
- </el-col>
- <el-col :span="11" class="nop">
- <el-row>
- <el-col :span="12" class="border">
- <el-form-item prop="platform_code">
- <el-input
- v-model="ruleForm.platform_code"
- maxlength="100"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="平台订单号"
- /> </el-form-item
- ></el-col>
- <el-col :span="12" class="border">
- <el-form-item prop="po_code">
- <el-input
- v-model="ruleForm.po_code"
- maxlength="100"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="其他单号"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <div><label style="color: red">*</label>平台订单下单时间</div>
- <div><label style="color: red">*</label>平台商品编号</div>
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">
- <div style="min-height: 26px">
- {{ importSitem.platform_time }}
- </div>
- <div style="min-height: 26px">
- {{ importSitem.plat_code }}
- </div>
- </el-col>
- <el-col :span="9"
- ><div style="min-height: 26px">
- {{ confirmSitem.platform_time }}
- </div>
- <div style="min-height: 26px">
- {{ confirmSitem.plat_code }}
- </div>
- <div v-if="conGoodData && conGoodData.good_thumb_img">
- <show-data-table
- :sitem="conGoodData"
- :columns="onlineColumns"
- :border="true"
- >
- <template slot="good_name">
- <img
- v-viewer
- style="width: 23px; height: 23px; margin: 0 5px 0 0"
- class="fl hover"
- v-if="conGoodData.good_thumb_img"
- :src="conGoodData.good_thumb_img"
- alt=""
- />
- <span>{{ conGoodData.good_name }}</span>
- <span
- v-for="(si, i) in conGoodData.speclist"
- :key="si.spec_id + i"
- >
- <span v-if="i !== 0">-</span>
- <span v-else>_</span>
- <span>{{ si.spec_name }}[{{ si.spec_value }}]</span>
- </span>
- <el-popover placement="top" width="300" trigger="hover">
- <ul>
- <li>
- <span>SKU编号:</span
- ><span>{{ conGoodData.skuCode }}</span>
- </li>
- <li
- v-if="
- newTime !== '' &&
- private_field &&
- private_field.length > 0 &&
- private_field.some((item) => item == '1')
- "
- >
- <span>SPU编号:</span
- ><span>{{ conGoodData.spuCode }}</span>
- </li>
- <!-- <li>
- <span>平台商品编码:</span
- ><span>{{ conGoodData.platform_code_en }}</span>
- </li> -->
- </ul>
- <i
- class="el-icon-warning-outline fr"
- slot="reference"
- ></i>
- </el-popover>
- </template>
- <template slot="company">
- <span>{{ conGoodData.company }}</span>
- <el-popover placement="top" width="300" trigger="hover">
- <ul>
- <li>
- <span>业务企业编号:</span
- ><span>{{ conGoodData.companyNo }}</span>
- </li>
- </ul>
- <i
- class="el-icon-warning-outline fr"
- slot="reference"
- ></i>
- </el-popover>
- </template>
- <template slot="cat_info">
- <span
- v-for="(si, sii) in conGoodData.cat_info"
- :key="si + sii"
- >{{ sii === 0 ? "" : "_" }}{{ si.name }}</span
- >
- </template>
- <template slot="exclusive">
- <span
- v-for="(si, sii) in conGoodData.exclusive"
- :key="si.id"
- >
- <span v-if="sii !== 0">/</span>
- <span>{{ si.name }}</span>
- </span>
- </template>
- <template slot="is_stock">
- <el-tag
- :size="'mini'"
- v-text="
- (
- options4.find(
- (item) => item.id == conGoodData.is_stock
- ) || {}
- ).name || '--'
- "
- />
- </template>
- </show-data-table>
- </div>
- </el-col>
- <el-col :span="11" class="nop">
- <el-row>
- <el-col :span="12" class="border">
- <el-form-item prop="platform_time">
- <el-date-picker
- type="datetime"
- placeholder="平台订单下单时间"
- v-model="ruleForm.platform_time"
- style="width: 100%"
- value-format="yyyy-MM-dd HH:mm:ss"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- :picker-options="pickerOptions"
- @change="selectTime"
- >
- </el-date-picker> </el-form-item
- ></el-col>
- <el-col :span="12" class="border">
- <el-form-item prop="plat_code">
- <el-input
- v-model="ruleForm.plat_code"
- maxlength="100"
- readonly
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- @focus="showModel = true"
- placeholder="平台商品编号"
- /></el-form-item>
- </el-col>
- <el-col
- :span="24"
- v-if="subGoodData && subGoodData.good_thumb_img"
- >
- <show-data-table
- :sitem="subGoodData"
- :columns="onlineColumns"
- :border="true"
- >
- <template slot="good_name">
- <img
- v-viewer
- style="width: 23px; height: 23px; margin: 0 5px 0 0"
- class="fl"
- v-if="subGoodData.good_thumb_img"
- :src="subGoodData.good_thumb_img"
- alt=""
- />
- <span>{{ subGoodData.good_name }}</span>
- <span
- v-for="(si, i) in subGoodData.speclist"
- :key="si.spec_id + i"
- >
- <span v-if="i !== 0">-</span>
- <span v-else>_</span>
- <span>{{ si.spec_name }}[{{ si.spec_value }}]</span>
- </span>
- <el-popover
- placement="top"
- width="300"
- trigger="hover"
- >
- <ul>
- <li>
- <span>SKU编号:</span
- ><span>{{ subGoodData.skuCode }}</span>
- </li>
- <li
- v-if="
- newTime !== '' &&
- private_field &&
- private_field.length > 0 &&
- private_field.some((item) => item == '1')
- "
- >
- <span>SPU编号:</span
- ><span>{{ subGoodData.spuCode }}</span>
- </li>
- <!-- <li>
- <span>平台商品编码:</span
- ><span>{{ subGoodData.platform_code_en }}</span>
- </li> -->
- </ul>
- <i
- class="el-icon-warning-outline fr"
- slot="reference"
- ></i>
- </el-popover>
- </template>
- <template slot="company">
- <span>{{ subGoodData.company }}</span>
- <el-popover
- placement="top"
- width="300"
- trigger="hover"
- >
- <ul>
- <li>
- <span>业务企业编号:</span
- ><span>{{ subGoodData.companyNo }}</span>
- </li>
- </ul>
- <i
- class="el-icon-warning-outline fr"
- slot="reference"
- ></i>
- </el-popover>
- </template>
- <template slot="cat_info">
- <span
- v-for="(si, sii) in subGoodData.cat_info"
- :key="si + sii"
- >{{ sii === 0 ? "" : "_" }}{{ si.name }}</span
- >
- </template>
- <template slot="exclusive">
- <span
- v-for="(si, sii) in subGoodData.exclusive"
- :key="si.id"
- >
- <span v-if="sii !== 0">/</span>
- <span>{{ si.name }}</span>
- </span>
- </template>
- <template slot="is_stock">
- <el-tag
- :size="'mini'"
- v-text="
- (
- options4.find(
- (item) => item.id == subGoodData.is_stock
- ) || {}
- ).name || '--'
- "
- />
- </template>
- </show-data-table>
- </el-col>
- </el-row>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <div><label style="color: red">*</label>收费模式</div>
- <div><label style="color: red">*</label>销售渠道</div>
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">
- <div style="min-height: 26px">{{ importSitem.mode }}</div>
- <div style="min-height: 26px">
- {{ importSitem.sale_source }}
- </div>
- </el-col>
- <el-col :span="9">
- <div style="min-height: 26px">{{ confirmSitem.mode }}</div>
- <div style="min-height: 26px">
- {{ confirmSitem.sale_source }}
- </div></el-col
- >
- <el-col :span="11" class="nop">
- <el-row>
- <el-col :span="12" class="border">
- <el-form-item prop="mode">
- <el-select
- v-model="ruleForm.mode"
- style="width: 100%"
- clearable
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="收费模式"
- >
- <el-option
- v-for="item in options"
- :key="item.label"
- :label="item.label"
- :value="item.label"
- >
- </el-option> </el-select
- ></el-form-item>
- </el-col>
- <el-col :span="12" class="border">
- <el-form-item prop="sale_source">
- <el-select
- v-model="ruleForm.sale_source"
- style="width: 100%"
- clearable
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="销售渠道"
- >
- <el-option
- v-for="(item, i) in coptions"
- :key="item.source + i"
- :label="item.source"
- :value="item.source"
- >
- </el-option> </el-select></el-form-item></el-col
- ></el-row>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <div><label style="color: red">*</label>收货人</div>
- <div><label style="color: red">*</label>收货电话</div>
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">
- <div style="min-height: 26px">
- {{ importSitem.contactor }}
- </div>
- <div style="min-height: 26px">
- {{ importSitem.mobile }}
- </div>
- </el-col>
- <el-col :span="9">
- <div style="min-height: 26px">
- {{ confirmSitem.contactor }}
- </div>
- <div style="min-height: 26px">
- {{ confirmSitem.mobile }}
- </div></el-col
- >
- <el-col :span="11" class="nop">
- <el-row>
- <el-col :span="12" class="border">
- <el-form-item prop="contactor">
- <el-input
- v-model="ruleForm.contactor"
- maxlength="100"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="收货人"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12" class="border">
- <el-form-item prop="mobile">
- <el-input
- v-model="ruleForm.mobile"
- maxlength="100"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="收货电话"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <div><label style="color: red">*</label>省市区</div>
- <div><label style="color: red">*</label>详细地址</div>
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">
- <div style="min-height: 26px"> </div>
- <div style="min-height: 26px">
- {{ importSitem.addr }}
- </div></el-col
- >
- <el-col :span="9">
- <div style="min-height: 26px">
- {{ confirmSitem.addr_name }}
- </div>
- <div style="min-height: 26px">{{ confirmSitem.addr }}</div>
- </el-col>
- <el-col :span="11" class="nop">
- <el-row>
- <el-col :span="12" class="border">
- <el-form-item prop="addr_code">
- <select-area
- :value="ruleForm.addr_code"
- :size="'mini'"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="收货省市区"
- @selectChange="select_area_change($event)"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12" class="border">
- <el-form-item prop="addr">
- <el-input
- v-model="ruleForm.addr"
- maxlength="100"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- placeholder="详细地址"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <label style="color: red">*</label>订单备注
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4" style="min-height: 26px">{{
- importSitem.order_remark
- }}</el-col>
- <el-col :span="9" style="min-height: 26px">{{
- confirmSitem.order_remark
- }}</el-col>
- <el-col :span="11">
- <el-form-item prop="order_remark">
- <el-input
- v-model="ruleForm.order_remark"
- maxlength="100"
- :disabled="
- !(
- status === '2' && powers.some((item) => item == '008')
- )
- "
- placeholder="订单备注" /></el-form-item
- ></el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <div><label style="color: red">*</label>数量</div>
- <div><label style="color: red">*</label>单价</div>
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4">
- <div style="min-height: 26px">{{ importSitem.num }}</div>
- <div style="min-height: 26px">{{ importSitem.price }}</div>
- </el-col>
- <el-col :span="9">
- <div style="min-height: 26px">{{ confirmSitem.num }}</div>
- <div style="min-height: 26px">{{ confirmSitem.price }}</div>
- </el-col>
- <el-col :span="11" class="nop">
- <el-row>
- <el-col :span="12" class="border">
- <el-form-item prop="num">
- <digital-input
- :values="ruleForm.num"
- :placeholder="'数量'"
- :min="0"
- :max="100000000000"
- :position="'right'"
- :precision="0"
- :size="'mini'"
- :controls="false"
- :append="''"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- @reschange="number_change($event, 'num')"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12" class="border">
- <el-form-item prop="price">
- <digital-input
- :values="ruleForm.price"
- :placeholder="'单价'"
- :min="price_min"
- :disabled="
- !(
- status === '2' &&
- powers.some((item) => item == '008')
- )
- "
- :max="100000000000"
- :position="'right'"
- :precision="2"
- :size="'mini'"
- :controls="false"
- :append="'元'"
- @reschange="number_change($event, 'price')"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <label style="color: transparent">*</label>活动名称
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4" style="min-height: 26px">{{
- importSitem.activity_name
- }}</el-col>
- <el-col :span="9" style="min-height: 26px">{{
- confirmSitem.activity_name
- }}</el-col>
- <el-col :span="11">
- <el-form-item prop="activity_code">
- <el-select
- v-model="ruleForm.activity_code"
- style="width: 100%"
- clearable
- :disabled="
- !(
- status === '2' && powers.some((item) => item == '008')
- )
- "
- @change="get_new_price"
- placeholder="活动名称"
- >
- <el-option
- v-for="(item, i) in actOptions"
- :key="item.activity_code + i"
- :label="item.activity_name"
- :value="item.activity_code"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- </div>
- <div class="tab-row">
- <div class="tab-item-label">
- <label style="color: transparent">*</label>订单总金额
- </div>
- <div class="tab-item-main">
- <el-row class="tab-title">
- <el-col :span="4" style="min-height: 26px">{{
- importSitem.before_discount_all_price
- }}</el-col>
- <el-col :span="9" style="min-height: 26px">{{
- confirmSitem.before_discount_all_price
- }}</el-col>
- <el-col :span="11" style="min-height: 26px">
- {{ ruleForm.before_discount_all_price }}</el-col
- >
- </el-row>
- </div>
- </div>
- <div
- class="tab-row"
- v-if="status === '2' && powers.some((item) => item == '008')"
- >
- <div class="tab-item-label">
- <label style="color: transparent">*</label>
- </div>
- <div class="tab-item-main tr">
- <el-button type="primary" @click="submitForm" :size="'mini'"
- >保 存
- </el-button>
- <!-- <el-button @click="showModelThis = false" :size="'mini'">{{
- isDetail ? "关 闭" : "取 消"
- }}</el-button> -->
- </div>
- </div>
- </div>
- </el-form>
- <search-good-online-modal
- :once="true"
- :sitem="{}"
- :active="true"
- :show-model="showModel"
- @resultList="resultList"
- @cancel="showModel = false"
- />
- </div>
- <div v-else>
- <no-auth></no-auth>
- </div>
- </div>
- </template>
- <script>
- import mixinPage from "@/mixins/elPaginationHandle";
- import resToken from "@/mixins/resToken";
- import asyncRequest from "@/apis/service/orderEntry/orderConfirm";
- import {
- options,
- ruleForm,
- rules,
- options1,
- options2,
- options3,
- options4,
- options5,
- options6,
- options7,
- options8,
- options9,
- onlineColumns,
- } from "./columns";
- import searchGoodOnlineModal from "@/components/search-good-online-modal";
- export default {
- name: "orderConfirm",
- mixins: [mixinPage, resToken],
- components: {
- searchGoodOnlineModal,
- },
- computed: {
- powers() {
- let tran =
- this.$store.getters.btnList.find(
- (item) => item.menu_route == "orderConfirm"
- ) || {};
- if (tran && tran.action && tran.action.length > 0) {
- return tran.action;
- } else {
- return [];
- }
- },
- },
- data() {
- return {
- statusOptions: [],
- showColumns: [
- {
- prop: "creater",
- label: "导入人",
- span: 6,
- },
- {
- prop: "addtime",
- label: "导入时间",
- span: 6,
- },
- {
- prop: "status",
- label: "状态",
- _slot_: "status",
- span: 6,
- },
- {
- prop: "orderCode",
- label: "订单编号",
- span: 6,
- },
- {
- prop: "updater",
- label: "确认人",
- span: 6,
- },
- {
- prop: "success_date",
- label: "录入成功时间",
- span: 6,
- },
- {
- prop: "platform_name",
- label: "客户名称",
- },
- ],
- showModel: false,
- hasdiff: false,
- activeTabs: "1",
- sitem: null,
- isMetal: false,
- finishStatus: "finish",
- pickerOptions: {
- disabledDate: (time) => {
- return time.getTime() > new Date().valueOf();
- },
- },
- activeNames: ["0", "1", "2", "3", "4", "5", "10"],
- importSitem: null,
- confirmSitem: null,
- price_min: "0",
- subSitem: null,
- conGoodData: null,
- subGoodData: null,
- status: "",
- newTime: "",
- loading: false,
- queryId: "",
- rulesThis: {},
- coptions: [],
- options,
- actOptions: [],
- ruleForm: {},
- rules,
- options1,
- options2,
- options3,
- options4,
- options5,
- options6,
- options7,
- options8,
- options9,
- onlineColumns,
- priceLoding: false,
- };
- },
- mounted() {
- this.queryId = this.$route.query.id;
- this.initForm();
- },
- methods: {
- change_good() {},
- statusActive(status) {
- let active = "";
- switch (status) {
- case "1":
- active = "系统验证数据中";
- break;
- case "2":
- active = "待确认订单信息";
- break;
- case "3":
- active = "待处理(待扣减库存)";
- break;
- case "4":
- active = "库存不足";
- break;
- case "5":
- active = "订单录入成功";
- break;
- }
- return active;
- },
- statusActiveTag(status) {
- let active = "";
- switch (status) {
- case "1":
- active = "";
- break;
- case "2":
- active = "info";
- break;
- case "3":
- active = "warning";
- break;
- case "4":
- active = "danger";
- break;
- case "5":
- active = "success";
- break;
- }
- return active;
- },
- async initForm() {
- this.loading = true;
- this.rulesThis = this.rules;
- await this.resetForm();
- await this.initData();
- this.loading = false;
- },
- async againForm(sitem) {
- const {
- platform_code,
- po_code,
- platform_time,
- plat_code,
- sale_source,
- mode,
- contactor,
- mobile,
- price,
- num,
- before_discount_all_price,
- activity_code,
- order_remark,
- addr,
- addr_code,
- } = sitem;
- this.ruleForm = {
- id: this.queryId || "",
- platform_code: platform_code || "", //平台订单号
- po_code: po_code || "", //其他单号
- platform_time: platform_time || "", //平台下单时间
- plat_code: plat_code || "", //平台商品编号
- sale_source: sale_source || "", //销售渠道
- mode: mode || "", //收费模式
- contactor: contactor || "", ///收货人
- mobile: mobile || "", //联系电话
- price: price || "", //单价
- num: num || "", //数量
- before_discount_all_price: before_discount_all_price || "", //优惠前总金额
- activity_code: activity_code || "", //优惠活动名称
- order_remark: order_remark || "", //订单备注
- addr: addr || "", //联系地址
- addr_code:
- addr_code && addr_code.length > 0 ? addr_code.split(",") : [], //省市区
- };
- this.ruleForm.before_discount_all_price = this.accMul(
- this.ruleForm.num,
- this.ruleForm.price
- );
- await this.get_goods_active();
- const { platform_code: platformCode } = this.subGoodData;
- if (platformCode) {
- await this.get_source(platformCode);
- }
- },
- async initData() {
- this.sitem = null;
- this.loading = true;
- const { code, data, message } = await asyncRequest.detail({
- id: this.queryId,
- });
- if (code === 0) {
- const {
- status,
- import: simport,
- confirm,
- user_update,
- orderCode,
- creater,
- addtime,
- updater,
- success_date,
- } = data;
- this.sitem = {
- orderCode,
- status,
- creater,
- addtime,
- updater,
- success_date,
- status_name: this.statusActive(status),
- status_type: this.statusActiveTag(status),
- platform_name: "",
- };
- this.importSitem = simport ? JSON.parse(JSON.stringify(simport)) : null;
- this.confirmSitem = confirm
- ? JSON.parse(JSON.stringify(confirm))
- : null;
- this.status = status;
- if (
- !(this.status === "3" || this.status === "4" || this.status === "5")
- ) {
- console.log(this.status);
- this.subSitem = confirm ? JSON.parse(JSON.stringify(confirm)) : null;
- } else {
- this.subSitem = user_update
- ? JSON.parse(JSON.stringify(user_update))
- : null;
- }
- if (this.confirmSitem && this.confirmSitem.plat_code) {
- await this.onlineData(1, this.confirmSitem.plat_code);
- }
- if (this.subSitem && this.subSitem.plat_code) {
- const { plat_code } = this.subSitem;
- if (plat_code) {
- await this.onlineData(2, plat_code);
- }
- await this.againForm(this.subSitem);
- }
- this.getNewTime();
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else {
- this.$message.warning(message);
- }
- this.loading = false;
- },
- async onlineData(type, good_code) {
- this.loading = true;
- const { code, data, message } = await asyncRequest.good_detail({
- plat_code: good_code,
- });
- if (code === 0) {
- if (type === 1) {
- this.conGoodData = data;
- } else {
- this.subGoodData = data;
- const { platform_name } = data;
- if (this.status !== "2") {
- this.sitem.platform_name = platform_name + "客户";
- }
- }
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else {
- this.$message.warning(message);
- this.ruleForm.num = "0";
- await this.get_new_price();
- }
- this.loading = false;
- },
- async get_source(platform_code) {
- this.coptions = [];
- const { code, data, message } = await asyncRequest.sourceList({
- platform_id: platform_code,
- });
- if (code === 0) {
- this.coptions = data;
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else {
- this.$message.warning(message);
- }
- console.log(this.coptions.length);
- if (this.coptions.length == 0) {
- this.ruleForm.sale_source = "";
- this.$refs.ruleForm.validateField("sale_source");
- }
- },
- async resultList(e) {
- if (e && e.length === 1) {
- const { plat_code } = JSON.parse(JSON.stringify(e[0]));
- this.ruleForm.plat_code = plat_code || "";
- this.$refs.ruleForm.validateField("plat_code");
- if (plat_code) {
- await this.onlineData(2, plat_code);
- } else {
- this.subGoodData = null;
- this.coptions = [];
- this.ruleForm.num = "0";
- this.ruleForm.price = "0";
- this.ruleForm.sale_source = "";
- this.$refs.ruleForm.validateField("num");
- this.$refs.ruleForm.validateField("price");
- this.$refs.ruleForm.validateField("sale_source");
- }
- }
- },
- //省市区选择
- async select_area_change(e) {
- this.ruleForm.addr_code = e;
- this.$refs.ruleForm.validateField("addr_code");
- },
- async number_change(e, key) {
- this.ruleForm[key] = e + "" || "0";
- this.$refs.ruleForm.validateField(key);
- if (key === "num") {
- await this.get_new_price();
- }
- this.ruleForm.before_discount_all_price = this.accMul(
- this.ruleForm.num,
- this.ruleForm.price
- );
- },
- async get_new_price() {
- const { num, activity_code } = this.ruleForm;
- if (num * 1 === 0) {
- this.price_min = "0";
- this.ruleForm.price = "0";
- return;
- } else {
- const { skuCode: conSkuCode } = this.conGoodData;
- const { skuCode: subSkuCode } = this.subGoodData;
- let model = {
- skuCode:
- this.status === "3" || this.status === "4" || this.status === "5"
- ? subSkuCode
- : conSkuCode,
- sale_num: num,
- is_activity: activity_code ? "1" : "0",
- act_code: activity_code ? activity_code : "",
- };
- if (!this.priceLoding) {
- const { isok, price } = await this.set_salegetprice(model);
- this.price_min = isok ? price : "0";
- if (!isok) {
- this.ruleForm.price = "0";
- } else {
- if (price * 1 >= this.ruleForm.price * 1)
- this.ruleForm.price = price;
- }
- }
- }
- },
- async get_goods_active() {
- this.actOptions = [];
- const { skuCode, companyNo, platform_code } = this.subGoodData;
- let model = {
- skuCode,
- companyNo,
- platform_id: platform_code,
- };
- const { code, data, message } = await asyncRequest.goods_active(model);
- if (code === 0) {
- const { act } = data;
- this.actOptions = act;
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else {
- this.$message.warning(message);
- }
- if (this.actOptions.length === 0) {
- this.ruleForm.activity_code = "";
- this.$refs.ruleForm.validateField("activity_code");
- }
- },
- async resetForm() {
- // 重置
- await this.$nextTick(() => {
- if (this.$refs.ruleForm) {
- this.$refs.ruleForm.resetFields();
- this.$refs.ruleForm.clearValidate();
- this.ruleForm = ruleForm;
- }
- });
- },
- async submitForm() {
- await this.$refs.ruleForm.validate(async (valid) => {
- if (valid) {
- this.loading = true;
- let model = JSON.parse(JSON.stringify(this.ruleForm));
- const { code, data, message } = await asyncRequest.update(model);
- this.loading = false;
- if (code === 0) {
- this.$notify.success({
- title: "提交成功!",
- message: "",
- });
- this.initForm();
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else {
- this.$message.warning(message);
- }
- } else {
- console.log("error submit!!");
- return false;
- }
- });
- },
- accMul(arg1, arg2) {
- var m = 0,
- s1 = arg1.toString(),
- s2 = arg2.toString();
- try {
- m += s1.split(".")[1].length;
- } catch (e) {}
- try {
- m += s2.split(".")[1].length;
- } catch (e) {}
- return (
- (Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) /
- Math.pow(10, m)
- );
- },
- async set_salegetprice(model) {
- this.priceLoding = true;
- let resModel = {
- isok: true,
- price: "0",
- };
- // console.log(model);
- let { code, message, data } = await asyncRequest.salegetprice(model);
- if (code === 0) {
- const { sale_price } = data;
- resModel.price = sale_price + "";
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else {
- this.$message.warning(message);
- resModel.isok = false;
- }
- this.priceLoding = false;
- return resModel;
- },
- getNewTime() {
- this.newTime = new Date().valueOf();
- },
- },
- };
- </script>
- <style lang="scss" scoped>
- .orderConfirm {
- font-size: 13px;
- color: #909399 !important;
- line-height: 26px;
- .tab-row {
- border-left: 1px solid #ebeef5;
- border-top: 1px solid #ebeef5;
- display: flex;
- align-items: stretch;
- &:last-child {
- border-bottom: 1px solid #ebeef5;
- }
- .tab-item-label {
- padding: 4px 5px;
- width: 125px;
- .red {
- color: red;
- padding: 0 5px 0 0;
- }
- }
- .tab-item-main {
- width: calc(100% - 125px);
- border-left: 1px solid #ebeef5;
- .tab-title {
- display: flex;
- align-items: stretch;
- .el-col {
- padding: 3px 5px;
- border-right: 1px solid #ebeef5;
- &.nop {
- padding: 0;
- }
- &.border {
- border: 0;
- }
- }
- }
- }
- }
- }
- </style>
-
-
|