userDetail.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  1. <template>
  2. <div class="order-content">
  3. <div class="order-status" v-if="order!=null" >
  4. <el-steps :active="order.status==3?order.status+1:order.status" align-center>
  5. <el-step title="待支付"></el-step>
  6. <el-step title="待发货"></el-step>
  7. <el-step title="待收货"></el-step>
  8. <el-step title="交易完成"></el-step>
  9. </el-steps>
  10. </div>
  11. <div>
  12. <el-card shadow="never" style="margin-top: 15px">
  13. <div class="operate-container" v-if="order!=null">
  14. <span style="margin-left: 20px" class="color-danger">订单状态:
  15. <el-tag prop="status" v-for="(item, index) in statusOptions" v-if="order.status==item.dictValue">{{item.dictLabel}}</el-tag>
  16. </span>
  17. <div class="operate-button-container" >
  18. <el-button size="mini" @click="editOrder()" v-hasPermi="['store:storeOrder:edit']" >修改订单</el-button>
  19. </div>
  20. <div class="operate-button-container" v-hasPermi="['store:storeOrder:finishOrder']" v-if="order.status===2">
  21. <el-button size="mini" @click="finishOrder()" >确认收货</el-button>
  22. </div>
  23. <div class="operate-button-container" v-if="order.status==1||order.status==2" v-hasPermi="['store:storeOrder:refundOrderMoney']" >
  24. <el-button size="mini" @click="refundOrderMoney()" >退款</el-button>
  25. </div>
  26. <div class="operate-button-container" v-hasPermi="['store:storeOrder:express']" >
  27. <el-button size="mini" @click="showExpress()">查看物流</el-button>
  28. </div>
  29. <div class="operate-button-container" v-if="order.tuiMoneyStatus==0" v-hasPermi="['store:storeOrder:editTuiMoney']" >
  30. <el-button size="mini" @click="editTuiMoney1()" >解冻</el-button>
  31. </div>
  32. <div class="operate-button-container" v-if="order.tuiMoneyStatus==1" v-hasPermi="['store:storeOrder:editTuiMoney']" >
  33. <el-button size="mini" @click="editTuiMoney2()" >冻结</el-button>
  34. </div>
  35. <div class="operate-button-container" v-if="order.status==3&&order.tuiMoneyStatus==null" v-hasPermi="['store:storeOrder:addTuiMoney']" >
  36. <el-button size="mini" @click="addTuiMoney()" >分佣</el-button>
  37. </div>
  38. <!-- <div class="operate-button-container" v-if="order.extendOrderId!=null" v-hasPermi="['store:storeOrder:getEroOrder']" >
  39. <el-button size="mini" @click="showErpOrder()" >查看ERP订单信息</el-button>
  40. </div>-->
  41. <div class="operate-button-container" v-if="order.isPayRemain!=null&&order.isPayRemain==1" v-hasPermi="['store:storeOrder:auditPayRemain']" >
  42. <el-button size="mini" @click="auditPayRemain()" >尾款审核</el-button>
  43. </div>
  44. <div class="operate-button-container" >
  45. <el-button size="mini" @click="editDelivery()" v-hasPermi="['store:storeOrder:editDeliveryId']" >修改物流</el-button>
  46. </div>
  47. <div class="operate-button-container" v-if="order.status >=1 && order.extendOrderId == null && order.deliveryId == null" v-hasPermi="['store:storeOrder:createErpOrder']" >
  48. <el-button size="mini" @click="addErpOrder()" >创建ERP订单信息</el-button>
  49. </div>
  50. <!-- <div class="operate-button-container" v-show="order.status===2">
  51. <el-button size="mini" >去发货</el-button>
  52. <el-button size="mini" >备注订单</el-button>
  53. </div>
  54. <div class="operate-button-container" v-show="order.status===4">
  55. <el-button size="mini" >订单跟踪</el-button>
  56. <el-button size="mini" disabled>备注订单</el-button>
  57. </div> -->
  58. </div>
  59. <div style="margin: 20px 0px">
  60. <span class="font-small">基本信息</span>
  61. </div>
  62. <el-descriptions :column="4" border >
  63. <el-descriptions-item label="订单编号" >
  64. <span v-if="order!=null">
  65. {{order.orderCode}}
  66. </span>
  67. <el-tag v-for="(item, index) in createTypeOptions" v-if="order!=null&&order.orderCreateType==item.dictValue">{{item.dictLabel}}
  68. </el-tag>
  69. </el-descriptions-item>
  70. <el-descriptions-item label="会员" >
  71. <span v-if="user!=null">
  72. {{user.nickname}}({{user.phone}})
  73. </span>
  74. </el-descriptions-item>
  75. <el-descriptions-item label="支付方式" >
  76. <el-tag prop="payType" v-for="(item, index) in payTypeOptions" v-if="order!=null&&order.payType==item.dictValue">{{item.dictLabel}}
  77. </el-tag>
  78. </el-descriptions-item>
  79. <!-- <el-descriptions-item label="订单类型" >
  80. <el-tag prop="orderType" v-for="(item, index) in orderTypeOptions" v-if="order!=null&&order.orderType==item.dictValue">{{item.dictLabel}}</el-tag>
  81. </el-descriptions-item>-->
  82. <el-descriptions-item label="物流公司编号" >
  83. <span v-if="order!=null">
  84. {{order.deliverySn}}
  85. </span>
  86. </el-descriptions-item>
  87. <el-descriptions-item label="物流公司名称" >
  88. <span v-if="order!=null">
  89. {{order.deliveryName}}
  90. </span>
  91. </el-descriptions-item>
  92. <el-descriptions-item label="物流单号" >
  93. <span v-if="order!=null">
  94. {{order.deliveryId}}
  95. </span>
  96. </el-descriptions-item>
  97. <el-descriptions-item label="物流状态" >
  98. <span v-if="order!=null">
  99. <el-tag prop="deliveryId" v-for="(item, index) in deliveryStatusOptions" v-if="order!=null&&order.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>
  100. </span>
  101. </el-descriptions-item>
  102. <el-descriptions-item label="物流跟踪状态" >
  103. <span v-if="order!=null">
  104. <el-tag prop="deliveryId" v-for="(item, index) in deliveryTypeOptions" v-if="order!=null&&order.deliveryType==item.dictValue">{{item.dictLabel}}</el-tag>
  105. </span>
  106. </el-descriptions-item>
  107. <el-descriptions-item label="物流结算费用" >
  108. <span v-if="order!=null&&order.deliveryPayMoney!=null ">
  109. {{order.deliveryPayMoney.toFixed(2) }}
  110. </span>
  111. </el-descriptions-item>
  112. <el-descriptions-item label="快递帐单日期" >
  113. <span v-if="order!=null ">
  114. {{order.deliveryTime }}
  115. </span>
  116. </el-descriptions-item>
  117. <el-descriptions-item label="快递结算日期" >
  118. <span v-if="order!=null ">
  119. {{order.deliveryPayTime }}
  120. </span>
  121. </el-descriptions-item>
  122. <el-descriptions-item label="推广佣金" >
  123. <span v-if="order!=null ">
  124. {{order.tuiMoney }}
  125. </span>
  126. </el-descriptions-item>
  127. <el-descriptions-item label="收货人" >
  128. <span v-if="order!=null ">
  129. {{order.realName }}
  130. </span>
  131. </el-descriptions-item>
  132. <el-descriptions-item label="手机号码" >
  133. <span v-if="order!=null ">
  134. {{order.userPhone }}
  135. </span>
  136. <el-button icon="el-icon-search" size="mini" @click="handlePhone()" style="margin-left: 20px;" circle v-hasPermi="['store:storeOrder:queryPhone']"></el-button>
  137. </el-descriptions-item>
  138. <el-descriptions-item label="收货地址" >
  139. <el-popover
  140. v-if="order!=null"
  141. placement="top-start"
  142. title="收货地址"
  143. width="300"
  144. trigger="hover"
  145. :content="order.userAddress">
  146. <span slot="reference">{{order.userAddress}}</span>
  147. <el-button icon="el-icon-search" size="mini" @click="handleAddress()" style="margin-left: 20px;" circle v-hasPermi="['store:storeOrder:queryAddress']"></el-button>
  148. </el-popover>
  149. </el-descriptions-item>
  150. <el-descriptions-item label="档期归属" >
  151. <el-tag prop="scheduleId" v-for="(item, index) in scheduleOptions" v-if="order!=null&&order.scheduleId==item.id">{{item.name}}
  152. </el-tag>
  153. </el-descriptions-item>
  154. <el-descriptions-item label="用户备注" >
  155. <span v-if="order!=null">
  156. {{order.mark}}
  157. </span>
  158. </el-descriptions-item>
  159. </el-descriptions>
  160. <div style="margin: 20px 0px" v-if="order!=null">
  161. <span class="font-small">
  162. 凭证信息
  163. </span>
  164. </div>
  165. <el-image
  166. v-if="certificates != null"
  167. :src="certificates"
  168. :preview-src-list="[certificates]"
  169. :style="{ width: '100px', height: '100px' }"
  170. @click.native="showImageDialog"
  171. ></el-image>
  172. <el-dialog :visible.sync="dialogVisibleImage" width="10%">
  173. <img :src="certificates" style="width: 100%" alt="">
  174. </el-dialog>
  175. <div style="margin-top: 20px">
  176. <span class="font-small">商品信息</span>
  177. </div>
  178. <el-table
  179. border
  180. v-if="items!=null"
  181. :data="items"
  182. size="small"
  183. style="width: 100%;margin-top: 20px" >
  184. <el-table-column label="商品图片" width="150" align="center">
  185. <template slot-scope="scope">
  186. <img :src="JSON.parse(scope.row.jsonInfo).image" style="height: 80px">
  187. </template>
  188. </el-table-column>
  189. <el-table-column label="商品编码" width="300" align="center">
  190. <template slot-scope="scope">
  191. <p>{{JSON.parse(scope.row.jsonInfo).barCode}}</p>
  192. </template>
  193. </el-table-column>
  194. <el-table-column label="商品组合编码" width="300" align="center">
  195. <template slot-scope="scope">
  196. <p>{{JSON.parse(scope.row.jsonInfo).groupBarCode}}</p>
  197. </template>
  198. </el-table-column>
  199. <el-table-column label="商品名称" width="300" align="center">
  200. <template slot-scope="scope">
  201. <p>{{JSON.parse(scope.row.jsonInfo).productName}}</p>
  202. </template>
  203. </el-table-column>
  204. <el-table-column label="单价" width="240" align="center">
  205. <template slot-scope="scope">
  206. <p>¥{{JSON.parse(scope.row.jsonInfo).price.toFixed(2)}}</p>
  207. </template>
  208. </el-table-column>
  209. <el-table-column label="规格" width="240" align="center">
  210. <template slot-scope="scope">
  211. {{JSON.parse(scope.row.jsonInfo).sku}}
  212. </template>
  213. </el-table-column>
  214. <el-table-column label="数量" width="180" align="center">
  215. <template slot-scope="scope">
  216. {{scope.row.num}}
  217. </template>
  218. </el-table-column>
  219. <el-table-column label="处方药" width="240" align="center">
  220. <template slot-scope="scope">
  221. {{scope.row.isPrescribe!=null&&scope.row.isPrescribe==1?'是':'否'}}
  222. </template>
  223. </el-table-column>
  224. <el-table-column label="小计" align="center">
  225. <template slot-scope="scope" >
  226. ¥{{scope.row.num*JSON.parse(scope.row.jsonInfo).price.toFixed(2)}}
  227. </template>
  228. </el-table-column>
  229. </el-table>
  230. <div style="float: right;margin: 20px" v-if="order!=null">
  231. 合计:<span class="color-danger">¥{{order.totalPrice.toFixed(2)}}</span>
  232. </div>
  233. <div style="margin: 60px 0px 20px 0px">
  234. <span class="font-small">费用信息</span>
  235. </div>
  236. <el-descriptions :column="4" border >
  237. <el-descriptions-item label="商品合计" >
  238. <span v-if="order!=null">
  239. ¥{{order.totalPrice.toFixed(2)}}
  240. </span>
  241. </el-descriptions-item>
  242. <el-descriptions-item label="应付金额" >
  243. <span v-if="order!=null">
  244. ¥{{order.payPrice.toFixed(2)}}
  245. </span>
  246. </el-descriptions-item>
  247. <el-descriptions-item label="运费" >
  248. <span v-if="order!=null">
  249. ¥{{order.payPostage.toFixed(2)}}
  250. </span>
  251. </el-descriptions-item>
  252. <el-descriptions-item label="优惠券" >
  253. <span v-if="order!=null">
  254. ¥{{order.couponPrice.toFixed(2)}}
  255. </span>
  256. </el-descriptions-item>
  257. <el-descriptions-item label="积分抵扣" >
  258. <span v-if="order!=null">
  259. ¥{{order.deductionPrice.toFixed(2)}}
  260. </span>
  261. </el-descriptions-item>
  262. <el-descriptions-item label="实付金额" >
  263. <span v-if="order!=null">
  264. ¥{{order.payMoney.toFixed(2)}}
  265. </span>
  266. </el-descriptions-item>
  267. <el-descriptions-item label="代收金额" >
  268. <span v-if="order!=null">
  269. ¥{{order.payDelivery.toFixed(2)}}
  270. </span>
  271. </el-descriptions-item>
  272. </el-descriptions>
  273. <div style="margin-top: 20px">
  274. <span class="font-small">支付信息</span>
  275. </div>
  276. <el-table
  277. border
  278. :data="payments"
  279. size="small"
  280. style="width: 100%;margin-top: 20px" >
  281. <el-table-column label="支付单号" align="center" prop="payCode" width="120px" />
  282. <el-table-column label="支付金额" align="center" prop="payMoney" />
  283. <el-table-column label="类型" align="center" prop="payTypeCode" />
  284. <el-table-column label="交易单号" align="center" prop="bankTransactionId" />
  285. <el-table-column label="银行单号" align="center" prop="bankSerialNo" />
  286. <el-table-column label="创建时间" align="center" prop="createTime" />
  287. <el-table-column label="支付时间" align="center" prop="payTime" />
  288. </el-table>
  289. <div style="margin-top: 20px">
  290. <span class="font-small">操作信息</span>
  291. </div>
  292. <el-table style="margin-top: 20px;width: 100%"
  293. ref="orderHistoryTable"
  294. :data="logs" border>
  295. <el-table-column label="操作时间" width="160" align="center">
  296. <template slot-scope="scope">
  297. {{scope.row.changeTime}}
  298. </template>
  299. </el-table-column>
  300. <el-table-column label="备注" align="center">
  301. <template slot-scope="scope">
  302. {{scope.row.changeMessage}}
  303. </template>
  304. </el-table-column>
  305. </el-table>
  306. <div style="margin-top: 20px">
  307. <!-- <svg-icon icon-class="marker" style="color: #606266"></svg-icon> -->
  308. <span class="font-small">分佣信息</span>
  309. </div>
  310. <el-table
  311. border
  312. :data="tuiMoneyLogs"
  313. size="small"
  314. style="width: 100%;margin-top: 20px" >
  315. <el-table-column label="公司名称" align="center" prop="companyName" width="120px" />
  316. <el-table-column label="金额" align="center" prop="money" />
  317. <el-table-column label="余额" align="center" prop="balance" />
  318. <el-table-column label="创建时间" align="center" prop="createTime" />
  319. <el-table-column label="备注" align="center" prop="remark" />
  320. </el-table>
  321. <div style="margin-top: 20px">
  322. <span class="font-small">审批信息</span>
  323. </div>
  324. <el-table style="margin-top: 20px;width: 100%"
  325. :data="auditLogs" border>
  326. <el-table-column label="操作时间" width="160" align="center">
  327. <template slot-scope="scope">
  328. {{scope.row.createTime}}
  329. </template>
  330. </el-table-column>
  331. <el-table-column label="备注" align="center">
  332. <template slot-scope="scope">
  333. {{scope.row.content}}
  334. </template>
  335. </el-table-column>
  336. </el-table>
  337. </el-card>
  338. </div>
  339. <el-dialog :title="edit.title" :visible.sync="edit.open" width="600px" append-to-body>
  340. <el-form ref="editForm" :model="editForm" :rules="editRules" label-width="100px">
  341. <!-- <el-form-item label="订单类型" prop="orderType" >
  342. <el-select style="width: 200px" v-model="editForm.orderType" placeholder="请选择订单类型" clearable size="small" >
  343. <el-option
  344. v-for="item in orderTypeOptions"
  345. :key="item.dictValue"
  346. :label="item.dictLabel"
  347. :value="item.dictValue"
  348. />
  349. </el-select>
  350. </el-form-item>-->
  351. <el-form-item label="状态" prop="status" >
  352. <el-select style="width:220px" v-model="editForm.status" placeholder="请选择状态" clearable size="small">
  353. <el-option key="0" label="待支付" value="0" />
  354. <el-option key="1" label="待发货" value="1" />
  355. <el-option key="2" label="待收货" value="2" />
  356. <el-option key="3" label="交易成功" value="3" />
  357. <el-option key="-1" label="退款中" value="-1" />
  358. <el-option key="-2" label="已退款" value="-2" />
  359. <el-option key="-3" label="已取消" value="-3" />
  360. </el-select>
  361. </el-form-item>
  362. <!-- <el-form-item label="档期归属" prop="scheduleId" >
  363. <el-select filterable style="width: 200px" v-model="editForm.scheduleId" placeholder="请选择档期" clearable size="small" >
  364. <el-option
  365. v-for="item in scheduleOptions"
  366. :key="item.id"
  367. :label="item.name"
  368. :value="item.id"
  369. />
  370. </el-select>
  371. </el-form-item>-->
  372. <el-form-item label="详情地址" prop="userAddress" >
  373. <el-input v-model="editForm.userAddress" placeholder="请输入" />
  374. </el-form-item>
  375. <!-- <el-form-item label="erp单号" prop="extendOrderId" >
  376. <el-input v-model="editForm.extendOrderId" placeholder="请输入" />
  377. </el-form-item> -->
  378. <el-form-item label="备注" prop="mark" >
  379. <el-input v-model="editForm.mark" placeholder="请输入备注" />
  380. </el-form-item>
  381. </el-form>
  382. <div slot="footer" class="dialog-footer">
  383. <el-button type="primary" @click="submitEditForm">确 定</el-button>
  384. </div>
  385. </el-dialog>
  386. <el-dialog :title="editDy.title" :visible.sync="editDy.open" width="600px" append-to-body>
  387. <el-form ref="editDyForm" :model="editDyForm" :rules="editDyRules" label-width="120px">
  388. <!-- <div v-hasPermi="['store:storeOrder:updateErpOrder']" style="margin-bottom: 20px;" >
  389. <el-button size="mini" @click="updateErpOrder" >同步物流单号信息</el-button>
  390. </div>-->
  391. <el-form-item label="物流公司" prop="deliverySn" >
  392. <el-select style="width:220px" v-model="editDyForm.deliverySn" placeholder="请选择" clearable size="small">
  393. <el-option key="SF" label="顺丰" value="SF" />
  394. <el-option key="EMS" label="邮政" value="EMS" />
  395. <el-option key="ZTO" label="中通" value="ZTO" />
  396. <el-option key="STO" label="申通" value="STO" />
  397. <el-option key="JD" label="京东" value="JD" />
  398. <el-option key="DBL" label="德邦" value="DBL" />
  399. <el-option key="JTSD" label="极兔" value="JTSD" />
  400. <el-option key="YD" label="韵达" value="YD" />
  401. <el-option key="YTO" label="圆通" value="YTO" />
  402. </el-select>
  403. </el-form-item>
  404. <el-form-item label="物流单号" prop="deliveryId" >
  405. <el-input v-model="editDyForm.deliveryId" placeholder="请输入物流单号" />
  406. </el-form-item>
  407. </el-form>
  408. <div slot="footer" class="dialog-footer">
  409. <el-button type="primary" @click="submitEditDyForm">确 定</el-button>
  410. <el-button @click="editDy.open = false">取 消</el-button>
  411. </div>
  412. </el-dialog>
  413. <el-dialog :title="expressDialog.title" :visible.sync="expressDialog.open" width="600px" append-to-body>
  414. <!-- <div v-hasPermi="['store:storeOrder:syncExpress']" >
  415. <el-button size="mini" @click="syncExpress()" >同步快递鸟物流状态</el-button>
  416. </div>-->
  417. <el-table style="margin-top: 20px;width: 100%"
  418. ref="orderHistoryTable"
  419. :data="traces" border>
  420. <el-table-column label="操作时间" width="160" align="center">
  421. <template slot-scope="scope">
  422. {{scope.row.AcceptTime}}
  423. </template>
  424. </el-table-column>
  425. <el-table-column label="位置" align="center">
  426. <template slot-scope="scope">
  427. {{scope.row.Location}}
  428. </template>
  429. </el-table-column>
  430. <el-table-column label="描述" align="center">
  431. <template slot-scope="scope">
  432. {{scope.row.AcceptStation}}
  433. </template>
  434. </el-table-column>
  435. </el-table>
  436. </el-dialog>
  437. <el-dialog :title="erpDialog.title" :visible.sync="erpDialog.open" width="600px" append-to-body>
  438. <div v-if="order!=null&&order.extendOrderId!=null&&order.status==1" v-hasPermi="['store:storeOrder:updateExpress']" >
  439. <el-button size="mini" @click="updateExpress()" >同步物流发货</el-button>
  440. </div>
  441. <div class="table-layout" v-if="erpOrder!=null">
  442. <el-row>
  443. <el-col :span="6" class="table-cell-title">订单编号</el-col>
  444. <el-col :span="6" class="table-cell-title">是否代收</el-col>
  445. <el-col :span="6" class="table-cell-title">快递编号</el-col>
  446. <el-col :span="6" class="table-cell-title">快递名称</el-col>
  447. </el-row>
  448. <el-row>
  449. <el-col :span="6" class="table-cell">
  450. {{erpOrder.code}}
  451. </el-col>
  452. <el-col :span="6" class="table-cell">
  453. {{erpOrder.cod?'是':'否'}}
  454. </el-col>
  455. <el-col :span="6" class="table-cell">
  456. {{erpOrder.express_code}}
  457. </el-col>
  458. <el-col :span="6" class="table-cell">
  459. {{erpOrder.express_name}}
  460. </el-col>
  461. </el-row>
  462. <el-row>
  463. <el-col :span="6" class="table-cell-title">收货人</el-col>
  464. <el-col :span="6" class="table-cell-title">电话</el-col>
  465. <el-col :span="6" class="table-cell-title">地址</el-col>
  466. <el-col :span="6" class="table-cell-title">运单号</el-col>
  467. </el-row>
  468. <el-row>
  469. <el-col :span="6" class="table-cell">
  470. {{erpOrder.receiver_name}}
  471. </el-col>
  472. <el-col :span="6" class="table-cell">
  473. {{erpOrder.receiver_mobile}}
  474. </el-col>
  475. <el-col :span="6" class="table-cell">
  476. {{erpOrder.receiver_address}}
  477. </el-col>
  478. <el-col :span="6" class="table-cell">
  479. {{erpOrder.deliverys!=null&&erpOrder.deliverys.length>0?erpOrder.deliverys[0].mail_no:''}}
  480. </el-col>
  481. </el-row>
  482. </div>
  483. </el-dialog>
  484. </div>
  485. </template>
  486. <script>
  487. import {auditPayRemain,addTuiMoney,syncExpress,updateExpress,getEroOrder,refundOrderMoney, editTuiMoney,getExpress,finishOrder,listStoreOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder,updateDeliveryId, createErpOrder,updateErp,getStoreOrderAddress,getStoreOrderPhone} from "@/api/hisStore/storeOrder";
  488. import { getTcmScheduleList } from "@/api/company/schedule";
  489. export default {
  490. name: "UserDetail",
  491. props: {
  492. orderId: {
  493. type: [String, Number],
  494. default: null
  495. }
  496. },
  497. watch: {
  498. orderId: {
  499. immediate: true,
  500. handler(val) {
  501. if (val) {
  502. this.getOrder(val);
  503. }
  504. }
  505. }
  506. },
  507. data() {
  508. return {
  509. dialogVisibleImage: false,
  510. createTypeOptions:[],
  511. deliveryStatusOptions:[],
  512. deliveryTypeOptions:[],
  513. scheduleOptions:[],
  514. schedules:[],
  515. orderId:null,
  516. erpDialog:{
  517. title:"ERP订单信息",
  518. open:false,
  519. },
  520. expressDialog:{
  521. title:"物流信息",
  522. open:false,
  523. },
  524. edit:{
  525. title:"",
  526. open:false,
  527. },
  528. editDy:{
  529. title:"修改物流单号",
  530. open:false,
  531. },
  532. editDyForm:{
  533. deliverySn:null,
  534. deliveryId:null,
  535. },
  536. editForm:{
  537. orderType:null,
  538. status:null,
  539. userAddress:null,
  540. // extendOrderId:null,
  541. scheduleId:null,
  542. mark:"",
  543. },
  544. editDyRules:{
  545. deliverySn: [
  546. { required: true, message: "物流公司不能为空", trigger: "blur" }
  547. ],
  548. deliveryId: [
  549. { required: true, message: "物流单号不能为空", trigger: "blur" }
  550. ],
  551. },
  552. editRules:{
  553. userAddress: [
  554. { required: true, message: "收货地址不能为空", trigger: "blur" }
  555. ],
  556. },
  557. orderTypeOptions:[],
  558. payTypeOptions:[],
  559. statusOptions:[],
  560. certificates:null,
  561. orderStatus:null,
  562. order:null,
  563. user:{},
  564. logs:[],
  565. items:[],
  566. express:null,
  567. traces:[],
  568. payments:[],
  569. tuiMoneyLogs:[],
  570. erpOrder:null,
  571. auditLogs: [],
  572. };
  573. },
  574. created() {
  575. this.getDicts("store_order_delivery_status").then((response) => {
  576. this.deliveryStatusOptions = response.data;
  577. });
  578. this.getDicts("store_order_delivery_type").then((response) => {
  579. this.deliveryTypeOptions = response.data;
  580. });
  581. this.getDicts("store_order_type").then((response) => {
  582. this.orderTypeOptions = response.data;
  583. });
  584. this.getDicts("store_order_status").then((response) => {
  585. this.statusOptions = response.data;
  586. });
  587. this.getDicts("store_pay_type").then((response) => {
  588. this.payTypeOptions = response.data;
  589. });
  590. this.getDicts("store_order_create_type").then((response) => {
  591. this.createTypeOptions = response.data;
  592. });
  593. getTcmScheduleList().then(response => {
  594. this.scheduleOptions = response.data;
  595. });
  596. },
  597. methods: {
  598. handleAddress(){
  599. const id = this.order.id;
  600. getStoreOrderAddress(id).then(response =>{
  601. this.order.userAddress = response.address;
  602. })
  603. },
  604. handlePhone(){
  605. const id = this.order.id;
  606. getStoreOrderPhone(id).then(response =>{
  607. this.order.userPhone = response.userPhone;
  608. })
  609. },
  610. showImageDialog() {
  611. this.dialogVisible = true;
  612. },
  613. syncExpress(){
  614. var that=this;
  615. this.$confirm('确定同步物流状态吗', "警告", {
  616. confirmButtonText: "确定",
  617. cancelButtonText: "取消",
  618. type: "warning"
  619. }).then(function() {
  620. var data={orderId:that.order.id}
  621. return syncExpress(data);
  622. }).then(() => {
  623. this.msgSuccess("操作成功");
  624. this.getOrder(this.order.id);
  625. }).catch(function() {});
  626. },
  627. updateErpOrder(){
  628. var that=this;
  629. this.$confirm('确定同步物流单号信息吗', "警告", {
  630. confirmButtonText: "确定",
  631. cancelButtonText: "取消",
  632. type: "warning"
  633. }).then(function() {
  634. var data={orderId:that.order.id}
  635. return updateErp(data);
  636. }).then(() => {
  637. this.msgSuccess("操作成功");
  638. this.getOrder(this.order.id);
  639. this.editDy.open = false
  640. }).catch(function() {});
  641. },
  642. updateExpress(){
  643. var that=this;
  644. this.$confirm('确定同步物流信息吗,同步后将自动发货', "警告", {
  645. confirmButtonText: "确定",
  646. cancelButtonText: "取消",
  647. type: "warning"
  648. }).then(function() {
  649. var data={orderId:that.order.id}
  650. return updateExpress(data);
  651. }).then(() => {
  652. this.msgSuccess("操作成功");
  653. this.getOrder(this.order.id);
  654. }).catch(function() {});
  655. },
  656. showErpOrder(){
  657. this.erpDialog.open=true;
  658. var data={extendOrderId:this.order.extendOrderId};
  659. getEroOrder(data).then(response => {
  660. this.erp = response.data;
  661. if(response.data.orders!=null&&response.data.orders.length==1){
  662. this.erpOrder=response.data.orders[0]
  663. }
  664. console.log(this.erpOrder)
  665. });
  666. },
  667. showExpress(){
  668. this.expressDialog.open=true;
  669. getExpress(this.orderId).then(response => {
  670. this.express = response.data;
  671. if(this.express!=null&&this.express.Traces!=null){
  672. this.traces=this.express.Traces
  673. }
  674. });
  675. },
  676. submitEditForm(){
  677. this.$refs["editForm"].validate(valid => {
  678. if (valid) {
  679. updateStoreOrder(this.editForm).then(response => {
  680. if (response.code === 200) {
  681. this.msgSuccess("操作成功");
  682. this.edit.open = false;
  683. this.getOrder(this.order.id);
  684. }
  685. });
  686. }
  687. });
  688. },
  689. submitEditDyForm(){
  690. this.$refs["editDyForm"].validate(valid => {
  691. if (valid) {
  692. updateDeliveryId(this.editDyForm).then(response => {
  693. if (response.code === 200) {
  694. this.msgSuccess("操作成功");
  695. this.editDy.open = false;
  696. this.getOrder(this.order.id);
  697. }
  698. });
  699. }
  700. });
  701. },
  702. editTuiMoney1(){
  703. var that=this;
  704. this.$confirm('是否冻结此订单推广佣金吗?', "警告", {
  705. confirmButtonText: "确定",
  706. cancelButtonText: "取消",
  707. type: "warning"
  708. }).then(function() {
  709. var data={orderId:that.order.id}
  710. return editTuiMoney(data);
  711. }).then(() => {
  712. this.msgSuccess("操作成功");
  713. this.getOrder(this.order.id);
  714. }).catch(function() {});
  715. },
  716. editTuiMoney2(){
  717. var that=this;
  718. this.$confirm('是否解冻此订单推广佣金吗?', "警告", {
  719. confirmButtonText: "确定",
  720. cancelButtonText: "取消",
  721. type: "warning"
  722. }).then(function() {
  723. var data={orderId:that.order.id}
  724. return editTuiMoney(data);
  725. }).then(() => {
  726. this.msgSuccess("操作成功");
  727. this.getOrder(this.order.id);
  728. }).catch(function() {});
  729. },
  730. addTuiMoney(){
  731. var that=this;
  732. this.$confirm('确定手动分佣金吗?', "警告", {
  733. confirmButtonText: "确定",
  734. cancelButtonText: "取消",
  735. type: "warning"
  736. }).then(function() {
  737. var data={orderId:that.order.id}
  738. return addTuiMoney(data);
  739. }).then(() => {
  740. this.msgSuccess("操作成功");
  741. this.getOrder(this.order.id);
  742. }).catch(function() {});
  743. },
  744. refundOrderMoney(){
  745. var that=this;
  746. this.$confirm('确认退款吗', "警告", {
  747. confirmButtonText: "确定",
  748. cancelButtonText: "取消",
  749. type: "warning"
  750. }).then(function() {
  751. var data={orderId:that.order.id}
  752. return refundOrderMoney(data);
  753. }).then(() => {
  754. this.msgSuccess("操作成功");
  755. this.getOrder(this.order.id);
  756. }).catch(function() {});
  757. },
  758. finishOrder(){
  759. var that=this;
  760. this.$confirm('是否确认客户已收货?', "警告", {
  761. confirmButtonText: "确定",
  762. cancelButtonText: "取消",
  763. type: "warning"
  764. }).then(function() {
  765. var data={orderId:that.order.id}
  766. return finishOrder(data);
  767. }).then(() => {
  768. this.msgSuccess("操作成功");
  769. this.getOrder(this.order.id);
  770. }).catch(function() {});
  771. },
  772. auditPayRemain(){
  773. var that=this;
  774. this.$confirm('是否确认已收尾款?', "警告", {
  775. confirmButtonText: "确定",
  776. cancelButtonText: "取消",
  777. type: "warning"
  778. }).then(function() {
  779. var data={orderId:that.order.id}
  780. return auditPayRemain(data);
  781. }).then(() => {
  782. this.msgSuccess("操作成功");
  783. this.getOrder(this.order.id);
  784. }).catch(function() {});
  785. },
  786. editOrder(){
  787. this.edit.open=true;
  788. this.editForm.id=this.order.id;
  789. this.editForm.mark=this.order.mark
  790. this.editForm.orderType=this.order.orderType.toString();
  791. this.editForm.status = this.order.status.toString();
  792. this.editForm.userAddress = this.order.userAddress.toString();
  793. this.editForm.scheduleId = this.order.scheduleId;
  794. // this.editForm.extendOrderId = this.order.extendOrderId.toString();
  795. },
  796. //推送管易按钮
  797. addErpOrder(){
  798. var that=this;
  799. this.$confirm('是否确认推送erp?', "警告", {
  800. confirmButtonText: "确定",
  801. cancelButtonText: "取消",
  802. type: "warning"
  803. }).then(function() {
  804. var data={orderCode:that.order.orderCode}
  805. return createErpOrder(data);
  806. }).then(() => {
  807. this.msgSuccess("操作成功");
  808. this.getOrder(this.order.id);
  809. }).catch(function() {});
  810. },
  811. editDelivery(){
  812. this.editDy.open = true;
  813. this.editDyForm.id = this.order.id;
  814. this.editDyForm.deliveryId = this.order.deliveryId;
  815. this.editDyForm.deliverySn = this.order.deliverySn;
  816. },
  817. getOrder(orderId){
  818. this.orderId=orderId;
  819. this.certificates = null;
  820. getStoreOrder(orderId).then(response => {
  821. this.order = response.order;
  822. if(response.order.certificates != null){
  823. this.certificates = response.order.certificates;
  824. }
  825. if(response.order.status != null){
  826. this.orderStatus = response.order.status;
  827. }
  828. this.user = response.user;
  829. this.logs = response.logs;
  830. this.items = response.items;
  831. this.payments=response.payments;
  832. this.tuiMoneyLogs=response.tuiMoneyLogs;
  833. this.auditLogs = response.auditLogs;
  834. });
  835. }
  836. }
  837. };
  838. </script>
  839. <style scoped>
  840. .order-content{
  841. margin: 10px;
  842. }
  843. .operate-container {
  844. background: #F2F6FC;
  845. height: 60px;
  846. margin: -20px -20px 0;
  847. line-height: 60px;
  848. }
  849. .operate-button-container {
  850. float: right;
  851. margin-right: 20px
  852. }
  853. </style>