schangxiang@126.com
2024-09-06 61734fc304e8d890a6bf8715bee9be203e0af9f0
入库优化
已添加3个文件
已修改2个文件
477 ■■■■■ 文件已修改
yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/addForm.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/editForm.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/index.vue 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js
@@ -13,6 +13,15 @@
  })
}
export function WorkPieceOutboundRecordPage (parameter) {
  return axios({
    url: '/WorkPieceOutbound/pageForRecord',
    method: 'get',
    params: parameter
  })
}
/**
 * å·¥ä»¶å‡ºåº“信息列表
 *
yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue
@@ -15,12 +15,12 @@
              </a-form-item>
            </a-col>
            <a-col :md="colMd" :sm="colSm">
              <a-form-item label="出库人">
                <a-input v-model="queryParam.workPieceOutboundUserName" allow-clear placeholder="请输入出库人" />
              <a-form-item label="入库人">
                <a-input v-model="queryParam.workPieceOutboundUserName" allow-clear placeholder="请输入入库人" />
              </a-form-item>
            </a-col>
            <a-col :md="colMd" :sm="colSm">
              <a-form-item label="出库时间">
              <a-form-item label="入库时间">
                <a-range-picker style="width:100%" :show-time="{format:'HH:mm'}" v-model="queryParam.dates" format="YYYY-MM-DD HH:mm" />
              </a-form-item>
            </a-col>
@@ -144,13 +144,13 @@
        //   dataIndex: 'workPieceUnLineUserName'
        // },
        {
          title: '出库时间',
          title: '入库时间',
          align: 'center',
          sorter: true,
          dataIndex: 'workPieceOutboundTime'
        },
        {
          title: '出库人',
          title: '入库人',
          align: 'center',
          sorter: true,
          dataIndex: 'workPieceOutboundUserName'
@@ -208,7 +208,7 @@
    allRevoke() {
      this.$confirm({
        title: '撤销确认',
        content: '确定撤销选中工件出库信息?',
        content: '确定撤销选中工件入库信息?',
        onOk: () => {
          this.WorkPieceOutboundDelete(this.selectedRows)
        },
yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/addForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
<template>
  <a-modal
    title="新增工件出库信息"
    :width="900"
    :visible="visible"
    :confirmLoading="confirmLoading"
    @ok="handleSubmit"
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
        <a-form :form="form">
        <a-form-item label="工件号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入工件号" v-decorator="['workPieceID', {rules: [{required: true, message: '请输入工件号!'}]}]" />
        </a-form-item>
        <a-form-item label="OP80成品码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入OP80成品码" v-decorator="['oP80NewCode', {rules: [{required: true, message: '请输入OP80成品码!'}]}]" />
        </a-form-item>
        <a-form-item label="出库时间" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-date-picker style="width: 100%" placeholder="请选择出库时间" v-decorator="['workPieceOutboundTime',{rules: [{ required: true, message: '请选择出库时间!' }]}]" @change="onChangeworkPieceOutboundTime"/>
        </a-form-item>
        <a-form-item label="出库人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-date-picker style="width: 100%" placeholder="请选择出库人" v-decorator="['workPieceOutboundUser',{rules: [{ required: true, message: '请选择出库人!' }]}]" @change="onChangeworkPieceOutboundUser"/>
        </a-form-item>
      </a-form>
    </a-spin>
  </a-modal>
</template>
<script>
  import {
    WorkPieceOutboundAdd
  } from '@/api/modular/main/WorkPieceOutboundManage'
  export default {
    data () {
      return {
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        workPieceOutboundTimeDateString: '',
        workPieceOutboundUserDateString: '',
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
      }
    },
    methods: {
      // åˆå§‹åŒ–方法
      add (record) {
        this.visible = true
        this.$nextTick(() => {
        });
      },
      /**
       * æäº¤è¡¨å•
       */
      handleSubmit () {
        const { form: { validateFields } } = this
        this.confirmLoading = true
        validateFields((errors, values) => {
          if (!errors) {
            for (const key in values) {
              if (typeof (values[key]) === 'object') {
                values[key] = JSON.stringify(values[key])
              }
            }
            values.workPieceOutboundTime = this.workPieceOutboundTimeDateString
            values.workPieceOutboundUser = this.workPieceOutboundUserDateString
            WorkPieceOutboundAdd(values).then((res) => {
              if (res.success) {
                this.$message.success('新增成功')
                this.confirmLoading = false
                this.$emit('ok', values)
                this.handleCancel()
              } else {
                this.$message.error('新增失败:' + JSON.stringify(res.message))
              }
            }).finally((res) => {
              this.confirmLoading = false
            })
          } else {
            this.confirmLoading = false
          }
        })
      },
      onChangeworkPieceOutboundTime(date, dateString) {
        this.workPieceOutboundTimeDateString = dateString
      },
      onChangeworkPieceOutboundUser(date, dateString) {
        this.workPieceOutboundUserDateString = dateString
      },
      handleCancel () {
        this.form.resetFields()
        this.visible = false
      }
    }
  }
