search.blade.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. <template id="shop_order_search">
  2. <div>
  3. <el-form :inline="true" :model="component_form" class="demo-form-inline">
  4. <el-form-item v-if="extra_param.package_deliver" label="">
  5. <el-input v-model="component_form.package_deliver_id" placeholder="自提点ID"></el-input>
  6. </el-form-item>
  7. <el-form-item v-if="extra_param.package_deliver" label="">
  8. <el-input v-model="component_form.package_deliver_name" placeholder="自提点名称"></el-input>
  9. </el-form-item>
  10. <el-form-item label="">
  11. <el-input v-model="component_form.member_id" placeholder="购买会员ID"></el-input>
  12. </el-form-item>
  13. <el-form-item label="">
  14. <el-input v-model="component_form.member_info" placeholder="购买昵称/姓名/手机号"></el-input>
  15. </el-form-item>
  16. <el-form-item label="">
  17. <el-input v-model="component_form.address_name" placeholder="收货人姓名"></el-input>
  18. </el-form-item>
  19. <el-form-item label="">
  20. <el-input v-model="component_form.address_mobile" placeholder="收货人手机号"></el-input>
  21. </el-form-item>
  22. <el-form-item label="">
  23. <el-input v-model="component_form.address" placeholder="收货地址"></el-input>
  24. </el-form-item>
  25. <el-form-item label="">
  26. <el-input v-model="component_form.express" placeholder="快递单号"></el-input>
  27. </el-form-item>
  28. <el-form-item label="">
  29. <el-input v-model="component_form.goods_id" placeholder="商品ID"></el-input>
  30. </el-form-item>
  31. <el-form-item label="">
  32. <el-input v-model="component_form.goods_title" placeholder="商品名称"></el-input>
  33. </el-form-item>
  34. <el-form-item label="">
  35. <el-input v-model="component_form.order_sn" placeholder="订单编号"></el-input>
  36. </el-form-item>
  37. <el-form-item label="">
  38. <el-input v-model="component_form.parent_id" placeholder="上级ID"></el-input>
  39. </el-form-item>
  40. <el-form-item label="">
  41. <el-input v-model="component_form.pay_sn" placeholder="支付单号"></el-input>
  42. </el-form-item>
  43. @if (request()->input('route') == 'order.order-list.index')
  44. <el-form-item label="">
  45. <el-select v-model="component_form.plugin_id" clearable placeholder="订单类型" style="width:150px">
  46. @foreach((new \app\backend\modules\order\services\OrderViewService)->getOrderType() as $order_type)
  47. @if($order_type['name'])
  48. <el-option label="{{$order_type['name']}}" value="{{$order_type['plugin_id']}}"></el-option>
  49. @endif
  50. @endforeach
  51. </el-select>
  52. </el-form-item>
  53. @endif
  54. {{--供应商订单列表才显示--}}
  55. <el-form-item v-if="viewReturn.all_supplier">
  56. <el-select v-model="component_form.supplier" clearable placeholder="选择供应商账号" style="width:150px">
  57. <el-option v-for="(supplier,supplierkey) in viewReturn.all_supplier" :key="supplierkey" :value="supplier.id">
  58. [[supplier.username ]]【[[supplier.id]]】
  59. </el-option>
  60. </el-select>
  61. </el-form-item>
  62. <el-form-item label="">
  63. <el-select v-model="component_form.sort" clearable placeholder="排序" style="width:150px">
  64. <el-option label="会员排序" value="1"></el-option>
  65. </el-select>
  66. </el-form-item>
  67. <el-form-item label="">
  68. <el-select v-model="component_form.first_order" clearable placeholder="是否搜索首单" style="width:150px">
  69. <el-option label="搜索首单" value="1"></el-option>
  70. </el-select>
  71. </el-form-item>
  72. <el-form-item label="">
  73. <el-select v-model="component_form.order_status" multiple clearable collapse-tags placeholder="订单状态" style="width:150px">
  74. <el-option label="待支付" value="waitPay"></el-option>
  75. <el-option label="待发货" value="1"></el-option>
  76. <el-option label="待收货" value="2"></el-option>
  77. <el-option label="已完成" value="3"></el-option>
  78. <el-option label="已关闭" value="-1"></el-option>
  79. </el-select>
  80. </el-form-item>
  81. <el-form-item label="">
  82. <el-select v-model="component_form.pay_type" clearable placeholder="支付方式" style="width:150px">
  83. @foreach(\app\backend\modules\order\services\OrderViewService::searchablePayType() as $pay_type)
  84. <el-option label="{{$pay_type['name']}}" value="{{$pay_type['value']}}"></el-option>
  85. @endforeach
  86. </el-select>
  87. </el-form-item>
  88. <el-form-item label="">
  89. <el-select v-model="component_form.pay_type_group" clearable placeholder="支付方式组" style="width:150px">
  90. @foreach(\app\backend\modules\order\services\OrderViewService::payTypeGroup() as $pay_type_group)
  91. <el-option label="{{$pay_type_group['name']}}" value="{{$pay_type_group['id']}}"></el-option>
  92. @endforeach
  93. </el-select>
  94. </el-form-item>
  95. <el-form-item label="">
  96. <el-select v-model="component_form.dispatch_type_id" clearable placeholder="配送方式" style="width:150px">
  97. <el-option v-for="(v,k) in this.dispatch_type_list" :label="v.name" :value="v.id" :key="v.id"></el-option>
  98. </el-select>
  99. </el-form-item>
  100. @if(app('plugins')->isEnabled('marketing-qr'))
  101. <el-form-item label="">
  102. <el-input v-model="component_form.marketing_qr_label" placeholder="营销码标签"></el-input>
  103. </el-form-item>
  104. @endif
  105. @if(app('plugins')->isEnabled('package-delivery'))
  106. <el-form-item label="">
  107. <el-input v-model="component_form.package_delivery_clerk_kwd" placeholder="平台核销员昵称/姓名/手机号"></el-input>
  108. </el-form-item>
  109. <el-form-item label="">
  110. <el-input v-model="component_form.package_delivery_clerk_uid" placeholder="平台核销员会员ID"></el-input>
  111. </el-form-item>
  112. @endif
  113. @if(app('plugins')->isEnabled('shop-clerk'))
  114. <el-form-item label="">
  115. <el-input v-model="component_form.shop_clerk_kwd" placeholder="pos收银员昵称/姓名/手机号"></el-input>
  116. </el-form-item>
  117. <el-form-item label="">
  118. <el-input v-model="component_form.shop_clerk_uid" placeholder="pos收银员会员ID"></el-input>
  119. </el-form-item>
  120. @endif
  121. <el-form-item label="">
  122. <el-select v-model="component_form.time_field" clearable placeholder="不搜索时间" style="width:150px">
  123. <el-option label="下单时间" value="create_time"></el-option>
  124. <el-option label="支付时间" value="pay_time"></el-option>
  125. <el-option label="发货时间" value="send_time"></el-option>
  126. <el-option label="完成时间" value="finish_time"></el-option>
  127. <el-option label="关闭时间" value="cancel_time"></el-option>
  128. <el-option label="退款申请时间" value="refund_create_time"></el-option>
  129. <el-option label="退款完成时间" value="refund_finish_time"></el-option>
  130. </el-select>
  131. </el-form-item>
  132. <el-form-item label="">
  133. <el-date-picker
  134. v-model="times"
  135. type="datetimerange"
  136. value-format="yyyy-MM-dd HH:mm:ss"
  137. range-separator="至"
  138. start-placeholder="开始日期"
  139. end-placeholder="结束日期"
  140. style="margin-left:5px;"
  141. align="right">
  142. </el-date-picker>
  143. </el-form-item>
  144. @if(app('plugins')->isEnabled('electronics-bill'))
  145. <el-form-item label="">
  146. <el-select v-model="component_form.bill_print" clearable placeholder="电子面单打印状态">
  147. <el-option label="已打印" value="print"></el-option>
  148. <el-option label="未打印" value="not_print"></el-option>
  149. </el-select>
  150. </el-form-item>
  151. @endif
  152. @if(app('plugins')->isEnabled('invoice') && \Setting::get('plugin.invoice.is_open')==1)
  153. <el-form-item label="">
  154. <el-select v-model="component_form.is_invoice" clearable placeholder="是否需要开票">
  155. <el-option label="是" value="1"></el-option>
  156. <el-option label="否" value="0"></el-option>
  157. </el-select>
  158. </el-form-item>
  159. @endif
  160. <el-form-item label="">
  161. <el-select v-model="component_form.source_id" clearable placeholder="请选择商品来源" v-if="is_source_open==1">
  162. <el-option v-for="(v,k) in source_list" :label="v.source_name" :value="v.id" :key="v.id"></el-option>
  163. </el-select>
  164. </el-form-item>
  165. <el-form-item label="">
  166. <el-button type="primary" @click="childSearch()">搜索</el-button>
  167. <el-button @click="agentExport(1,1)">导出(旧)</el-button>
  168. <el-button @click="agentExport(1,2)">导出(新)</el-button>
  169. <el-button v-if="extra_param.team_dividend" @click="agentExport(2)">导出直推(经销商)</el-button>
  170. </el-form-item>
  171. </el-form>
  172. </div>
  173. </template>
  174. <script>
  175. Vue.component('shopOrderSearch', {
  176. style:``,
  177. name:"shopOrderSearch",
  178. template: `#shop_order_search`,
  179. props: {
  180. viewReturn:{
  181. type:Object|String,
  182. default:{},
  183. },
  184. searchForm:{
  185. type:Object|String,
  186. default:{},
  187. },
  188. otherData:{
  189. type:Object|String,
  190. default:{},
  191. },
  192. },
  193. delimiters: ['[[', ']]'],
  194. data() {
  195. return {
  196. component_form:{},
  197. extra_param:{},
  198. dispatch_type_list:[],//配送方式
  199. times:[], //时间搜索
  200. is_source_open: 0,
  201. source_list: [],
  202. }
  203. },
  204. watch: {
  205. // component_form:{
  206. // immediate:true,
  207. // deep:true,
  208. // handler(val) {
  209. // console.log(val);
  210. // this.syncSearchForm();
  211. // },
  212. // },
  213. times:{
  214. handler(val) {
  215. this.updateSearchTime();
  216. },
  217. },
  218. },
  219. created() {},
  220. mounted: function () {
  221. this.__childInitial();
  222. },
  223. methods: {
  224. //初始化页面数据,请求链接
  225. __childInitial() {
  226. if (this.viewReturn.extraParam) {
  227. this.extra_param = this.viewReturn.extraParam;
  228. }
  229. this.is_source_open = this.viewReturn.is_source_open;
  230. this.source_list = this.viewReturn.source_list;
  231. //为了能在子组件里监听搜索参数值的变动,把参数赋值给当前组件定义的参数
  232. this.component_form = this.searchForm;
  233. this.$set(this.component_form,'order_sn','{!! $_REQUEST['order_sn']?:'' !!}');
  234. if (this.getParam('o_status')) {
  235. this.$set(this.component_form, 'order_status', [this.getParam('o_status')]);
  236. }
  237. this.$set(this.component_form,'member_id',this.getParam('member_id'));
  238. this.$set(this.component_form,'time_field',this.getParam('o_time'));
  239. this.times = [
  240. this.formatTime(new Date(new Date(new Date().toLocaleDateString()).getTime())),
  241. this.formatTime(new Date(new Date(new Date().toLocaleDateString()).getTime() + (24 * 60 * 60 * 1000 - 1)))
  242. ];
  243. this.$set(this.component_form,'start_time',this.times[0]);
  244. this.$set(this.component_form,'end_time',this.times[1]);
  245. this.dispatchTypeList();
  246. },
  247. //更新搜索时间到搜索参数里
  248. updateSearchTime () {
  249. if(this.times && this.times.length>0) {
  250. this.$set(this.component_form,'start_time',this.times[0]);
  251. this.$set(this.component_form,'end_time',this.times[1]);
  252. }
  253. },
  254. //子组件搜索传参到父级
  255. syncSearchForm() {
  256. let mainData = this.component_form;
  257. let other = {};
  258. this.$emit('sync-form', mainData, other);
  259. },
  260. //订单搜索搜索
  261. childSearch() {
  262. this.$emit('search');
  263. },
  264. //订单导出导出
  265. agentExport(export_type,template,exportUrl = '') {
  266. this.$emit('export', export_type,template,exportUrl);
  267. },
  268. //配送方式
  269. dispatchTypeList(){
  270. this.$http.post('{!! yzWebFullUrl('dispatch.dispatch-type.get-data') !!}', {}).then(response => {
  271. if (response.data.result) {
  272. this.dispatch_type_list = response.data.data;
  273. } else {
  274. this.$message({message: response.data.msg, type: 'error'});
  275. }
  276. }, response => {
  277. this.$message({message: response.data.msg, type: 'error'});
  278. })
  279. },
  280. //时间转化
  281. formatTime(date) {
  282. let y = date.getFullYear()
  283. let m = date.getMonth() + 1
  284. m = m < 10 ? '0' + m : m
  285. let d = date.getDate()
  286. d = d < 10 ? '0' + d : d
  287. let h = date.getHours()
  288. h = h < 10 ? '0' + h : h
  289. let minute = date.getMinutes()
  290. minute = minute < 10 ? '0' + minute : minute
  291. let second = date.getSeconds()
  292. second = second < 10 ? '0' + second : second
  293. return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second
  294. },
  295. // 字符转义
  296. escapeHTML(a) {
  297. a = "" + a;
  298. return a.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&apos;/g, "'");;
  299. },
  300. getParam(name) {
  301. let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  302. let r = window.location.search.substr(1).match(reg);
  303. if (r != null) return unescape(r[2]);
  304. return null;
  305. },
  306. },
  307. });
  308. </script>