|
@@ -0,0 +1,174 @@
|
|
|
+<template>
|
|
|
+ <div id="detail-1">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24" class="main">
|
|
|
+ <data-form :fields="fields" :data="form" :rules="rules" @save="toSave">
|
|
|
+ <template #custom="{ item }">
|
|
|
+ <template v-if="item.model === 'order'">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-button type="primary" size="mini" @click="toAddOne()">添加商品(库存有)</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="toAddTwo()">添加商品(库存无)</el-button>
|
|
|
+ </el-col>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </data-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <e-dialog :dialog="dialog" @toClose="toClose">
|
|
|
+ <template slot="info">
|
|
|
+ <el-col v-if="dialog.type == '1'">
|
|
|
+ <el-col :span="18" class="input">
|
|
|
+ <el-input placeholder="请输入库存商品全称" v-model="input" clearable> </el-input>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4" class="text">
|
|
|
+ <el-button type="primary" size="small">搜索</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col>
|
|
|
+ <data-form :fields="fieldsOne" :rules="rulesOne" @save="addSave"> </data-form>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="dialog.type == '2'">
|
|
|
+ <data-form :fields="fieldsTwo" :data="twoform" :rules="rulesTwo" @save="addSave">
|
|
|
+ <template #options="{ item }">
|
|
|
+ <template v-if="item.model === 'stock_type_name'">
|
|
|
+ <el-option v-for="item in stock_typeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.model === 'type_name'">
|
|
|
+ <el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <template #custom="{ item }">
|
|
|
+ <template v-if="item.model === 'img_url'">
|
|
|
+ <s-upload :limit="4" :data="twoform.img_url" type="img_url" url="/files/live/upload" @upload="uplSuc" @delete="uplDel"></s-upload>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="item.model === 'code'">
|
|
|
+ <el-input v-model="twoform.code" placeholder="请输入资产编号" v-if="twoform.stock_type_name == '1'"></el-input>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </data-form>
|
|
|
+ </el-col>
|
|
|
+ </template>
|
|
|
+ </e-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'detail-1',
|
|
|
+ props: {
|
|
|
+ form: { type: Object },
|
|
|
+ stock_typeList: { type: Array },
|
|
|
+ typeList: { type: Array },
|
|
|
+ },
|
|
|
+ components: {},
|
|
|
+ data: function () {
|
|
|
+ return {
|
|
|
+ fields: [
|
|
|
+ { label: '登记人', model: 'register_name' },
|
|
|
+ { label: '登记人电话', model: 'register_phone' },
|
|
|
+ { label: '登记时间', model: 'register_date', type: 'date' },
|
|
|
+ { label: '入库原因', model: 'reason', type: 'textarea' },
|
|
|
+ { label: '商品列表', model: 'order', custom: true },
|
|
|
+ ],
|
|
|
+ rules: {
|
|
|
+ register_name: [{ required: true, message: '请输入登记人' }],
|
|
|
+ register_phone: [{ required: true, message: '请输入登记人电话' }],
|
|
|
+ register_date: [{ required: true, message: '请输入登记时间' }],
|
|
|
+ reason: [{ required: true, message: '请输入入库原因' }],
|
|
|
+ },
|
|
|
+ fieldsOne: [
|
|
|
+ { label: '商品名称', model: 'name' },
|
|
|
+ { label: '商品数量', model: 'num' },
|
|
|
+ ],
|
|
|
+ rulesOne: {
|
|
|
+ name: [{ required: true, message: '请输入商品名称' }],
|
|
|
+ num: [{ required: true, message: '请输入商品数量' }],
|
|
|
+ },
|
|
|
+ fieldsTwo: [
|
|
|
+ { label: '商品类别', model: 'stock_type_name', type: 'select' },
|
|
|
+ { label: '资产编号', model: 'code', custom: true },
|
|
|
+ { label: '商品类型', model: 'type_name', type: 'select' },
|
|
|
+ { label: '商品名称', model: 'name' },
|
|
|
+ { label: '商品数量', model: 'num' },
|
|
|
+ { label: '商品单价', model: 'money' },
|
|
|
+ { label: '商品简介', model: 'brief' },
|
|
|
+ { label: '商品图片', model: 'img_url', custom: true },
|
|
|
+ ],
|
|
|
+ rulesTwo: {
|
|
|
+ stock_type_name: [{ required: true, message: '请选择商品类别' }],
|
|
|
+ code: [{ required: false, message: '请输入资产编号' }],
|
|
|
+ type_name: [{ required: true, message: '请选择商品类型' }],
|
|
|
+ name: [{ required: true, message: '请输入商品名称' }],
|
|
|
+ num: [{ required: true, message: '请输入商品数量' }],
|
|
|
+ brief: [{ required: true, message: '请输入商品简介' }],
|
|
|
+ money: [{ required: true, message: '请输入商品单价' }],
|
|
|
+ },
|
|
|
+ // 弹框
|
|
|
+ dialog: { title: '信息管理', show: false, type: '1' },
|
|
|
+ input: '',
|
|
|
+ twoform: {},
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {},
|
|
|
+ methods: {
|
|
|
+ search({ skip = 0, limit = 10, ...info } = {}) {},
|
|
|
+ toSave({ data }) {
|
|
|
+ this.$emit('onSubmit', data);
|
|
|
+ },
|
|
|
+ // 添加商品信息有
|
|
|
+ toAddOne() {
|
|
|
+ this.dialog = { title: '添加商品', show: true, type: '1', widths: '30%' };
|
|
|
+ },
|
|
|
+ // 添加商品信息无
|
|
|
+ toAddTwo() {
|
|
|
+ this.dialog = { title: '添加商品', show: true, type: '2', widths: '30%' };
|
|
|
+ },
|
|
|
+ addSave({ data }) {
|
|
|
+ console.log(data);
|
|
|
+ // this.toClose();
|
|
|
+ },
|
|
|
+ // 上传图片
|
|
|
+ uplSuc({ type, data }) {
|
|
|
+ let list = this.form[type];
|
|
|
+ this.$set(this.form, `${type}`, [...list, { name: data.name, url: data.uri }]);
|
|
|
+ },
|
|
|
+ // 删除图片
|
|
|
+ uplDel({ type, data, list }) {
|
|
|
+ this.$set(this.form, `${type}`, list);
|
|
|
+ },
|
|
|
+ // 关闭弹框
|
|
|
+ toClose() {
|
|
|
+ this.dialog = { show: false };
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['user']),
|
|
|
+ },
|
|
|
+ metaInfo() {
|
|
|
+ return { title: this.$route.meta.title };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ test: {
|
|
|
+ deep: true,
|
|
|
+ immediate: true,
|
|
|
+ handler(val) {},
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.input {
|
|
|
+ margin: 0 0 20px 45px;
|
|
|
+}
|
|
|
+.text {
|
|
|
+ margin: 4px 0 0 5px;
|
|
|
+}
|
|
|
+/deep/.el-dialog__body {
|
|
|
+ padding: 10px;
|
|
|
+ min-height: 570px;
|
|
|
+}
|
|
|
+</style>
|