order-search.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. <!-- 搜索表单 -->
  2. <template>
  3. <el-form
  4. label-width="90px"
  5. class="ele-form-search"
  6. @keyup.enter.native="search"
  7. @submit.native.prevent
  8. >
  9. <el-row :gutter="15">
  10. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  11. <!-- <el-form-item label="关键字:">-->
  12. <!-- <el-input clearable v-model="where.keyWord" placeholder="请输入" />-->
  13. <!-- </el-form-item>-->
  14. <!-- </el-col>-->
  15. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  16. <!-- <el-form-item label="生产工单号:">-->
  17. <!-- <el-input clearable v-model="where.code" placeholder="请输入" />-->
  18. <!-- </el-form-item>-->
  19. <!-- </el-col>-->
  20. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  21. <!-- <el-form-item label="计划编号:">-->
  22. <!-- <el-input-->
  23. <!-- clearable-->
  24. <!-- v-model="where.productionPlanCode"-->
  25. <!-- placeholder="请输入"-->
  26. <!-- />-->
  27. <!-- </el-form-item>-->
  28. <!-- </el-col>-->
  29. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  30. <!-- <el-form-item label="工艺路线:">-->
  31. <!-- <el-input-->
  32. <!-- clearable-->
  33. <!-- v-model="where.produceRoutingName"-->
  34. <!-- placeholder="请输入"-->
  35. <!-- />-->
  36. <!-- </el-form-item>-->
  37. <!-- </el-col>-->
  38. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  39. <!-- <el-form-item label="产品编码:">-->
  40. <!-- <el-input-->
  41. <!-- clearable-->
  42. <!-- v-model="where.productCode"-->
  43. <!-- placeholder="请输入"-->
  44. <!-- />-->
  45. <!-- </el-form-item>-->
  46. <!-- </el-col>-->
  47. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  48. <!-- <el-form-item label="产品名称:">-->
  49. <!-- <el-input-->
  50. <!-- clearable-->
  51. <!-- v-model="where.productName"-->
  52. <!-- placeholder="请输入"-->
  53. <!-- />-->
  54. <!-- </el-form-item>-->
  55. <!-- </el-col>-->
  56. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  57. <!-- <el-form-item label="牌号:">-->
  58. <!-- <el-input clearable v-model="where.brandNo" placeholder="请输入" />-->
  59. <!-- </el-form-item>-->
  60. <!-- </el-col>-->
  61. <el-col v-bind="styleResponsive ? { lg: 4, md: 12 } : { span: 4 }">
  62. <el-form-item label="状态:">
  63. <el-select
  64. size="mini"
  65. v-model="where.status"
  66. placeholder="请选择"
  67. clearable
  68. class="ele-block"
  69. >
  70. <el-option
  71. v-for="item in statusOpt"
  72. :key="item.value"
  73. :label="item.label"
  74. :value="item.value"
  75. >
  76. </el-option>
  77. </el-select>
  78. </el-form-item>
  79. </el-col>
  80. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">-->
  81. <!-- <el-form-item label="型号:">-->
  82. <!-- <el-input clearable v-model="where.model" placeholder="请输入" />-->
  83. <!-- </el-form-item>-->
  84. <!-- </el-col>-->
  85. <el-col v-bind="styleResponsive ? { lg: 6, md: 6 } : { span: 6 }">
  86. <el-form-item label="创建时间:">
  87. <el-date-picker
  88. size="mini"
  89. class="w100"
  90. v-model="where.createTime"
  91. type="daterange"
  92. range-separator="至"
  93. start-placeholder="开始日期"
  94. end-placeholder="结束日期"
  95. value-format="yyyy-MM-dd HH:mm:ss"
  96. :default-time="['00:00:00', '23:59:59']"
  97. >
  98. </el-date-picker>
  99. </el-form-item>
  100. </el-col>
  101. <el-col v-bind="styleResponsive ? { lg: 5, md: 7 } : { span: 3 }">
  102. <el-form-item label="所属工厂:">
  103. <el-select
  104. size="mini"
  105. v-model="where.factoryId"
  106. placeholder="请选择"
  107. clearable
  108. class="ele-block"
  109. >
  110. <el-option
  111. v-for="item in options_factory"
  112. :key="item.value"
  113. :label="item.label"
  114. :value="item.value"
  115. >
  116. </el-option>
  117. </el-select>
  118. </el-form-item>
  119. </el-col>
  120. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 6 } : { span: 6 }">-->
  121. <!-- <el-form-item label="组织机构:">-->
  122. <!-- <auth-selection-->
  123. <!-- data-type="Array"-->
  124. <!-- v-model="where.deptIds"-->
  125. <!-- style="width: 100%"-->
  126. <!-- ></auth-selection>-->
  127. <!-- </el-form-item>-->
  128. <!-- </el-col>-->
  129. <el-col v-bind="styleResponsive ? { lg: 3, md: 12 } : { span: 3 }">
  130. <el-form-item label-width="0">
  131. <el-input
  132. size="mini"
  133. clearable
  134. v-model="where.keyWord"
  135. placeholder="批次号/生产工单号/产品名称"
  136. />
  137. </el-form-item>
  138. </el-col>
  139. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  140. <div class="ele-form-actions">
  141. <el-button
  142. type="primary"
  143. icon="el-icon-search"
  144. class="ele-btn-icon"
  145. @click="search"
  146. >
  147. 查询
  148. </el-button>
  149. <el-button @click="reset" icon="el-icon-refresh-left" type="primary"
  150. >重置</el-button
  151. >
  152. <el-dropdown trigger="click">
  153. <span class="el-dropdown-link">
  154. 展开<i class="el-icon-arrow-down el-icon--right"></i>
  155. </span>
  156. <el-dropdown-menu>
  157. <div class="searchExpend">
  158. <el-row>
  159. <el-form-item label="关键字:">
  160. <el-input
  161. size="mini"
  162. clearable
  163. v-model="where.searchInfo"
  164. placeholder="请输入"
  165. />
  166. </el-form-item>
  167. </el-row>
  168. <el-row>
  169. <el-form-item label="生产工单号:">
  170. <el-input
  171. size="mini"
  172. clearable
  173. v-model="where.code"
  174. placeholder="请输入"
  175. />
  176. </el-form-item>
  177. </el-row>
  178. <el-row>
  179. <el-form-item label="计划编号:">
  180. <el-input
  181. size="mini"
  182. clearable
  183. v-model="where.productionPlanCode"
  184. placeholder="请输入"
  185. />
  186. </el-form-item>
  187. </el-row>
  188. <el-row>
  189. <el-form-item label="工艺路线:">
  190. <el-input
  191. size="mini"
  192. clearable
  193. v-model="where.produceRoutingName"
  194. placeholder="请输入"
  195. />
  196. </el-form-item>
  197. </el-row>
  198. <el-row>
  199. <el-form-item label="产品编码:">
  200. <el-input
  201. size="mini"
  202. clearable
  203. v-model="where.productCode"
  204. placeholder="请输入"
  205. />
  206. </el-form-item>
  207. </el-row>
  208. <el-row>
  209. <el-form-item label="产品名称:">
  210. <el-input
  211. size="mini"
  212. clearable
  213. v-model="where.productName"
  214. placeholder="请输入"
  215. />
  216. </el-form-item>
  217. </el-row>
  218. <el-row>
  219. <el-form-item label="型号:">
  220. <el-input
  221. size="mini"
  222. clearable
  223. v-model="where.model"
  224. placeholder="请输入"
  225. />
  226. </el-form-item>
  227. </el-row>
  228. <!--
  229. <el-row>
  230. <el-form-item label="组织机构:">
  231. <auth-selection
  232. size="mini"
  233. data-type="Array"
  234. v-model="where.deptIds"
  235. style="width: 100%"
  236. ></auth-selection>
  237. </el-form-item>
  238. </el-row> -->
  239. </div>
  240. </el-dropdown-menu>
  241. </el-dropdown>
  242. </div>
  243. </el-col>
  244. </el-row>
  245. </el-form>
  246. </template>
  247. <script>
  248. import { getFactoryarea } from '@/api/saleOrder';
  249. export default {
  250. props: {},
  251. data() {
  252. // 默认表单数据
  253. const defaultWhere = {
  254. keyWord: '',
  255. code: '',
  256. productionPlanCode: '',
  257. produceRoutingName: '',
  258. productCode: '',
  259. productName: '',
  260. brandNo: '',
  261. model: '',
  262. factoryId: '',
  263. status: '',
  264. createTime: []
  265. };
  266. return {
  267. options_factory: [],
  268. // 表单数据
  269. where: { ...defaultWhere },
  270. statusOpt: [
  271. { label: '暂停', value: 9 },
  272. { label: '终止', value: 10 },
  273. { label: '待下达', value: 8 },
  274. { label: '待生产', value: 4 },
  275. { label: '生产中', value: 5 },
  276. { label: '已完结', value: 6 },
  277. { label: '已延期', value: 7 }
  278. ],
  279. teamList: []
  280. };
  281. },
  282. computed: {
  283. // 是否开启响应式布局
  284. styleResponsive() {
  285. return this.$store.state.theme.styleResponsive;
  286. }
  287. },
  288. watch: {},
  289. mounted() {
  290. this.getFactoryarea();
  291. this.$nextTick(() => {
  292. this.where.factoryId =
  293. this.$store.state.user.info.factoryId == 1
  294. ? ''
  295. : this.$store.state.user.info.factoryId;
  296. });
  297. },
  298. created() {},
  299. methods: {
  300. getFactoryarea() {
  301. let par = {
  302. type: 1,
  303. size: 9999
  304. };
  305. getFactoryarea(par).then((res) => {
  306. if (res.list && res.list.length > 0) {
  307. this.options_factory = res.list.map((el) => {
  308. console.log(el.id);
  309. console.log(el.name);
  310. return {
  311. value: el.id,
  312. label: el.name
  313. };
  314. });
  315. console.log(this.options_factory);
  316. }
  317. });
  318. },
  319. /* 搜索 */
  320. search() {
  321. const where = { ...this.where };
  322. if (where.createTime?.length) {
  323. where.createTimeStart = where.createTime[0];
  324. where.createTimeEnd = where.createTime[1];
  325. }
  326. delete where.createTime;
  327. console.log(where);
  328. this.$emit('search', where);
  329. },
  330. /* 重置 */
  331. reset() {
  332. this.where = { ...this.defaultWhere };
  333. this.search();
  334. }
  335. }
  336. };
  337. </script>
  338. <style lang="scss" scoped>
  339. .ele-form-actions {
  340. display: flex;
  341. align-items: center;
  342. justify-content: flex-start;
  343. padding-top: 4.5px;
  344. }
  345. .searchExpend {
  346. padding: 20px 50px 0 30px;
  347. }
  348. </style>