openOrder.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. <template>
  2. <view class="open_order" @click="handleClickOutside">
  3. <u-navbar class="nav-bar" title="销售业务开单" :autoBack="true" :placeholder="true" v-hideNav></u-navbar>
  4. <view class="open_order_content">
  5. <view class="header">
  6. <img :src="openOrderForm.url" alt="">
  7. <view class="header_box">
  8. <view class="title">
  9. {{ openOrderForm.title }} | {{ openOrderForm.desc }}
  10. </view>
  11. <view class="header_detail_box">
  12. <view class="total_cost">
  13. <view class="total_cost_title">系统总成本</view>
  14. <view class="total_cost_price">¥{{ openOrderForm.totalCost }}</view>
  15. </view>
  16. <view class="advice_price">
  17. <view class="advice_price_title">建议标价</view>
  18. <view class="advice_price_price">¥{{ openOrderForm.advicePrice }}</view>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. <u--form labelPosition="top" :model="openOrderForm" :rules="rules" ref="openOrderForm" label-width="200rpx">
  24. <view class="card_item">
  25. <u-form-item label="成交金额" required prop="price">
  26. ¥<u--input v-model="openOrderForm.price" border="none" type="number"></u--input>
  27. </u-form-item>
  28. </view>
  29. <view class="card_item">
  30. <u-form-item label="开单数量">
  31. <u-number-box v-model="openOrderForm.quantity"></u-number-box>
  32. </u-form-item>
  33. </view>
  34. <view class="card_item">
  35. <u-form-item label="订单类型">
  36. <TabSelect :tabList="tabList" mode="multiple" :colNum="4" :defaultIndex="1"
  37. @tabChange="changeOrderType">
  38. </tabSelect>
  39. </u-form-item>
  40. </view>
  41. <view class="card_item">
  42. <u-form-item label="销售人员与时间" class="sales_person_box_form">
  43. <view class="sales_person_box" @click="personShow = true">
  44. <u-icon name="man-add" size="36rpx" color="#374151"></u-icon>
  45. <view class="text">{{ openOrderForm.salesPerson }}</view>
  46. </view>
  47. <view class="sales_person_box" @click="dateShow = true">
  48. <u-icon name="calendar" size="36rpx" color="#374151"></u-icon>
  49. <view class="text">{{ openOrderForm.date }}</view>
  50. </view>
  51. </u-form-item>
  52. </view>
  53. <view class="card_item">
  54. <u-form-item label="收款方式">
  55. <TabSelect :tabList="paymentTabList" mode="single" :colNum="4" :defaultIndex="1"
  56. @tabChange="changePaymentTab">
  57. </tabSelect>
  58. </u-form-item>
  59. </view>
  60. <view class="card_item">
  61. <u-form-item label="售后保障配置">
  62. <TabSelect :tabList="afterSaleTabList" mode="multiple" :colNum="3" :defaultIndex="1"
  63. @tabChange="changeAfterSaleTab">
  64. </tabSelect>
  65. </u-form-item>
  66. </view>
  67. <view class="card_item">
  68. <u-form-item label="支付凭证上传">
  69. <u-upload :fileList="paymentProof" @afterRead="afterReadPaymentProof" @delete="deletePaymentProof"
  70. name="1" multiple :maxCount="10"></u-upload>
  71. </u-form-item>
  72. </view>
  73. <view class="card_item">
  74. <u-form-item label="订单备注">
  75. <u--textarea v-model="openOrderForm.remark" placeholder="请输入订单备注" confirmType="done"></u--textarea>
  76. </u-form-item>
  77. </view>
  78. <view class="card_item">
  79. <u-form-item label="收货地址">
  80. <u--textarea v-model="openOrderForm.address" placeholder="请输入收货地址" confirmType="done"></u--textarea>
  81. </u-form-item>
  82. </view>
  83. </u--form>
  84. </view>
  85. <view class="bottom_box">
  86. <view class="bottom_box_item">
  87. <view class="bottom_box_item_title">实收总计</view>
  88. <view class="bottom_box_item_price">¥{{ openOrderForm.amountReceived }}</view>
  89. </view>
  90. <u-button color="#3c9cff" type="primary" @click="submitForm" icon="checkmark">确认开单</u-button>
  91. </view>
  92. <u-popup :show="personShow" @close="close" @open="open">
  93. 人员选择
  94. </u-popup>
  95. <u-datetime-picker :show="dateShow" v-model="openOrderForm.date" mode="date" @confirm="confirmDate"
  96. @close="closeDate" @cancel="closeDate"></u-datetime-picker>
  97. </view>
  98. </template>
  99. <script>
  100. import TabSelect from '@/components/custom-tab-select/index.vue'
  101. export default {
  102. components: {
  103. TabSelect,
  104. },
  105. data() {
  106. return {
  107. openOrderForm: {
  108. url: require('./imgs/1.jpg'),
  109. title: 'ROLEX',
  110. desc: 'SUBMSRINER DATE 126610LN',
  111. totalCost: '82500',
  112. advicePrice: '890000',
  113. price: null,
  114. quantity: 1,
  115. salesPerson: 'IT秦',
  116. orderType: [],
  117. date: '2026-1-1',
  118. paymentTab: 1,
  119. afterSaleTab: [],
  120. remark: '',
  121. address: '',
  122. amountReceived: 89000,
  123. },
  124. paymentProof: [],
  125. tabList: [
  126. {
  127. name: '零售',
  128. value: 1,
  129. },
  130. {
  131. name: '寄卖',
  132. value: 2,
  133. },
  134. {
  135. name: '同行',
  136. value: 3,
  137. },
  138. {
  139. name: '退货',
  140. value: 4,
  141. },
  142. {
  143. name: '质押',
  144. value: 5,
  145. },
  146. ],
  147. paymentTabList: [
  148. {
  149. name: '微信',
  150. value: 1,
  151. },
  152. {
  153. name: '支付宝',
  154. value: 2,
  155. },
  156. {
  157. name: '银行卡',
  158. value: 3,
  159. },
  160. {
  161. name: '现金',
  162. value: 4,
  163. },
  164. {
  165. name: '数字货币',
  166. value: 5,
  167. },
  168. {
  169. name: '挂账',
  170. value: 6,
  171. },
  172. ],
  173. afterSaleTabList: [
  174. {
  175. name: '假一赔三',
  176. value: 1,
  177. },
  178. {
  179. name: '一年质保',
  180. value: 2,
  181. },
  182. {
  183. name: '一年内八折回收',
  184. value: 3,
  185. },
  186. {
  187. name: '送保养一次',
  188. value: 4,
  189. },
  190. {
  191. name: '原厂配件保证',
  192. value: 5,
  193. },
  194. ],
  195. rules: {
  196. price: [
  197. { required: true, message: '请输入成交金额', trigger: ['blur'] },
  198. ],
  199. },
  200. personShow: false,
  201. dateShow: false,
  202. }
  203. },
  204. methods: {
  205. changeOrderType(val) {
  206. this.openOrderForm.orderType = val
  207. },
  208. changePaymentTab(val) {
  209. this.openOrderForm.paymentTab = val
  210. },
  211. changeAfterSaleTab(val) {
  212. this.openOrderForm.afterSaleTab = val
  213. },
  214. handleClickOutside() {
  215. this.personShow = false
  216. },
  217. confirmDate(val) {
  218. this.openOrderForm.date = this.$dayjs(val.value).format('YYYY-MM-DD');
  219. console.log(this.openOrderForm.date);
  220. this.dateShow = false
  221. },
  222. closeDate() {
  223. this.dateShow = false
  224. },
  225. afterReadPaymentProof(file) {
  226. // this.paymentProof.push(file)
  227. },
  228. deletePaymentProof(index) {
  229. // this.paymentProof.splice(index, 1)
  230. },
  231. submitForm() {
  232. this.$refs.openOrderForm.validate().then(res => {
  233. if (res) {
  234. console.log('提交成功', this.openOrderForm);
  235. }
  236. })
  237. },
  238. }
  239. }
  240. </script>
  241. <style lang="scss" scoped>
  242. @import './styles/openOrder.scss';
  243. </style>