</script>
yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/editForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
<template>
  <a-modal
    title="编辑工件出库信息"
    :width="900"
    :visible="visible"
    :confirmLoading="confirmLoading"
    @ok="handleSubmit"
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-form-item label="工件号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入工件号" v-decorator="['workPieceID', {rules: [{required: true, message: '请输入工件号!'}]}]" />
        </a-form-item>
        <a-form-item label="OP80成品码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入OP80成品码" v-decorator="['oP80NewCode', {rules: [{required: true, message: '请输入OP80成品码!'}]}]" />
        </a-form-item>
        <a-form-item label="出库时间" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-date-picker style="width: 100%" placeholder="请选择出库时间" v-decorator="['workPieceOutboundTime',{rules: [{ required: true, message: '请选择出库时间!' }]}]" @change="onChangeworkPieceOutboundTime"/>
        </a-form-item>
        <a-form-item label="出库人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-date-picker style="width: 100%" placeholder="请选择出库人" v-decorator="['workPieceOutboundUser',{rules: [{ required: true, message: '请选择出库人!' }]}]" @change="onChangeworkPieceOutboundUser"/>
        </a-form-item>
        <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
      </a-form>
    </a-spin>
  </a-modal>
</template>
<script>
  import moment from 'moment'
  import {
    WorkPieceOutboundEdit
  } from '@/api/modular/main/WorkPieceOutboundManage'
  export default {
    data () {
      return {
        Id: 0,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        record: {},
        workPieceOutboundTimeDateString: '',
        workPieceOutboundUserDateString: '',
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
      }
    },
    methods: {
      moment,
      // åˆå§‹åŒ–方法
      edit (record) {
        this.visible = true;
        this.Id = record.id;
        this.$nextTick(() => {
        });
        //深度拷贝 ç§»é™¤VUE的监听,防止INDEX页面值变动
        this.record = JSON.parse(JSON.stringify(record))
        this.$nextTick(() => {
          this.form.setFieldsValue(
            {
              id: record.id,
              workPieceID: record.workPieceID,
              oP80NewCode: record.oP80NewCode
            }
          )
        })
        this.form.getFieldDecorator('workPieceOutboundTime', { initialValue: moment(record.workPieceOutboundTime, 'YYYY-MM-DD') })
        this.workPieceOutboundTimeDateString = moment(record.workPieceOutboundTime).format('YYYY-MM-DD')
        this.form.getFieldDecorator('workPieceOutboundUser', { initialValue: moment(record.workPieceOutboundUser, 'YYYY-MM-DD') })
        this.workPieceOutboundUserDateString = moment(record.workPieceOutboundUser).format('YYYY-MM-DD')
      },
      handleSubmit () {
        const { form: { validateFields } } = this
        this.confirmLoading = true
        validateFields((errors, values) => {
          if (!errors) {
            for (const key in values) {
              if (values[key] == null) continue
              if (typeof (values[key]) === 'object') {
                values[key] = JSON.stringify(values[key])
                 this.record[key] = values[key]
              } else {
                 this.record[key] = values[key]
              }
            }
            values.workPieceOutboundTime = this.workPieceOutboundTimeDateString
            this.record.workPieceOutboundTime = this.workPieceOutboundTimeDateString
            values.workPieceOutboundUser = this.workPieceOutboundUserDateString
            this.record.workPieceOutboundUser = this.workPieceOutboundUserDateString
            WorkPieceOutboundEdit(this.record).then((res) => {
              if (res.success) {
                this.$message.success('编辑成功')
                this.confirmLoading = false
                this.$emit('ok', this.record)
                this.handleCancel()
              } else {
                this.$message.error('编辑失败:' + JSON.stringify(res.message))
              }
            }).finally((res) => {
              this.confirmLoading = false
            })
          }else{
            this.confirmLoading = false
          }
        });
      },
      onChangeworkPieceOutboundTime(date, dateString) {
        this.workPieceOutboundTimeDateString = dateString
      },
      onChangeworkPieceOutboundUser(date, dateString) {
        this.workPieceOutboundUserDateString = dateString
      },
      handleCancel () {
        this.form.resetFields()
        this.visible = false
      }
    }
  }
