promotionForm.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822
  1. <template>
  2. <div v-loading="pageLoad">
  3. <el-dialog
  4. element-loading-text="loading..."
  5. :title="title"
  6. top="0"
  7. width="100%"
  8. lock-scroll
  9. custom-class="promotionform"
  10. :close-on-click-modal="false"
  11. :visible.sync="promotionFormVisible"
  12. @open="handleOpenDialog"
  13. @close="resetData"
  14. >
  15. <div class="dialog-body" v-loading="pageLoad">
  16. <el-form
  17. ref="promotionBuyXgetYDertailFormRef"
  18. :model="promotion"
  19. label-width="210px"
  20. size="medium"
  21. >
  22. <!-- 活动基本信息 -->
  23. <div class="box base">
  24. <div class="title">
  25. <span>{{ $t("label.setBasicEventInformationDetail") }}</span>
  26. </div>
  27. <div class="info">
  28. <!--促销名称-->
  29. <el-form-item
  30. :label="$t('label.promotionName') + ':'"
  31. prop="promotionName"
  32. >
  33. <el-input
  34. v-model.trim="promotion.title"
  35. :disabled="edit"
  36. ></el-input>
  37. </el-form-item>
  38. <div class="item row">
  39. <!--促销开始时间-->
  40. <el-form-item
  41. :label="$t('label.promotionStartTime') + ':'"
  42. prop="startTime"
  43. >
  44. <el-date-picker
  45. :disabled="edit"
  46. type="datetime"
  47. placeholder="选择日期"
  48. value-format="yyyy-MM-dd HH:mm:ss"
  49. v-model="promotion.startTime"
  50. ></el-date-picker>
  51. </el-form-item>
  52. <!--促销失效时间-->
  53. <el-form-item
  54. :label="$t('label.promotionEndTime') + ':'"
  55. prop="endTime"
  56. >
  57. <el-date-picker
  58. :disabled="edit"
  59. type="datetime"
  60. placeholder="选择日期"
  61. value-format="yyyy-MM-dd HH:mm:ss"
  62. v-model="promotion.endTime"
  63. ></el-date-picker>
  64. </el-form-item>
  65. </div>
  66. <!--应用方式-->
  67. <el-form-item
  68. :label="$t('label.applicationMethod') + ':'"
  69. prop="discountMethod"
  70. >
  71. <el-radio-group
  72. v-model="promotion.discountMethod"
  73. :disabled="edit"
  74. >
  75. <div class="item row">
  76. <el-radio :label="1">{{ $t("label.discount") }}</el-radio>
  77. <el-input
  78. v-show="promotion.discountMethod === 1"
  79. class="codeinput"
  80. v-model.trim="promotion.discountCode"
  81. :disabled="edit"
  82. />
  83. <el-radio :label="2">{{
  84. $t("label.autoDiscount")
  85. }}</el-radio>
  86. </div>
  87. </el-radio-group>
  88. </el-form-item>
  89. </div>
  90. </div>
  91. <!-- 折扣设置 -->
  92. <div class="box discount">
  93. <!-- 客户购买条件 -->
  94. <div class="title">
  95. <span>{{ $t("label.customerPurchaseConditions") }}</span>
  96. </div>
  97. <div class="info">
  98. <!--最低购买要求-->
  99. <el-form-item
  100. :label="$t('label.minimumPurchaseRequirement') + ':'"
  101. prop="minimum"
  102. >
  103. <el-radio-group
  104. v-model="promotion.purchaseRequire"
  105. :disabled="edit"
  106. >
  107. <div class="item row">
  108. <el-radio :label="3">{{ $t("label.numberStr") }}</el-radio>
  109. <el-radio :label="2">{{ $t("label.money") }}</el-radio>
  110. <el-radio :label="1">{{ $t("label.free") }}</el-radio>
  111. </div>
  112. </el-radio-group>
  113. </el-form-item>
  114. <!--折扣内容 数量&金额-->
  115. <el-form-item :label="$t('label.discountValue') + ':'">
  116. <div class="item">
  117. <!--最低要求 免费 不展示 -->
  118. <div class="item-box" v-if="promotion.purchaseRequire !== 1">
  119. <span class="label">{{ discountContentValue }}</span>
  120. <el-input
  121. class="mininput"
  122. v-model.trim="promotion.requireValue"
  123. :disabled="edit"
  124. />
  125. </div>
  126. <div class="item-box">
  127. <span class="label">{{ $t("label.buyType") }}</span>
  128. <el-input
  129. class="mininput"
  130. v-model.trim="promotion.purchaseType"
  131. :disabled="edit"
  132. />
  133. </div>
  134. </div>
  135. <div class="item product">
  136. <div class="item row">
  137. <span class="label">{{ $t("label.product") }}</span>
  138. <el-input
  139. class="mininput"
  140. v-model.trim="promotion.productBuyType"
  141. :disabled="edit"
  142. />
  143. <div class="value" v-for="(data, j) in tagLists" :key="j">
  144. <p>{{ tagValue(data) }}</p>
  145. <a
  146. href="javascript:void();"
  147. @click="handleProductDialog(data)"
  148. >{{ $t("label.viewProductDetaiL") }}</a
  149. >
  150. </div>
  151. </div>
  152. </div>
  153. </el-form-item>
  154. <!-- 每个订单一次 获得条件为金额才可见 -->
  155. <!-- <el-form-item
  156. v-if="promotion.valueType === 2"
  157. :label="$t('label.oncePerOrder') + ':'"
  158. >
  159. <el-checkbox
  160. v-model="promotion.oncePerOrder"
  161. :disabled="edit"
  162. >{{ $t("label.oncePerOrderDesc") }}</el-checkbox
  163. >
  164. </el-form-item> -->
  165. </div>
  166. <!-- 客户获得条件 -->
  167. <div class="title">
  168. <span>{{ $t("label.customerGetConditions") }}</span>
  169. </div>
  170. <div class="info">
  171. <!--折扣内容 数量&金额-->
  172. <!-- <el-form-item :label="$t('label.discountValue') + ':'">
  173. <div class="item">
  174. <span class="label">{{ $t("label.numberStr") }}</span>
  175. <el-input
  176. class="mininput"
  177. v-model.trim="promotion.requireValue"
  178. :disabled="edit"
  179. />
  180. </div>
  181. <div class="item product">
  182. <div class="item-box">
  183. <span class="label">{{ $t("label.product") }}</span>
  184. <el-input
  185. class="mininput"
  186. v-model.trim="promotion.productType"
  187. :disabled="edit"
  188. />
  189. <el-input
  190. class="productinput"
  191. :placeholder="$t('label.productPlaceholder')"
  192. v-model.trim="productSku"
  193. />
  194. <el-button
  195. @click="handleProductSearch"
  196. v-waves
  197. type="primary"
  198. >{{ $t("view.search") }}
  199. </el-button>
  200. <div class="skucon">
  201. <span
  202. v-for="(item, i) in getTagList"
  203. :class="productKeys.includes(item) ? 'active' : ''"
  204. :key="i"
  205. >{{ item }},</span
  206. >
  207. </div>
  208. </div>
  209. </div>
  210. </el-form-item> -->
  211. <!--折扣额-->
  212. <el-form-item
  213. :label="$t('label.discountPromotion') + ':'"
  214. prop="discount"
  215. class="discount"
  216. >
  217. <el-radio-group v-model="promotion.valueType" :disabled="edit">
  218. <div class="item row">
  219. <el-radio :label="1">{{ $t("label.percentage") }}</el-radio>
  220. <el-input
  221. v-if="promotion.valueType === 1"
  222. class="mininput"
  223. v-model.trim="promotion.discountNumber"
  224. :disabled="edit"
  225. >
  226. <span class="el-input__icon" slot="suffix">%</span>
  227. </el-input>
  228. </div>
  229. <div class="item row">
  230. <el-radio :label="2">{{
  231. $t("label.discountPerItem")
  232. }}</el-radio>
  233. <el-input
  234. v-if="promotion.valueType === 2"
  235. class="mininput"
  236. v-model.trim="promotion.numericValue"
  237. :disabled="edit"
  238. />
  239. </div>
  240. <el-radio :label="3">{{ $t("label.free") }}</el-radio>
  241. </el-radio-group>
  242. </el-form-item>
  243. </div>
  244. <!-- 每个订单使用次数 折扣码才有-->
  245. <!-- <div v-if="promotion.discountMethod === 1">
  246. <div class="title">
  247. <span>{{ $t("label.numberOfTimesUsedPerOrder") }}</span>
  248. </div>
  249. <div class="info">
  250. <el-form-item>
  251. <div class="item row">
  252. <el-checkbox v-model="usageLimitchecked" :disabled="edit">{{
  253. $t("label.maxNumberOfTimesUsedPerOrder")
  254. }}</el-checkbox>
  255. <el-input
  256. class="mininput checkboxinput"
  257. v-model.trim="promotion.customerGetOrderUsageLimit"
  258. :disabled="edit"
  259. />
  260. </div>
  261. </el-form-item>
  262. </div>
  263. </div> -->
  264. </div>
  265. <!-- 客户资格 折扣码才有-->
  266. <div class="box" v-if="promotion.discountMethod === 1">
  267. <div class="title">
  268. <span>{{ $t("label.customerQualification") }}</span>
  269. </div>
  270. <div class="info customerQualification">
  271. <el-form-item prop="customerQualification" required>
  272. <el-radio-group
  273. class="customerqualification"
  274. v-model="promotion.targetCustomerType"
  275. :disabled="edit"
  276. >
  277. <el-radio :label="1">{{
  278. $t("label.customerQualificationList")[0].label
  279. }}</el-radio>
  280. <div class="item row">
  281. <el-radio :label="2">{{
  282. $t("label.customerQualificationList")[1].label
  283. }}</el-radio>
  284. <el-input
  285. v-if="promotion.targetCustomerType === 2"
  286. class="mininput"
  287. v-model.trim="promotion.targetCustomer"
  288. :disabled="edit"
  289. />
  290. </div>
  291. <div class="item row">
  292. <el-radio :label="3">{{
  293. $t("label.customerQualificationList")[2].label
  294. }}</el-radio>
  295. <el-input
  296. v-if="promotion.targetCustomerType === 3"
  297. class="mininput"
  298. v-model.trim="promotion.targetCustomer"
  299. :disabled="edit"
  300. />
  301. </div>
  302. <!-- <el-radio
  303. v-for="(item, i) in $t('label.customerQualificationList')"
  304. :key="i"
  305. :label="item.value"
  306. >{{ item.label }}</el-radio
  307. > -->
  308. </el-radio-group>
  309. </el-form-item>
  310. </div>
  311. </div>
  312. <!-- 最大折扣使用次数 折扣码才有-->
  313. <div class="box" v-if="promotion.discountMethod === 1">
  314. <div class="title">
  315. <span>{{ $t("label.maximumNumberOfDiscounts") }}</span>
  316. </div>
  317. <div class="info">
  318. <el-form-item>
  319. <!-- <el-checkbox-group v-model="promotion.startTime"> -->
  320. <div class="item row">
  321. <el-checkbox
  322. :checked="codeUsageLimitchecked"
  323. :disabled="edit"
  324. >{{ $t("label.limitDiscountCount") }}</el-checkbox
  325. >
  326. <el-input
  327. class="mininput checkboxinput"
  328. v-model.trim="promotion.codeUsageLimit"
  329. :disabled="edit"
  330. />
  331. </div>
  332. <div class="item row">
  333. <el-checkbox
  334. :checked="promotion.codeCustomerUsageType === 1"
  335. :disabled="edit"
  336. >{{ $t("label.customerCount") }}</el-checkbox
  337. >
  338. </div>
  339. <!-- </el-checkbox-group> -->
  340. </el-form-item>
  341. </div>
  342. </div>
  343. <!-- 组合 自动折扣才有 -->
  344. <div class="box">
  345. <div class="title">
  346. <span>{{ $t("label.combination") }}</span>
  347. </div>
  348. <div class="info">
  349. <el-form-item :label="$t('label.combinationLable') + ':'">
  350. <el-checkbox-group v-model="promotion.combination">
  351. <el-checkbox
  352. v-for="(item, i) in $t('label.combinationList')"
  353. :key="i"
  354. :label="item.value"
  355. :disabled="edit"
  356. >{{ item.label }}
  357. </el-checkbox>
  358. </el-checkbox-group>
  359. </el-form-item>
  360. </div>
  361. </div>
  362. </el-form>
  363. </div>
  364. <template slot="footer">
  365. <el-button
  366. @click="
  367. resetData();
  368. promotionFormVisible = false;
  369. "
  370. >{{ $t("view.cancel") }}
  371. </el-button>
  372. <!-- 未审核时/审核驳回 状态可进行提交 -->
  373. <!-- <el-button type="primary" @click="handleSaveOrUpdate" :disabled="edit"
  374. >{{ $t("view.confirm") }}
  375. </el-button> -->
  376. </template>
  377. </el-dialog>
  378. <product-collection ref="productCollectionRef" />
  379. </div>
  380. </template>
  381. <script>
  382. import waves from "@/directive/waves"; // 水波纹指令
  383. import { fetchDetailByIdAndVersion } from "@/api/oms/order/multiBuyDiscount";
  384. import i18n from "@/lang";
  385. import { isEmpty } from "@/utils/toolUtil";
  386. import productCollection from "@/views/oms/promotion/buyXGetYDiscount/components/productCollectionDetail";
  387. export default {
  388. inject: ["reload"],
  389. directives: {
  390. waves
  391. },
  392. name: "buyXgetYbuyDiscountForm",
  393. components: {
  394. productCollection
  395. },
  396. computed: {
  397. discountContentValue() {
  398. return this.promotion.purchaseRequire === 2
  399. ? i18n.t("label.money")
  400. : i18n.t("label.numberStr");
  401. }
  402. },
  403. data() {
  404. return {
  405. promotionFormVisible: false,
  406. title: "",
  407. productSku: "",
  408. productKeys: [],
  409. usageLimitchecked: false,
  410. codeUsageLimitchecked: false,
  411. tagLists: [],
  412. getTagList: [],
  413. promotion: {
  414. // 配置基本信息
  415. id: "",
  416. title: "",
  417. startTime: "",
  418. endTime: "",
  419. discountMethod: null,
  420. discountNumber: null,
  421. purchaseRequire: null,
  422. purchaseType: "",
  423. productType: "",
  424. productBuyType: "",
  425. discount: "",
  426. combination: []
  427. },
  428. edit: true,
  429. noDataText: "加载中",
  430. pageLoad: false,
  431. isEmpty
  432. };
  433. },
  434. methods: {
  435. tagValue(data) {
  436. return (
  437. data.title +
  438. i18n.t("label.productCollection") +
  439. i18n.t("label.all") +
  440. data.spus.length +
  441. i18n.t("label.itemProduct")
  442. );
  443. },
  444. async showDialog(id, edit, version) {
  445. this.edit = edit;
  446. if (id) {
  447. // 修改配置
  448. this.promotion.id = id;
  449. this.promotion.version = version;
  450. await this.getPromotionInfo();
  451. this.title = this.edit
  452. ? i18n.t("label.mutiPromotionDetailTitle")
  453. : i18n.t("label.mutiPromotionUpdateTitle");
  454. } else {
  455. this.title = i18n.t("label.mutiPromotionCreateTitle");
  456. }
  457. let str = this.promotion.id ? "Detail" : "";
  458. this.discountSettingTitle = i18n.t("label.discountSetting" + str);
  459. this.productRangeTitle = i18n.t("label.setProductRange" + str);
  460. this.promotionFormVisible = true;
  461. },
  462. // 款号搜索
  463. handleProductSearch() {
  464. this.productKeys = this.productSku.split(",");
  465. },
  466. handleProductDialog(data) {
  467. this.$refs.productCollectionRef.showDialog(data);
  468. },
  469. resetData() {
  470. this.promotion = {
  471. id: "",
  472. title: "",
  473. startTime: "",
  474. endTime: "",
  475. discountMethod: null,
  476. discountNumber: null,
  477. purchaseRequire: null,
  478. purchaseType: "",
  479. productType: "",
  480. productBuyType: "",
  481. discount: "",
  482. combination: []
  483. };
  484. },
  485. handleOpenDialog() {
  486. this.resetData();
  487. if (this.$refs.promotionBuyXgetYDertailFormRef) {
  488. this.$refs.promotionBuyXgetYDertailFormRef.clearValidate();
  489. }
  490. },
  491. getPromotionInfo() {
  492. this.pageLoad = true;
  493. let { id, version } = this.promotion;
  494. fetchDetailByIdAndVersion({ id, version })
  495. .then(res => {
  496. // 促销配置信息
  497. const { priceRule, productTags, giveProductCollects } = res.data;
  498. this.promotion = { ...priceRule, productTags };
  499. if (priceRule.valueType === 1) {
  500. let number = priceRule.numericValue * 100;
  501. // this.promotion.discountNumber = number;
  502. this.$set(this.promotion, "discountNumber", number);
  503. }
  504. if (priceRule.purchaseRequire === 3) {
  505. // this.promotion.quantity = priceRule.requireValue;
  506. this.$set(this.promotion, "quantity", priceRule.requireValue);
  507. } else if (priceRule.purchaseRequire === 2) {
  508. // this.promotion.miniAmount = priceRule.requireValue;
  509. this.$set(this.promotion, "miniAmount", priceRule.requireValue);
  510. }
  511. // 购买类型
  512. const targetType = i18n
  513. .t("label.promotionBuyTyper")
  514. .find(item => item.value === priceRule.targetType);
  515. if (targetType && targetType.label) {
  516. this.$set(this.promotion, "purchaseType", targetType.label);
  517. }
  518. // 顾客购买商品类型
  519. const productBuyType = i18n
  520. .t("label.promotionCustomerGetType")
  521. .find(item => item.value === priceRule.targetSelectionType);
  522. if (productBuyType && productBuyType.label) {
  523. this.$set(this.promotion, "productBuyType", productBuyType.label);
  524. }
  525. // 顾客得到商品类型
  526. const productType = i18n
  527. .t("label.promotionCustomerGetType")
  528. .find(item => item.value === priceRule.customerGetType);
  529. if (productType && productType.label) {
  530. this.$set(this.promotion, "productType", productType.label);
  531. }
  532. // 组合
  533. const {
  534. combineWithOrder,
  535. combineWithProduct,
  536. combineWithShipping,
  537. targetShopifyProductSpu,
  538. targetShopifySku,
  539. targetSelectionType,
  540. customerGetType,
  541. getTargetShopifyProductSpu,
  542. getTargetShopifySku,
  543. customerGetOrderUsageLimit,
  544. codeUsageLimit
  545. } = priceRule;
  546. let combinationArr = [];
  547. if (combineWithOrder) {
  548. combinationArr.push(i18n.t("label.combinationList")[1].value);
  549. }
  550. if (combineWithProduct) {
  551. combinationArr.push(i18n.t("label.combinationList")[0].value);
  552. }
  553. if (combineWithShipping) {
  554. combinationArr.push(i18n.t("label.combinationList")[2].value);
  555. }
  556. this.usageLimitchecked = !!customerGetOrderUsageLimit;
  557. this.codeUsageLimitchecked = !!codeUsageLimit;
  558. this.$set(this.promotion, "combination", combinationArr);
  559. // 折扣适用 1特定系列 其他2,3 特定商品
  560. let tagLists = [];
  561. if (targetSelectionType === 1) {
  562. tagLists = productTags.map(item => {
  563. let data = [];
  564. if (item.spu) {
  565. data = item.spu.split(",");
  566. }
  567. item.spus = data;
  568. return item;
  569. });
  570. } else {
  571. // 特地商品
  572. if (targetShopifySku) {
  573. const spusSKU = targetShopifySku.split(",");
  574. tagLists.push({ title: "", spus: spusSKU });
  575. }
  576. if (targetShopifyProductSpu) {
  577. const spusId = targetShopifyProductSpu.split(",");
  578. tagLists.push({ title: "", spus: spusId });
  579. }
  580. }
  581. this.tagLists = tagLists;
  582. // 折扣得到条件 1 特定系列 2 特定商品
  583. let getTagList = [];
  584. if (customerGetType === 1) {
  585. giveProductCollects.forEach(item => {
  586. if (item.spu) {
  587. const arr = item.spu.split(",");
  588. getTagList.push.apply(getTagList, arr);
  589. }
  590. });
  591. } else {
  592. // 特地商品
  593. if (getTargetShopifySku) {
  594. const skus = getTargetShopifySku.split(",");
  595. getTagList.push.apply(getTagList, skus);
  596. }
  597. if (getTargetShopifyProductSpu) {
  598. const spus = getTargetShopifyProductSpu.split(",");
  599. getTagList.push.apply(getTagList, spus);
  600. }
  601. }
  602. this.getTagList = getTagList;
  603. })
  604. .finally(() => {
  605. this.pageLoad = false;
  606. });
  607. }
  608. }
  609. };
  610. </script>
  611. <style lang="scss">
  612. .promotionform {
  613. width: 100%;
  614. height: 100%;
  615. position: fixed;
  616. top: 0px;
  617. left: 0px;
  618. .el-dialog__header {
  619. padding: 36px 21px 0px 34px;
  620. .el-dialog__title {
  621. font-size: 18px;
  622. font-weight: bold;
  623. color: #ae8877;
  624. line-height: 22px;
  625. }
  626. }
  627. .el-form-item__label {
  628. font-weight: 400;
  629. font-size: 12px;
  630. }
  631. .el-dialog__body {
  632. padding: 30px 10px 30px 34px;
  633. }
  634. .el-dialog__headerbtn {
  635. top: 14px;
  636. right: 14px;
  637. font-weight: bold;
  638. .el-icon-close {
  639. font-weight: bold;
  640. }
  641. }
  642. .el-input {
  643. width: 220px !important;
  644. }
  645. }
  646. </style>
  647. <style scoped rel="stylesheet/scss" lang="scss">
  648. .dialog-body {
  649. height: 80vh;
  650. overflow: auto;
  651. .box {
  652. border-bottom: 1px solid #d8d8d8;
  653. padding-bottom: 20px;
  654. margin-bottom: 42px;
  655. &.base {
  656. .info {
  657. width: 25%;
  658. }
  659. }
  660. &.discount {
  661. .info {
  662. margin-bottom: 60px;
  663. }
  664. }
  665. .title {
  666. color: #606266;
  667. font-size: 16px;
  668. line-height: 16px;
  669. position: relative;
  670. font-weight: bold;
  671. padding-left: 6px;
  672. margin-bottom: 23px;
  673. &:before {
  674. position: absolute;
  675. left: 0px;
  676. top: 0px;
  677. content: "";
  678. display: inline-block;
  679. width: 3px;
  680. height: 13px;
  681. background: #ae8877;
  682. border-radius: 0px 0px 0px 0px;
  683. }
  684. }
  685. }
  686. // /deep/.el-form-item__label-wrap {
  687. // margin-left: 0px !important;
  688. // .el-form-item__label {
  689. // text-align: right;
  690. // }
  691. // }
  692. .skucon {
  693. width: 90%;
  694. height: 139px;
  695. overflow-y: auto;
  696. border-radius: 3px 3px 3px 3px;
  697. border: 1px solid #dcdfe6;
  698. background: #f5f7fa;
  699. margin-top: 12px;
  700. padding: 10px;
  701. font-size: 12px;
  702. line-height: 16px;
  703. .active {
  704. color: #fd5959;
  705. }
  706. }
  707. .productbox {
  708. border-bottom: none;
  709. }
  710. .info {
  711. .item {
  712. display: flex;
  713. flex-direction: row;
  714. flex-wrap: wrap;
  715. align-items: center;
  716. &.row {
  717. flex-wrap: nowrap;
  718. }
  719. .el-form-item {
  720. margin-right: 42px !important;
  721. }
  722. .codeinput {
  723. margin-right: 36px;
  724. }
  725. .mininput {
  726. margin-right: 30px;
  727. width: 180px !important;
  728. }
  729. .checkboxinput {
  730. margin-left: 20px;
  731. }
  732. .productinput {
  733. width: 340px !important;
  734. }
  735. .label {
  736. margin-right: 12px;
  737. }
  738. &.product {
  739. margin-top: 26px;
  740. .label {
  741. margin-bottom: 10px;
  742. }
  743. .mininput {
  744. margin-right: 20px;
  745. margin-bottom: 10px;
  746. }
  747. .row {
  748. flex-wrap: wrap;
  749. }
  750. .collectioninput {
  751. margin-right: 20px;
  752. min-width: 220px !important;
  753. width: auto !important;
  754. /deep/.el-input-group__append {
  755. color: #ae8877;
  756. border-left: none;
  757. font-size: 12px;
  758. padding: 0px 5px;
  759. background: #f5f7fa;
  760. span {
  761. cursor: pointer;
  762. }
  763. }
  764. /deep/.el-input__inner {
  765. border-right: none;
  766. }
  767. }
  768. .value {
  769. margin-bottom: 10px;
  770. }
  771. }
  772. }
  773. .discount {
  774. .item {
  775. margin-bottom: 20px;
  776. /deep/.el-radio {
  777. min-width: 135px;
  778. }
  779. }
  780. }
  781. .customerqualification {
  782. .el-radio {
  783. display: block;
  784. margin-bottom: 30px;
  785. }
  786. }
  787. }
  788. .value {
  789. position: relative;
  790. min-width: 300px;
  791. height: 36px;
  792. padding: 0px 6px;
  793. font-size: 12px;
  794. margin-right: 13px;
  795. color: #c0c4cc;
  796. background: #f5f7fa;
  797. border-radius: 3px;
  798. border: 1px solid #dcdfe6;
  799. p {
  800. line-height: 12px;
  801. padding-right: 130px;
  802. overflow: hidden;
  803. text-overflow: ellipsis;
  804. white-space: nowrap;
  805. }
  806. a {
  807. position: absolute;
  808. right: 10px;
  809. top: 0%;
  810. color: #ae8877;
  811. }
  812. }
  813. .customerQualification {
  814. .mininput {
  815. margin-bottom: 30px;
  816. }
  817. }
  818. }
  819. </style>