MrShi
2026-01-29 8676f4cb37ef31fa9fcfe2a7faf5f4c4ea77cc1a
admin/src/components/business/OperaCategoryWindow.vue
@@ -7,45 +7,34 @@
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="名称" prop="name">
        <el-input v-if="form.type !=3"  v-model="form.name" placeholder="请输入名称" v-trim/>
        <el-select v-else  v-model="form.name" placeholder="请选择订单类型" v-trim>
          <el-option :value="'0'" label="用工单"></el-option>
          <el-option :value="'1'" label="货运单"></el-option>
          <el-option :value="'2'" label="订餐单"></el-option>
        </el-select>
        <el-input   v-model="form.name" placeholder="请输入名称" v-trim/>
      </el-form-item>
      <el-form-item v-if="form.type ==3 " label="手续费(%)" prop="detail">
        <el-input  type="number"   v-model="form.detail" placeholder="请输入名称" v-trim/>
      <el-form-item label="战区编码" prop="detail"  v-if="form.type ==0" >
        <el-input v-model="form.detail" placeholder="请输入战区编码" v-trim/>
      </el-form-item>
      <el-form-item v-if="form.type == 1 || form.type == 2" :label=" form.type == 1?'车辆规格':'餐标配置(元)'" prop="detailList">
        <div style="display: flex;flex-direction: column">
          <div style="position: relative;display: block;width: 100%;" v-for="(item,index) in form.detailList"   >
            <el-input  :type="form.type == 1?'text':'number'" style="display:inline-block;width: 60%;margin:5px ;float: left" v-model="form.detailList[index]"   placeholder="请输入内容" v-trim/>
            <el-button  style="display:inline-block;margin : 5px " @click="del(index)" v-if="form.detailList.length>0">x</el-button>
          </div>
          <div style="position: relative;display: block;width: 100%;">
            <el-button style="width: 100px;margin: 5px;" type="primary" @click="add()">添加规格</el-button>
          </div>
        </div>
      </el-form-item>
      <el-form-item v-if="form.type == 1" label="图标" prop="icon">
      <el-form-item v-if="form.type == 3" label="图标" prop="icon">
        <UploadAvatarImage
            :file="{ imgurlfull: form.iconFull, imgurl: form.icon }"
            :uploadData="uploadData"
            @uploadSuccess="uploadAvatarSuccess"
        />
      </el-form-item>
      <el-form-item  v-if="form.id ==null && form.type == 1"  label="是否固定车辆" prop="isFixed">
        <el-radio-group v-model="form.isFixed">
          <el-radio :label="0">非固定</el-radio>
          <el-radio :label="1">固定车型</el-radio>
        </el-radio-group>
      <el-form-item v-if="form.type == 1" label="排行榜图集" prop="icon">
        <UploadImage
            :fileList="tempfileList"
            :uploadData="uploadData"
            @beginUpload="isUploading=true"
            @endUpload="isUploading=false"/>
        <p class="tip-warn">
          建议尺寸:750px X 750px,上限6张
          支持png、jpg、jpeg格式,大小不超过2M,上传图片不允许涉及政治敏感与色情,
        </p>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
        <el-input v-model="form.sortnum" type="" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="描述" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入描述" v-trim/>
        <el-input type="textarea" v-model="form.remark" placeholder="请输入描述" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -54,16 +43,17 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import UploadImage from '@/components/common/UploadImage'
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
export default {
  name: 'OperaCategoryWindow',
  extends: BaseOpera,
  components: { GlobalWindow ,UploadAvatarImage},
  components: { GlobalWindow, UploadAvatarImage,UploadImage },
  data () {
    return {
      isUploading: false,
      uploadData: {
        folder: 'category'
        folder: 'dianjiang/category'
      },
      // 表单数据
      form: {
@@ -74,14 +64,15 @@
        type: null,
        detail: null,
        remark: null,
        detailList: [''],
        fileList: [],
        icon: '',
        iconFull: '',
        isFixed: 0
      },
      tempfileList: [],
      // 验证规则
      rules: {
        name: [{ required: true, message: '请输入配置名称' }]
        name: [{ required: true, message: '请输入名称' }]
      }
    }
  },
@@ -105,9 +96,18 @@
      this.$set(this.form, 'icon', file.imgurl)
      this.$set(this.form, 'iconFull', file.imgurlfull)
    },
    confirm () {
      this.form.fileList = this.tempfileList
      if (this.form[this.configData['field.id']] == null || this.form[this.configData['field.id']] === '') {
        this.__confirmCreate()
        return
      }
      this.__confirmEdit()
    },
    open(title, target, type) {
      this.title = title
      this.visible = true
      this.tempfileList = []
      this.form = {
        id: null,
        status: 0,
@@ -116,7 +116,7 @@
        detail: null,
        type: type,
        remark: null,
        detailList: [''],
        fileList: [],
        icon: '',
        iconFull: '',
        isFixed: 0
@@ -135,9 +135,14 @@
        for (const key in this.form) {
          this.form[key] = target[key]
        }
        if(this.form.detailList==null){
          this.form.detailList = ['']
        }
        this.form.fileList = this.form.fileList||[]
        this.form.fileList.forEach(item=>{
          this.tempfileList.push({
            fileurl: item.fileurl,
            name: item.name,
            url: item.url
          })
        })
      })
    }
  }