</script>
yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,229 @@
<template>
  <div>
    <a-card :bordered="false" :bodyStyle="tstyle">
      <div class="table-page-search-wrapper" v-if="hasPerm('WorkPieceOutbound:page')">
        <a-form layout="inline" :label-col="labelCol" :wrapper-col="wrapperCol">
          <a-row :gutter="gutter">
            <a-col :md="colMd" :sm="colSm">
              <a-form-item label="工件号">
                <a-input v-model="queryParam.workPieceID" allow-clear placeholder="请输入工件号" />
              </a-form-item>
            </a-col>
            <a-col :md="colMd" :sm="colSm">
              <a-form-item label="成品码">
                <a-input v-model="queryParam.oP80NewCode" allow-clear placeholder="请输入成品码" />
              </a-form-item>
            </a-col>
            <a-col :md="colMd" :sm="colSm">
              <a-form-item label="操作人">
                <a-input v-model="queryParam.workPieceOutboundUserName" allow-clear placeholder="请输入操作人" />
              </a-form-item>
            </a-col>
            <a-col :md="colMd" :sm="colSm">
              <a-form-item label="操作时间">
                <a-range-picker style="width:100%" :show-time="{format:'HH:mm'}" v-model="queryParam.dates" format="YYYY-MM-DD HH:mm" />
              </a-form-item>
            </a-col>
            <template v-if="advanced">
            </template>
            <a-col :md="colMd" :sm="colSm">
              <span class="table-page-search-submitButtons">
                <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
                <a-button style="margin-left: 8px" @click="() => (queryParam = {})">重置</a-button>
                <!-- <a @click="toggleAdvanced" style="margin-left: 8px">
                  {{ advanced ? '收起' : '展开' }}
                  <a-icon :type="advanced ? 'up' : 'down'" />
                </a> -->
              </span>
            </a-col>
          </a-row>
        </a-form>
      </div>
    </a-card>
    <a-card :bordered="false">
      <s-table
        ref="table"
        :columns="columns"
        :data="loadData"
        :alert="true"
        :rowKey="(record) => record.id"
        :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
      >
      </s-table>
      <add-form ref="addForm" @ok="handleOk" />
      <edit-form ref="editForm" @ok="handleOk" />
    </a-card>
  </div>
