zouyu
2024-03-14 f6c6a4067d68eb1d78a46bf44c279c0faff1d39b
src/components/do/b1-ins-order/add.vue
@@ -1,12 +1,40 @@
<style scoped>
   .ins_order_add{
   .ins_order_add {
      width: 100%;
      height: 100%;
   }
   .title {
      height: 60px;
      line-height: 60px;
   }
   .search {
      width: calc(100% - 40px);
      background-color: #fff;
      padding: 10px 40px 10px 0;
   }
   .search_thing {
      display: flex;
      align-items: center;
      height: 50px;
   }
   .search_label {
      width: 120px;
      font-size: 14px;
      text-align: right;
   }
   .search_input {
      width: calc(100% - 120px);
   }
</style>
<style>
   .ins_order_add .el-input-group__append,
   .el-input-group__prepend {
      padding: 0 10px;
   }
</style>
@@ -14,21 +42,225 @@
   <div class="ins_order_add">
      <div>
         <el-row class="title">
            <el-col :span="12" style="padding-left: 20px;">委托单信息</el-col>
            <el-col :span="12" style="text-align: right;">
               <el-button size="medium" type="primary" @click="">提交</el-button>
               <el-button size="medium" @click="">返回</el-button>
            <el-col :span="6" style="padding-left: 20px;">委托单信息</el-col>
            <el-col :span="18" style="text-align: right;">
               <el-select v-model="template" size="medium" placeholder="下单模板" style="margin-right: 10px;">
                  <el-option v-for="(a, ai) in templates" :key="ai" :value="a.value" :label="a.label"></el-option>
               </el-select>
               <el-button size="medium" @click="">
                  <span style="color: #3A7BFA;">保存模板</span>
               </el-button>
               <el-button size="medium" type="primary" @click="save">提交</el-button>
               <el-button size="medium" @click="$parent.playOrder(0)">
                  <span style="color: #3A7BFA;">返回</span>
               </el-button>
            </el-col>
         </el-row>
      </div>
      <div class="search">
         <el-row>
            <el-col class="search_thing" :span="6">
               <div class="search_label">委托编号:</div>
               <div class="search_input">
                  <el-input v-model="addObj.entrustCode" size="small" placeholder="系统生成" disabled></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>样品编号:</div>
               <div class="search_input">
                  <el-input v-model="addObj.sampleCode" size="small" placeholder="请输入" clearable></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>下单客户:</div>
               <div class="search_input">
                  <el-input readonly size="small" v-model="addObj.custom">
                     <template slot="append"><el-button slot="append" icon="el-icon-search"
                           @click="selectUserDia = true"></el-button></template>
                  </el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>下单单位:</div>
               <div class="search_input">
                  <el-input size="small" placeholder="选择下单客户" clearable disabled v-model="addObj.company"></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>样品名称:</div>
               <div class="search_input">
                  <el-input readonly size="small" v-model="addObj.sample">
                     <template slot="append"><el-button slot="append" icon="el-icon-search" @click=""></el-button></template>
                  </el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>实验室名称:</div>
               <div class="search_input">
                  <el-input size="small" clearable disabled v-model="addObj.laboratory"></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>样品类型:</div>
               <div class="search_input">
                  <el-input size="small" clearable disabled v-model="addObj.sampleType"></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>规格型号:</div>
               <div class="search_input">
                  <el-input size="small" placeholder="请输入" clearable v-model="addObj.model"></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label">约定时间:</div>
               <div class="search_input">
                  <el-date-picker type="date" placeholder="选择日期" size="small" value-format="yyyy-MM-dd" style="width: 100%;"
                     v-model="addObj.appointedTime"></el-date-picker>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>紧急程度:</div>
               <div class="search_input">
                  <el-select size="small" style="width: 100%;" clearable v-model="addObj.type">
                     <el-option v-for="(a, ai) in type" :key="ai" :value="a.value" :label="a.label"></el-option>
                  </el-select>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label"><span class="required-span">* </span>样品数量:</div>
               <div class="search_input">
                  <el-input-number size="small" v-model="addObj.sampleNum" :controls="false" :min="0" :precision="0" style="width: 50%;"></el-input-number>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label">OTC订单号:</div>
               <div class="search_input">
                  <el-input size="small" placeholder="请输入" clearable v-model="addObj.otcCode"></el-input>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label">样品留样:</div>
               <div class="search_input">
                  <el-radio-group v-model="addObj.isLeave" @change="addObj.leaveNum = null">
                     <el-radio :label="1">留样</el-radio>
                     <el-radio :label="0">不留样</el-radio>
                  </el-radio-group>
               </div>
            </el-col>
            <el-col class="search_thing" :span="6">
               <div class="search_label">留样数量:</div>
               <div class="search_input">
                  <el-input-number size="small" v-model="addObj.leaveNum" :controls="false" :min="0" :disabled="addObj.isLeave == 0" style="width: 50%;"></el-input-number>
               </div>
            </el-col>
            <el-col class="search_thing" :span="12">
               <div class="search_label">备注:</div>
               <div class="search_input">
                  <el-input size="small" placeholder="请输入" clearable v-model="addObj.remark"></el-input>
               </div>
            </el-col>
         </el-row>
      </div>
      <el-dialog title="选择客户" :visible.sync="selectUserDia" width="70%">
         <div class="body" style="height: 60vh;" v-if="selectUserDia">
            <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" />
         </div>
         <span slot="footer" class="dialog-footer">
            <el-button @click="selectUserDia = false">取 消</el-button>
            <el-button type="primary" @click="selectUser">确 定</el-button>
         </span>
      </el-dialog>
   </div>
</template>
<script>
   export default{
   import ValueTable from '../../tool/value-table.vue'
   export default {
      components: {
         ValueTable
      },
      data() {
         return{
         return {
            template: null,
            templates: [],
            addObj: {
               entrustCode: null,
               sampleCode: null,
               custom: null,
               company: null,
               userId: null,
               type: '0',
               code: null,
               laboratory: null,
               appointedTime: null,
               sample: null,
               sampleType: null,
               sampleNum: null,
               model: null,
               isLeave: 0,
               leaveNum: null,
               remark: null,
               otcCode: null
            },
            type: [],
            selectUserDia: false,
            componentData2: {
               entity: {
                  orderBy: {
                     field: 'id',
                     order: 'asc'
                  }
               },
               isIndex: true,
               showSelect: true,
               select: false,
               do: [],
               tagField: {
                  state: {
                     select: [{
                        value: 1,
                        type: 'success',
                        label: '启用'
                     }, {
                        value: 0,
                        type: 'danger',
                        label: '停用'
                     }]
                  }
               },
               selectField: {},
            }
         }
      },
      mounted() {
         this.selectEnumByCategoryForType()
      },
      methods:{
         selectEnumByCategoryForType() {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
               category: "紧急程度"
            }).then(res => {
               this.type = res.data
            })
         },
         selectUser() {
            let selects = this.$refs.ValueTable2.multipleSelection
            if (selects.length == 0) {
               this.$message.error('未选择数据')
               return
            }
            delete selects['orderBy']
            delete selects['updateUser']
            delete selects['updateTime']
            this.addObj.userId = selects.id
            this.addObj.company = selects.company
            this.addObj.custom = selects.name
            this.addObj.code = selects.code
            this.selectUserDia = false
         },
         save(){
            console.log(this.addObj);
         }
      }
   }