zs 1 год назад
Родитель
Сommit
c3ce3026c0
1 измененных файлов с 30 добавлено и 7 удалено
  1. 30 7
      src/views/match/course/index.vue

+ 30 - 7
src/views/match/course/index.vue

@@ -24,7 +24,7 @@
     <cDialog :dialog="dialog" @toClose="toClose">
       <template v-slot:info>
         <el-col :span="24" class="dialog_one" v-if="dialog.type == '1'">
-          <cForm :span="24" :fields="formFields" :form="form" :rules="{}" @save="toSave" label-width="auto">
+          <cForm :span="24" :fields="formFields" :form="form" :rules="{}" @save="toSave" @dataChange="dataChange" label-width="auto">
             <template #winner>
               <el-option v-for="i in winnerList" :key="i._id" :label="i.name" :value="i._id"></el-option>
             </template>
@@ -86,12 +86,7 @@ const winnerList: Ref<any> = ref([]);
 // 弹框
 const dialog: Ref<any> = ref({ title: '赛程状态', show: false, type: '1' });
 const form: Ref<any> = ref({ file: [] });
-const formFields: Ref<any> = ref([
-  { label: '状态', model: 'status', type: 'select' },
-  { label: '红方分数', model: 'red_score' },
-  { label: '蓝方分数', model: 'blue_score' },
-  { label: '胜者', model: 'winner', type: 'select' }
-]);
+const formFields: Ref<any> = ref([{ label: '状态', model: 'status', type: 'select' }]);
 // 请求
 onMounted(async () => {
   loading.value = true;
@@ -111,6 +106,22 @@ const toSearch = (query) => {
   searchForm.value = query;
   search({ skip, limit });
 };
+// 选择
+const dataChange = ({ model, value }) => {
+  if (model == 'status') {
+    if (value == '-1') {
+      formFields.value.splice(
+        3,
+        0,
+        { label: '红方分数', model: 'red_score' },
+        { label: '蓝方分数', model: 'blue_score' },
+        { label: '胜者', model: 'winner', type: 'select' }
+      );
+    } else {
+      formFields.value = [{ label: '状态', model: 'status', type: 'select' }];
+    }
+  }
+};
 const getDict = (e, model) => {
   if (model == 'status') {
     let data: any = statusList.value.find((i: any) => i.value == e);
@@ -135,6 +146,17 @@ const toStatus = async (data) => {
     list.push(red.data);
     list.push(blue.data);
     winnerList.value = list;
+    if (res.data.status == '-1') {
+      formFields.value.splice(
+        3,
+        0,
+        { label: '红方分数', model: 'red_score' },
+        { label: '蓝方分数', model: 'blue_score' },
+        { label: '胜者', model: 'winner', type: 'select' }
+      );
+    } else {
+      formFields.value = [{ label: '状态', model: 'status', type: 'select' }];
+    }
     dialog.value = { title: '赛程状态', show: true, type: '1' };
   }
 };
@@ -174,6 +196,7 @@ const toSave = async (data) => {
 // 关闭弹框
 const toClose = () => {
   form.value = {};
+  formFields.value = [{ label: '状态', model: 'status', type: 'select' }];
   dialog.value = { show: false };
   search({ skip, limit });
 };