| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <template>
- <div class="page-card" v-loading="loading">
- <el-form :model="form" label-width="90px" style="max-width:880px">
- <el-form-item label="产品编码"><el-input v-model="form.code" /></el-form-item>
- <el-form-item label="产品名称"><el-input v-model="form.name" /></el-form-item>
- <el-form-item label="规格"><el-input v-model="form.spec" /></el-form-item>
- <el-form-item label="单位"><el-input v-model="form.unit" /></el-form-item>
- <el-form-item label="备注"><el-input v-model="form.remark" type="textarea" /></el-form-item>
- <el-form-item label="工序">
- <ProcessEditor v-model="form.processes" />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" :loading="saving" @click="onSave">保存</el-button>
- <el-button v-if="form.id" type="success" @click="openPrint({ bizType: 'product', bizId: form.id })">套打</el-button>
- <el-button v-if="form.id" type="danger" plain @click="onDel">删除</el-button>
- <el-button @click="$router.push('/products')">返回</el-button>
- </el-form-item>
- </el-form>
- </div>
- </template>
- <script setup>
- import { onMounted, reactive, ref } from 'vue'
- import { useRoute, useRouter } from 'vue-router'
- import { ElMessage, ElMessageBox } from 'element-plus'
- import ProcessEditor from '@/components/ProcessEditor.vue'
- import { productDel, productInfo, productSave } from '@/api/ps'
- import { openPrint } from '@/utils/print'
- const route = useRoute()
- const router = useRouter()
- const loading = ref(false)
- const saving = ref(false)
- const form = reactive({
- id: 0,
- code: '',
- name: '',
- spec: '',
- unit: '',
- remark: '',
- status: 'normal',
- processes: [],
- })
- onMounted(async () => {
- if (!route.params.id) {
- return
- }
- loading.value = true
- try {
- const row = await productInfo(route.params.id)
- Object.assign(form, row)
- form.processes = row.processes || []
- } finally {
- loading.value = false
- }
- })
- async function onDel() {
- await ElMessageBox.confirm('删除后不可恢复,确定删除该产品?', '删除产品')
- await productDel(form.id)
- ElMessage.success('已删除')
- router.push('/products')
- }
- async function onSave() {
- if (!String(form.code || '').trim()) {
- ElMessage.warning('请填写产品编码')
- return
- }
- if (!String(form.name || '').trim()) {
- ElMessage.warning('请填写产品名称')
- return
- }
- saving.value = true
- try {
- const { qty, sheet_qty, ...payload } = form
- await productSave(payload)
- ElMessage.success('已保存')
- router.push('/products')
- } finally {
- saving.value = false
- }
- }
- </script>
|