</template>
<script>
import { STable } from '@/components'
import moment from 'moment'
import { WorkPieceOutboundRecordPage, WorkPieceOutboundRevoke } from '@/api/modular/main/WorkPieceOutboundManage'
import addForm from './addForm.vue'
import editForm from './editForm.vue'
export default {
  components: {
    STable,
    addForm,
    editForm
  },
  data() {
    return {
      gutter: 36,
      colMd: 6,
      colSm: 18,
      labelCol: {
        xs: { span: 24 },
        sm: { span: 8 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 15 }
      },
      advanced: false, // é«˜çº§æœç´¢ å±•å¼€/关闭
      queryParam: {},
      columns: [
      {
            title: '序号',
            width: '50px',
            dataIndex: 'index',
            key: 'index',
            align: 'center',
            customRender: (text, record, index) => `${index + 1}`
          },
          {
          title: '成品码',
          align: 'center',
          sorter: true,
          dataIndex: 'oP80NewCode'
        },
        {
          title: '操作类型',
          align: 'center',
          sorter: true,
          dataIndex: 'operationType'
        },
        // {
        //   title: '小车码',
        //   align: 'center',
        //   sorter: true,
        //   dataIndex: 'carNo'
        // },
        {
          title: '工件号',
          align: 'center',
          sorter: true,
          dataIndex: 'workPieceID'
        },
        // {
        //   title: '下线时间',
        //   align: 'center',
        //   sorter: true,
        //   dataIndex: 'workPieceUnLineTime'
        // },
        // {
        //   title: '下线人',
        //   align: 'center',
        //   sorter: true,
        //   dataIndex: 'workPieceUnLineUserName'
        // },
        {
          title: '操作时间',
          align: 'center',
          sorter: true,
          dataIndex: 'createdTime'
        },
        {
          title: '操作人',
          align: 'center',
          sorter: true,
          dataIndex: 'createdUserName'
        }
      ],
      tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
      // åŠ è½½æ•°æ®æ–¹æ³• å¿…须为 Promise å¯¹è±¡
      loadData: (parameter) => {
        return WorkPieceOutboundRecordPage(Object.assign(parameter, this.switchingDate())).then((res) => {
          return res.data
        })
      },
      selectedRowKeys: [],
      selectedRows: []
    }
  },
  created() {
    if (this.hasPerm('WorkPieceOutbound:edit') || this.hasPerm('WorkPieceOutbound:delete')) {
      // this.columns.push({
      //   title: '操作',
      //   width: '150px',
      //   dataIndex: 'action',
      //   scopedSlots: { customRender: 'action' }
      // })
    }
  },
  methods: {
    moment,
    /**
     * æŸ¥è¯¢å‚数组装
     */
     switchingDate() {
      const dates = this.queryParam.dates
      if (dates != null) {
        this.queryParam.startTimeBeginTime = moment(dates[0]).format('YYYY-MM-DD HH:mm')
        this.queryParam.startTimeEndTime = moment(dates[1]).format('YYYY-MM-DD HH:mm')
        if (dates.length < 1) {
          delete this.queryParam.startTimeBeginTime
          delete this.queryParam.startTimeEndTime
        }
      }
      const obj = JSON.parse(JSON.stringify(this.queryParam))
      return obj
    },
    WorkPieceOutboundDelete(record) {
      WorkPieceOutboundRevoke(record).then((res) => {
        if (res.success) {
          this.$message.success('撤销成功')
          this.$refs.table.refresh()
        } else {
          this.$message.error('撤销失败') // + res.message
        }
      })
    },
    allRevoke() {
      this.$confirm({
        title: '撤销确认',
        content: '确定撤销选中工件入库信息?',
        onOk: () => {
          this.WorkPieceOutboundDelete(this.selectedRows)
        },
        onCancel() {
          console.log('Cancel')
        }
      })
    },
    toggleAdvanced() {
      this.advanced = !this.advanced
    },
    onChangeworkPieceOutboundTime(date, dateString) {
      this.workPieceOutboundTimeDateString = dateString
    },
    handleOk() {
      this.$refs.table.refresh()
    },
    onSelectChange(selectedRowKeys, selectedRows) {
      this.selectedRowKeys = selectedRowKeys
      this.selectedRows = selectedRows
    }
  }
}
</script>
<style lang="less">
.table-operator {
  margin-bottom: 18px;
}
button {
  margin-right: 8px;
}
</style>