pro-progress-report.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <template>
  2. <!-- 生产进度报表 -->
  3. <a-card :bordered="false">
  4. <!-- 查询区域 -->
  5. <div class="table-page-search-wrapper">
  6. <a-form layout="inline" @keyup.enter.native="searchQuery">
  7. <a-row :gutter="24">
  8. <a-col :md="6" :sm="8">
  9. <a-form-item label="销售订单号">
  10. <a-input placeholder="请输入订单号" v-model="queryParam.salesOrderNo"></a-input>
  11. </a-form-item>
  12. </a-col>
  13. <a-col :md="6" :sm="8">
  14. <a-form-item label="部门">
  15. <a-input placeholder="请输入部门" v-model="queryParam.department"></a-input>
  16. </a-form-item>
  17. </a-col>
  18. <a-col :md="6" :sm="8">
  19. <a-form-item label="物料名称">
  20. <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
  21. </a-form-item>
  22. </a-col>
  23. <template v-if="toggleSearchStatus">
  24. <a-col :md="6" :sm="8">
  25. <a-form-item label="成衣加工厂">
  26. <a-select placeholder="请选择成衣加工厂" v-model="queryParam.garmentFactory">
  27. <a-select-option :value="''">请选择</a-select-option>
  28. <a-select-option :value="0">成衣加工厂1</a-select-option>
  29. <a-select-option :value="1">成衣加工厂2</a-select-option>
  30. <a-select-option :value="2">成衣加工厂3</a-select-option>
  31. </a-select>
  32. </a-form-item>
  33. </a-col>
  34. <a-col :md="6" :sm="8">
  35. <a-form-item label="业务员">
  36. <a-input placeholder="请输入业务员" v-model="queryParam.salesman"></a-input>
  37. </a-form-item>
  38. </a-col>
  39. <a-col :md="6" :sm="8">
  40. <a-form-item label="计划单号">
  41. <a-input placeholder="请输入计划单号" v-model="queryParam.planOrderNo"></a-input>
  42. </a-form-item>
  43. </a-col>
  44. <a-col :md="6" :sm="8">
  45. <a-form-item label="日期" has-feedback>
  46. <a-date-picker style="width: 100%" v-model="queryParam.date"></a-date-picker>
  47. </a-form-item>
  48. </a-col>
  49. <a-col :md="6" :sm="8">
  50. <a-form-item label="颜色">
  51. <a-input placeholder="请输入颜色" v-model="queryParam.color"></a-input>
  52. </a-form-item>
  53. </a-col>
  54. <a-col :md="6" :sm="8">
  55. <a-form-item label="交期" has-feedback>
  56. <a-date-picker style="width: 100%" v-model="queryParam.deliveryDate"></a-date-picker>
  57. </a-form-item>
  58. </a-col>
  59. </template>
  60. <!-- 重置 -->
  61. <a-col :md="6" :sm="8">
  62. <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
  63. <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
  64. <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
  65. <a @click="handleToggleSearch" style="margin-left: 8px">
  66. {{ toggleSearchStatus ? '收起' : '展开' }}
  67. <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
  68. </a>
  69. </span>
  70. </a-col>
  71. </a-row>
  72. </a-form>
  73. </div>
  74. <!-- 操作按钮区域 -->
  75. <!-- <div class="table-operator">
  76. <a-button type="primary" @click="synchronization" icon="reload">同步</a-button>
  77. </div> -->
  78. <!-- table区域 -->
  79. <div>
  80. <a-table
  81. bordered
  82. rowKey="id"
  83. :columns="proProgressColumns"
  84. :data-source="proProgressData"
  85. :loading="loading"
  86. :pagination="ipagination"
  87. :scroll="{ x: 1500 }"
  88. @change="handleTableChange"
  89. >
  90. <!--字符串超长截取省略号显示 订单备注 -->
  91. <span slot="**" slot-scope="text">
  92. <j-ellipsis :value="text" :length="25" />
  93. </span>
  94. <!-- 销售订单号 链接-->
  95. <span slot="salesOrderNo" slot-scope="text">
  96. <a>{{ text }}</a>
  97. </span>
  98. </a-table>
  99. </div>
  100. <!-- 订单数据明细 抽屉 -->
  101. <singleOrderReport-drawer ref="singleOrderReportDrawer" :father="aa" @ok="modalFormOk"></singleOrderReport-drawer>
  102. </a-card>
  103. </template>
  104. <script>
  105. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  106. import JEllipsis from '@/components/jeecg/JEllipsis'
  107. import moment from 'moment'
  108. import singleOrderReportDrawer from '@views/reportForms/pro-progress-report/singleOrderReportDrawer.vue'
  109. export default {
  110. name: 'OrderList',
  111. mixins: [JeecgListMixin],
  112. components: { JEllipsis, moment, singleOrderReportDrawer },
  113. data() {
  114. let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} /> // 省略
  115. return {
  116. description: '生产进度报表',
  117. // 表头
  118. proProgressColumns: [
  119. {
  120. title: '部门',
  121. width: 120,
  122. dataIndex: 'department',
  123. fixed: 'left',
  124. className: 'replacecolor'
  125. },
  126. {
  127. title: '销售订单号',
  128. width: 210,
  129. fixed: 'left',
  130. dataIndex: 'salesOrderNo',
  131. className: 'replacecolor',
  132. customCell: this.showDrawer,
  133. scopedSlots: { customRender: 'salesOrderNo' }
  134. },
  135. { title: '业务员', width: 120, dataIndex: 'salesman', className: 'replacecolor' },
  136. { title: '计划单号', width: 120, dataIndex: 'planOrderNo', className: 'replacecolor' },
  137. {
  138. title: '成衣加工厂',
  139. width: 120,
  140. dataIndex: 'garmentFactory',
  141. className: 'replacecolor'
  142. },
  143. { title: '物料编号(多个分行显示)', width: 210, dataIndex: 'materialNum', className: 'replacecolor' },
  144. {
  145. title: '物料名称',
  146. width: 210,
  147. dataIndex: 'materialName',
  148. customRender: t => ellipsis(t),
  149. className: 'replacecolor'
  150. },
  151. { title: '款号', width: 90, dataIndex: 'styleNum', className: 'replacecolor' },
  152. { title: '颜色', width: 210, dataIndex: 'color', customRender: t => ellipsis(t), className: 'replacecolor' },
  153. // {
  154. // title: '创建时间',
  155. // dataIndex: 'createTime',
  156. // align: 'center',
  157. // sorter: true,
  158. // customRender: text => {
  159. // return moment(text).format('YYYY-MM-DD')
  160. // }
  161. // },
  162. { title: '交期', width: 120, dataIndex: 'deliveryDate', className: 'replacecolor' },
  163. { title: '订单数量', width: 120, dataIndex: 'orderQuantity', className: 'replacecolor' },
  164. { title: '单价(原币)', width: 120, dataIndex: 'priceOriginal', className: 'replacecolor' },
  165. { title: '总额(原币)', width: 120, dataIndex: 'totalAmountOriginal', className: 'replacecolor' },
  166. { title: '单价(本币)', width: 120, dataIndex: 'priceLocal', className: 'replacecolor' },
  167. { title: '总额(本币)', width: 120, dataIndex: 'totalAmountLocal', className: 'replacecolor' },
  168. { title: '实际发票成本', width: 120, dataIndex: 'actualInvoiceCost', className: 'replacecolor' },
  169. { title: '已出库数量', width: 120, dataIndex: 'quantityDelivered', className: 'replacecolor' },
  170. { title: '累计开票数量', width: 120, dataIndex: 'invoicesCumulativeNum', className: 'replacecolor' },
  171. { title: '图片', width: 120, dataIndex: 'image', fixed: 'right', className: 'replacecolor' },
  172. { title: '附件', width: 120, dataIndex: 'accessory', fixed: 'right', className: 'replacecolor' }
  173. ],
  174. proProgressData: [
  175. {
  176. department: '业务二部',
  177. salesman: '陈',
  178. salesOrderNo: 'SS22-71499-PH1-GY SEN',
  179. materialNum: '1901000890',
  180. materialName: '春夏女装印花袋鼠袋拉毛绒布带帽衫',
  181. styleNum: '71499',
  182. color: '浅绿green14-0114tcx',
  183. deliveryDate: '2021-10-07',
  184. orderQuantity: '69270',
  185. priceOriginal: '2.53',
  186. totalAmountOriginal: '175253.1',
  187. priceLocal: '18',
  188. totalAmountLocal: '1246860',
  189. quantityDelivered: '69270'
  190. },
  191. {
  192. department: '业务一部',
  193. salesman: '张',
  194. salesOrderNo: 'SS22-51349-PH1-GY SEN',
  195. materialNum: '1902300890',
  196. materialName: '裙子',
  197. styleNum: '71249',
  198. color: 'orange',
  199. deliveryDate: '2022-04-07',
  200. orderQuantity: '624570',
  201. priceOriginal: '2.53',
  202. totalAmountOriginal: '335253.1',
  203. priceLocal: '18',
  204. totalAmountLocal: '1346860',
  205. quantityDelivered: '624570'
  206. },
  207. {},
  208. {}
  209. ],
  210. loading: false, // 表格加载
  211. // 查询条件
  212. queryParam: {
  213. salesOrderNo: '', // 销售订单号
  214. department: '', // 部门
  215. materialName: '',
  216. garmentFactory: '', // 成衣加工厂
  217. salesman: '',
  218. planOrderNo: '', // 计划单号
  219. date: '',
  220. color: '',
  221. deliveryDate: '' // 交期
  222. }
  223. }
  224. },
  225. created() {
  226. // 渲染订单销售列表
  227. },
  228. methods: {
  229. // 同步
  230. // synchronization() {},
  231. // 查询按钮
  232. searchQuery() {
  233. // 渲染订单销售列表
  234. },
  235. searchReset() {
  236. // console.log('>>>>重置')
  237. this.queryParam = {}
  238. // 重新渲染生产进度表报
  239. },
  240. // 【销售订单号】 抽屉
  241. showDrawer(record) {
  242. return {
  243. on: {
  244. click: event => {
  245. console.log('点击了【销售订单号】--【单个订单报表】')
  246. this.$refs.singleOrderReportDrawer.visible = true
  247. }
  248. }
  249. }
  250. },
  251. // father 抽屉方法
  252. aa() {}
  253. // 分页、排序、筛选变化时触发
  254. // handleTableChange(pagination, filters, sorter) {
  255. // // console.log('当前页信息>>>>',pagination)
  256. // this.queryParam.pageNo = pagination.current
  257. // // this.getOrderList()
  258. // }
  259. },
  260. computed: {},
  261. mounted() {}
  262. }
  263. </script>
  264. <style lang="less" scoped>
  265. @import '~@assets/less/common.less';
  266. @import '~@assets/less/overwriter.less';
  267. /deep/ .ant-table-thead > tr > th {
  268. text-align: center;
  269. // font-weight: 700;
  270. }
  271. /deep/ .ant-table-tbody {
  272. text-align: center;
  273. }
  274. // /deep/ th.replacecolor {
  275. // background-color: #ccc;
  276. // }
  277. </style>