瀏覽代碼

修改赛事

zs 7 月之前
父節點
當前提交
b02509d9fc

+ 7 - 2
src/lang/package/zh-cn/pages.js

@@ -152,11 +152,15 @@ export default {
     content: '内容',
     tags: '标签',
     logo: '封面',
+    route: '跳转地址',
+    jump_type: '跳转类型',
     is_show: '是否在首页显示',
     order_num: '显示顺序',
     is_use: '是否启用',
     status: '审核状态',
-    titleMessage: '请输入标题'
+    titleMessage: '请输入标题',
+    jumpMessage: '请选择跳转类型',
+    contentMessage: '请输入内容'
   },
   demand: {
     addDialogTitle: '新增需求',
@@ -228,6 +232,7 @@ export default {
     brief: '常见问题',
     status: '审核状态',
     match_status: '赛事状态',
+    address: '地址',
     process: '赛事流程',
     is_use: '是否启用',
     is_show: '是否在首页显示',
@@ -760,7 +765,7 @@ export default {
     user_type: '操作人用户类型',
     progress: '进度',
     created_time: '创建时间',
-    table_name:'数据类型',
+    table_name: '数据类型',
     reExecute: '重导出',
     download: '下载'
   }

+ 14 - 1
src/views/information/parts/news/news.vue

@@ -19,6 +19,9 @@
           <template #is_use>
             <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
           </template>
+          <template #jump_type>
+            <el-radio v-for="i in typeList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+          </template>
           <template #is_show>
             <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
           </template>
@@ -92,12 +95,15 @@ const total = ref(0)
 const isUseList = ref([])
 const statusList = ref([])
 const tagsList = ref([])
+const typeList = ref([])
 // 加载中
 const loading = ref(false)
 const formFields = ref([])
 const formFieldsForCreate = [
   { label: t('pages.news.logo'), model: 'logo', custom: true },
   { label: t('pages.news.title'), model: 'title' },
+  { label: t('pages.news.jump_type'), model: 'jump_type', type: 'radio' },
+  { label: t('pages.news.route'), model: 'route', display: () => form.value.jump_type == '1' },
   { label: t('pages.news.tags'), model: 'tags', custom: true },
   { label: t('pages.news.is_use'), model: 'is_use', type: 'radio' },
   { label: t('pages.news.is_show'), model: 'is_show', type: 'radio' },
@@ -107,6 +113,8 @@ const formFieldsForCreate = [
 const formFieldsForUpdate = [
   { label: t('pages.news.logo'), model: 'logo', custom: true },
   { label: t('pages.news.title'), model: 'title' },
+  { label: t('pages.news.jump_type'), model: 'jump_type', type: 'radio' },
+  { label: t('pages.news.route'), model: 'route', display: () => form.value.jump_type == '1' },
   { label: t('pages.news.tags'), model: 'tags', custom: true },
   { label: t('pages.news.person'), model: 'person', options: { disabled: true } },
   { label: t('pages.news.time'), model: 'time', type: 'date', options: { disabled: true } },
@@ -124,7 +132,9 @@ const form = ref({})
 // 审核
 const examFormFields = [{ label: t('pages.news.status'), model: 'status', type: 'select' }]
 const examRules = reactive({
-  status: [{ required: true, message: t('common.statusMessage'), trigger: 'blur' }]
+  title: [{ required: true, message: t('pages.news.titleMessage'), trigger: 'blur' }],
+  jump_type: [{ required: true, message: t('pages.news.jumpMessage'), trigger: 'blur' }],
+  content: [{ required: true, message: t('pages.news.contentMessage'), trigger: 'blur' }]
 })
 const examForm = ref({})
 // 请求
@@ -143,6 +153,9 @@ const searchOther = async () => {
   // 状态
   result = await dictDataStore.query({ code: 'examStatus', is_use: '0' })
   if ($checkRes(result)) statusList.value = result.data
+  // 跳转类型
+  result = await dictDataStore.query({ code: 'jumpType', is_use: '0' })
+  if ($checkRes(result)) typeList.value = result.data
   // 标签
   result = await tagsStore.query({ is_use: '0' })
   if ($checkRes(result)) tagsList.value = result.data

+ 14 - 1
src/views/information/parts/news/policy.vue

@@ -19,6 +19,9 @@
           <template #is_use>
             <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
           </template>
+          <template #jump_type>
+            <el-radio v-for="i in typeList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+          </template>
           <template #is_show>
             <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
           </template>
@@ -92,12 +95,15 @@ const total = ref(0)
 const isUseList = ref([])
 const statusList = ref([])
 const tagsList = ref([])
+const typeList = ref([])
 // 加载中
 const loading = ref(false)
 const formFields = ref([])
 const formFieldsForCreate = [
   { label: t('pages.news.logo'), model: 'logo', custom: true },
   { label: t('pages.news.title'), model: 'title' },
+  { label: t('pages.news.jump_type'), model: 'jump_type', type: 'radio' },
+  { label: t('pages.news.route'), model: 'route', display: () => form.value.jump_type == '1' },
   { label: t('pages.news.tags'), model: 'tags', custom: true },
   { label: t('pages.news.is_use'), model: 'is_use', type: 'radio' },
   { label: t('pages.news.is_show'), model: 'is_show', type: 'radio' },
@@ -107,6 +113,8 @@ const formFieldsForCreate = [
 const formFieldsForUpdate = [
   { label: t('pages.news.logo'), model: 'logo', custom: true },
   { label: t('pages.news.title'), model: 'title' },
+  { label: t('pages.news.jump_type'), model: 'jump_type', type: 'radio' },
+  { label: t('pages.news.route'), model: 'route', display: () => form.value.jump_type == '1' },
   { label: t('pages.news.tags'), model: 'tags', custom: true },
   { label: t('pages.news.person'), model: 'person', options: { disabled: true } },
   { label: t('pages.news.time'), model: 'time', type: 'date', options: { disabled: true } },
@@ -117,7 +125,9 @@ const formFieldsForUpdate = [
   { label: t('pages.news.content'), model: 'content', custom: true }
 ]
 const rules = reactive({
-  title: [{ required: true, message: t('pages.news.titleMessage'), trigger: 'blur' }]
+  title: [{ required: true, message: t('pages.news.titleMessage'), trigger: 'blur' }],
+  jump_type: [{ required: true, message: t('pages.news.jumpMessage'), trigger: 'blur' }],
+  content: [{ required: true, message: t('pages.news.contentMessage'), trigger: 'blur' }]
 })
 const dialog = ref({ type: '1', show: false, title: t('pages.news.addDialogTitle') })
 const form = ref({})
@@ -143,6 +153,9 @@ const searchOther = async () => {
   // 状态
   result = await dictDataStore.query({ code: 'examStatus', is_use: '0' })
   if ($checkRes(result)) statusList.value = result.data
+  // 跳转类型
+  result = await dictDataStore.query({ code: 'jumpType', is_use: '0' })
+  if ($checkRes(result)) typeList.value = result.data
   // 标签
   result = await tagsStore.query({ is_use: '0' })
   if ($checkRes(result)) tagsList.value = result.data

+ 14 - 1
src/views/information/parts/news/trends.vue

@@ -19,6 +19,9 @@
           <template #is_use>
             <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
           </template>
+          <template #jump_type>
+            <el-radio v-for="i in typeList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+          </template>
           <template #is_show>
             <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
           </template>
@@ -92,12 +95,15 @@ const total = ref(0)
 const isUseList = ref([])
 const statusList = ref([])
 const tagsList = ref([])
+const typeList = ref([])
 // 加载中
 const loading = ref(false)
 const formFields = ref([])
 const formFieldsForCreate = [
   { label: t('pages.news.logo'), model: 'logo', custom: true },
   { label: t('pages.news.title'), model: 'title' },
+  { label: t('pages.news.jump_type'), model: 'jump_type', type: 'radio' },
+  { label: t('pages.news.route'), model: 'route', display: () => form.value.jump_type == '1' },
   { label: t('pages.news.tags'), model: 'tags', custom: true },
   { label: t('pages.news.is_use'), model: 'is_use', type: 'radio' },
   { label: t('pages.news.is_show'), model: 'is_show', type: 'radio' },
@@ -107,6 +113,8 @@ const formFieldsForCreate = [
 const formFieldsForUpdate = [
   { label: t('pages.news.logo'), model: 'logo', custom: true },
   { label: t('pages.news.title'), model: 'title' },
+  { label: t('pages.news.jump_type'), model: 'jump_type', type: 'radio' },
+  { label: t('pages.news.route'), model: 'route', display: () => form.value.jump_type == '1' },
   { label: t('pages.news.tags'), model: 'tags', custom: true },
   { label: t('pages.news.person'), model: 'person', options: { disabled: true } },
   { label: t('pages.news.time'), model: 'time', type: 'date', options: { disabled: true } },
@@ -117,7 +125,9 @@ const formFieldsForUpdate = [
   { label: t('pages.news.content'), model: 'content', custom: true }
 ]
 const rules = reactive({
-  title: [{ required: true, message: t('pages.news.titleMessage'), trigger: 'blur' }]
+  title: [{ required: true, message: t('pages.news.titleMessage'), trigger: 'blur' }],
+  jump_type: [{ required: true, message: t('pages.news.jumpMessage'), trigger: 'blur' }],
+  content: [{ required: true, message: t('pages.news.contentMessage'), trigger: 'blur' }]
 })
 const dialog = ref({ type: '1', show: false, title: t('pages.news.addDialogTitle') })
 const form = ref({})
@@ -143,6 +153,9 @@ const searchOther = async () => {
   // 状态
   result = await dictDataStore.query({ code: 'examStatus', is_use: '0' })
   if ($checkRes(result)) statusList.value = result.data
+  // 跳转类型
+  result = await dictDataStore.query({ code: 'jumpType', is_use: '0' })
+  if ($checkRes(result)) typeList.value = result.data
   // 标签
   result = await tagsStore.query({ is_use: '0' })
   if ($checkRes(result)) tagsList.value = result.data

+ 133 - 116
src/views/information/parts/platform/match.vue

@@ -19,122 +19,134 @@
   <el-dialog v-model="dialog.show" :title="dialog.title" :destroy-on-close="false" @close="toClose">
     <el-row>
       <el-col :span="24" v-if="dialog.type == '1'">
-        <custom-form v-model="form" :fields="formFields" :rules="rules" @save="toSave">
-          <template #video>
-            <custom-upload model="video" :list="form.video" :limit="1" url="/files/web/cxyy_match/upload" @change="onUpload"></custom-upload>
-          </template>
-          <template #file>
-            <custom-upload model="file" :list="form.file" :limit="1" listType="picture-card" url="/files/web/cxyy_match/upload" @change="onUpload"></custom-upload>
-          </template>
-          <template #is_use>
-            <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
-          </template>
-          <template #is_show>
-            <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
-          </template>
-          <template #industry>
-            <el-option v-for="i in industryList" :key="i.id" :label="i.label" :value="i.value"></el-option>
-          </template>
-          <template #match_status>
-            <el-option v-for="i in matchList" :key="i.id" :label="i.label" :value="i.value"></el-option>
-          </template>
-          <template #scale>
-            <el-radio v-for="i in scaleList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
-          </template>
-          <template #match_type>
-            <el-radio v-for="i in matchTypeList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
-          </template>
-          <template #type>
-            <el-option v-for="i in typeList" :key="i.id" :label="i.label" :value="i.value"></el-option>
-          </template>
-          <template #form>
-            <el-option v-for="i in formList" :key="i.id" :label="i.label" :value="i.value"></el-option>
-          </template>
-          <template #tags>
-            <el-select v-model="form.tags" multiple filterable allow-create default-first-option :reserve-keyword="false" placeholder="请选择标签" style="width: 100%">
-              <el-option v-for="item in tagsList" :key="item.id" :label="item.title" :value="item.title" />
-            </el-select>
-          </template>
-          <template #rules>
-            <div class="rules">
-              <custom-form v-model="form.rules" :fields="rulesFields" :useSave="false">
-                <template #rules1>
-                  <WangEditor v-model="form.rules.rules1" />
-                </template>
-                <template #rules2>
-                  <WangEditor v-model="form.rules.rules2" />
-                </template>
-                <template #rules3>
-                  <WangEditor v-model="form.rules.rules3" />
-                </template>
-                <template #rules4>
-                  <WangEditor v-model="form.rules.rules4" />
-                </template>
-                <template #rules5>
-                  <WangEditor v-model="form.rules.rules5" />
-                </template>
-                <template #rules6>
-                  <WangEditor v-model="form.rules.rules6" />
-                </template>
-                <template #rules7>
-                  <WangEditor v-model="form.rules.rules7" />
-                </template>
-                <template #rules8>
-                  <WangEditor v-model="form.rules.rules8" />
-                </template>
-                <template #rules9>
-                  <WangEditor v-model="form.rules.rules9" />
-                </template>
-                <template #rules10>
-                  <WangEditor v-model="form.rules.rules10" />
-                </template>
-                <template #rules11>
-                  <WangEditor v-model="form.rules.rules11" />
-                </template>
-                <template #rules12>
-                  <WangEditor v-model="form.rules.rules12" />
-                </template>
-              </custom-form>
-            </div>
-          </template>
-          <template #brief>
-            <WangEditor v-model="form.brief" />
-          </template>
-          <template #process>
-            <el-col :span="24" class="tables">
-              <el-col :span="24" class="tables_1">
-                <el-button type="primary" @click="addProcess()">添加</el-button>
-              </el-col>
-              <el-col :span="24">
-                <el-table :data="processList" border>
-                  <el-table-column type="index" label="序号" width="80" align="center"> </el-table-column>
-                  <el-table-column prop="name" label="流程名称" align="center">
-                    <template #default="scope">
-                      <el-input v-model="scope.row.name" placeholder="请输入流程名称" />
+        <el-tabs v-model="activeName" type="card">
+          <el-tab-pane label="基本信息" name="first">
+            <custom-form v-model="form" :fields="oneformFields" :rules="rules" @save="toSave">
+              <template #video>
+                <custom-upload model="video" :list="form.video" :limit="1" url="/files/web/cxyy_match/upload" @change="onUpload"></custom-upload>
+              </template>
+              <template #file>
+                <custom-upload model="file" :list="form.file" :limit="1" listType="picture-card" url="/files/web/cxyy_match/upload" @change="onUpload"></custom-upload>
+              </template>
+              <template #is_use>
+                <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+              </template>
+              <template #is_show>
+                <el-radio v-for="i in isUseList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+              </template>
+              <template #industry>
+                <el-option v-for="i in industryList" :key="i.id" :label="i.label" :value="i.value"></el-option>
+              </template>
+              <template #match_status>
+                <el-option v-for="i in matchList" :key="i.id" :label="i.label" :value="i.value"></el-option>
+              </template>
+              <template #scale>
+                <el-radio v-for="i in scaleList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+              </template>
+              <template #match_type>
+                <el-radio v-for="i in matchTypeList" :key="i.id" :label="i.value">{{ i.label }}</el-radio>
+              </template>
+              <template #type>
+                <el-option v-for="i in typeList" :key="i.id" :label="i.label" :value="i.value"></el-option>
+              </template>
+              <template #form>
+                <el-option v-for="i in formList" :key="i.id" :label="i.label" :value="i.value"></el-option>
+              </template>
+              <template #tags>
+                <el-select v-model="form.tags" multiple filterable allow-create default-first-option :reserve-keyword="false" placeholder="请选择标签" style="width: 100%">
+                  <el-option v-for="item in tagsList" :key="item.id" :label="item.title" :value="item.title" />
+                </el-select>
+              </template>
+            </custom-form>
+          </el-tab-pane>
+          <el-tab-pane label="拓展信息" name="second">
+            <custom-form v-model="form" :fields="twoformFields" :rules="{}" @save="toSave">
+              <template #rules>
+                <div class="rules">
+                  <custom-form v-model="form.rules" :fields="rulesFields" :useSave="false">
+                    <template #rules1>
+                      <WangEditor v-model="form.rules.rules1" />
                     </template>
-                  </el-table-column>
-                  <el-table-column prop="order_num" label="排序" align="center">
-                    <template #default="scope">
-                      <el-input v-model="scope.row.order_num" type="number" placeholder="请输入排序" />
+                    <template #rules2>
+                      <WangEditor v-model="form.rules.rules2" />
                     </template>
-                  </el-table-column>
-                  <el-table-column prop="is_use" label="是否启用" align="center">
-                    <template #default="scope">
-                      <el-select v-model="scope.row.is_use" placeholder="请选择是否启用">
-                        <el-option v-for="item in isUseList" :key="item.value" :label="item.label" :value="item.value" />
-                      </el-select>
+                    <template #rules3>
+                      <WangEditor v-model="form.rules.rules3" />
                     </template>
-                  </el-table-column>
-                  <el-table-column label="操作" align="center" width="100">
-                    <template #default="scope">
-                      <el-button type="danger" @click="delProcess(scope.row)">删除</el-button>
+                    <template #rules4>
+                      <WangEditor v-model="form.rules.rules4" />
                     </template>
-                  </el-table-column>
-                </el-table>
-              </el-col>
-            </el-col>
-          </template>
-        </custom-form>
+                    <template #rules5>
+                      <WangEditor v-model="form.rules.rules5" />
+                    </template>
+                    <template #rules6>
+                      <WangEditor v-model="form.rules.rules6" />
+                    </template>
+                    <template #rules7>
+                      <WangEditor v-model="form.rules.rules7" />
+                    </template>
+                    <template #rules8>
+                      <WangEditor v-model="form.rules.rules8" />
+                    </template>
+                    <template #rules9>
+                      <WangEditor v-model="form.rules.rules9" />
+                    </template>
+                    <template #rules10>
+                      <WangEditor v-model="form.rules.rules10" />
+                    </template>
+                    <template #rules11>
+                      <WangEditor v-model="form.rules.rules11" />
+                    </template>
+                    <template #rules12>
+                      <WangEditor v-model="form.rules.rules12" />
+                    </template>
+                  </custom-form>
+                </div>
+              </template>
+              <template #brief>
+                <WangEditor v-model="form.brief" />
+              </template>
+            </custom-form>
+          </el-tab-pane>
+          <el-tab-pane label="流程信息" name="third">
+            <custom-form v-model="form" :fields="thrformFields" :rules="{}" @save="toSave" x>
+              <template #process>
+                <el-col :span="24" class="tables">
+                  <el-col :span="24" class="tables_1">
+                    <el-button type="primary" @click="addProcess()">添加</el-button>
+                  </el-col>
+                  <el-col :span="24">
+                    <el-table :data="processList" border>
+                      <el-table-column type="index" label="序号" width="80" align="center"> </el-table-column>
+                      <el-table-column prop="name" label="流程名称" align="center">
+                        <template #default="scope">
+                          <el-input v-model="scope.row.name" placeholder="请输入流程名称" />
+                        </template>
+                      </el-table-column>
+                      <el-table-column prop="order_num" label="排序" align="center">
+                        <template #default="scope">
+                          <el-input v-model="scope.row.order_num" type="number" placeholder="请输入排序" />
+                        </template>
+                      </el-table-column>
+                      <el-table-column prop="is_use" label="是否启用" align="center">
+                        <template #default="scope">
+                          <el-select v-model="scope.row.is_use" placeholder="请选择是否启用">
+                            <el-option v-for="item in isUseList" :key="item.value" :label="item.label" :value="item.value" />
+                          </el-select>
+                        </template>
+                      </el-table-column>
+                      <el-table-column label="操作" align="center" width="100">
+                        <template #default="scope">
+                          <el-button type="danger" @click="delProcess(scope.row)">删除</el-button>
+                        </template>
+                      </el-table-column>
+                    </el-table>
+                  </el-col>
+                </el-col>
+              </template>
+            </custom-form>
+          </el-tab-pane>
+        </el-tabs>
       </el-col>
       <el-col :span="24" v-if="dialog.type == '2'">
         <custom-form v-model="examForm" :fields="examFormFields" :rules="examRules" @save="toExamSave">
@@ -224,7 +236,8 @@ const processList = ref([])
 const selectList = ref([])
 // 加载中
 const loading = ref(false)
-const formFields = ref([
+const activeName = ref('first')
+const oneformFields = ref([
   { label: t('pages.match.file'), model: 'file', custom: true },
   { label: t('pages.match.name'), model: 'name' },
   { label: t('pages.match.tags'), model: 'tags', custom: true },
@@ -240,12 +253,15 @@ const formFields = ref([
   { label: t('pages.match.is_use'), model: 'is_use', type: 'radio' },
   { label: t('pages.match.is_show'), model: 'is_show', type: 'radio' },
   { label: t('pages.match.order_num'), model: 'order_num', type: 'number' },
-  { label: t('pages.match.rules'), model: 'rules', custom: true },
-  { label: t('pages.match.brief'), model: 'brief', custom: true },
   { label: t('pages.match.video'), model: 'video', custom: true },
-  { label: t('pages.match.process'), model: 'process', custom: true },
+  { label: t('pages.match.address'), model: 'address', type: 'textarea' },
   { label: t('pages.match.match_status'), model: 'match_status', type: 'select' }
 ])
+const twoformFields = ref([
+  { label: t('pages.match.rules'), model: 'rules', custom: true },
+  { label: t('pages.match.brief'), model: 'brief', custom: true }
+])
+const thrformFields = ref([{ label: t('pages.match.process'), model: 'process', custom: true }])
 const rules = reactive({
   name: [{ required: true, message: t('pages.match.titleMessage'), trigger: 'blur' }]
 })
@@ -468,6 +484,7 @@ const toReset = async () => {
 const toClose = () => {
   form.value = { rules: {}, video: [], file: [] }
   dialog.value = { show: false }
+  activeName.value = 'first'
 }
 // 上传图片
 const onUpload = (e) => {