Browse Source

样式修改

huangyan 9 months ago
parent
commit
1092852596

+ 42 - 0
.gitignore

@@ -1 +1,43 @@
 node_modules
+dist/index.html
+dist/vite.svg
+dist/assets/add.9ddcc249.js
+dist/assets/add.29811b55.js
+dist/assets/add.b53f17b9.js
+dist/assets/add.d28ebdd4.js
+dist/assets/add.e39b4d6b.js
+dist/assets/avator.fb58564b.jpg
+dist/assets/bg.a2d5161d.jpg
+dist/assets/contact.f1ccf958.js
+dist/assets/contents.01b9c739.js
+dist/assets/contents.893658e6.js
+dist/assets/data.aba16eb9.js
+dist/assets/dataModel.2e2db539.js
+dist/assets/Detail.1e087c05.js
+dist/assets/Detail.3f7721a3.js
+dist/assets/Detail.64db48fa.js
+dist/assets/Detail.567540b9.js
+dist/assets/Detail.c30f91bf.js
+dist/assets/EditorWithBinding.730914b8.js
+dist/assets/favicon.af4a0651.ico
+dist/assets/Home.4b02fc8a.css
+dist/assets/Home.469b8b59.js
+dist/assets/http.42da7efe.js
+dist/assets/index.501cf061.css
+dist/assets/index.805c2bae.gif
+dist/assets/Index.abacb9ba.js
+dist/assets/index.c50212ee.js
+dist/assets/index.e56c5496.css
+dist/assets/index.esm.9605091a.js
+dist/assets/Login.ac968567.css
+dist/assets/Login.d33925d6.js
+dist/assets/news.93f618b1.js
+dist/assets/news.b1b4c1b7.js
+dist/assets/product.182d35fd.js
+dist/assets/product.637cbc64.js
+dist/assets/resource.bcfe3ef2.js
+dist/assets/serve.bc78af89.js
+dist/assets/serves.403a7e30.js
+dist/assets/user.1ed7baff.js
+dist/assets/Welcome.1e224c70.js
+dist/assets/Welcome.59f01c9c.css

BIN
src/assets/img/favicon.ico


+ 3 - 7
src/view/Home.vue

@@ -48,9 +48,7 @@
                         <!--    <el-menu-item index="2-1">权限管理</el-menu-item>-->
                         <!--</el-sub-menu>-->
                         <el-menu-item index="/user/list" @click="saveActiveNav('/user/list')">
-                            <el-icon>
-                                <Picture/>
-                            </el-icon>
+                            <el-icon><PictureFilled /></el-icon>
                             <span>资源管理</span>
                         </el-menu-item>
                         <el-menu-item index="/product/list" @click="saveActiveNav('/product/list')">
@@ -60,10 +58,8 @@
                             <span>产品管理</span>
                         </el-menu-item>
                         <el-menu-item index="/contents/list" @click="saveActiveNav('/contents/list')">
-                            <el-icon>
-                                <user/>
-                            </el-icon>
-                            <span>招募新闻管理</span>
+                            <el-icon><OfficeBuilding /></el-icon>
+                            <span>招募和关于我们</span>
                         </el-menu-item>
                         <el-menu-item index="/serves/list" @click="saveActiveNav('/serves/list')">
                             <el-icon>

+ 1 - 0
src/view/Login.vue

@@ -60,6 +60,7 @@ const onSubmit = () => {
                 if (res.data.Code===200) {
                     // proxy.$commonJs.changeView('/home');
                     localStorage.setItem("token", res.data.Data);
+                    ElMessage.success(res.data.Msg);
                     router.push("/contact/list");
                 } else {
                     ElMessage.error(res.data.Msg);

+ 0 - 3
src/view/contents/add.vue

@@ -22,17 +22,14 @@
         <el-form-item label="详情:">
           <EditorWithBinding v-model="contentsDetail.detail"></EditorWithBinding>
         </el-form-item>
-
       </el-form>
     </el-card>
-
   </div>
 </template>
 <script setup>
 import {onBeforeMount, reactive} from 'vue';
 import {useRoute, useRouter} from 'vue-router'
 import contents from "../../api/contents.js";
-import Editor from "../editor.vue";
 import {ElMessage} from "element-plus";
 import EditorWithBinding from "../EditorWithBinding.vue";
 

+ 23 - 4
src/view/dataModel/add.vue

@@ -4,19 +4,25 @@
       <template #header>
         <div class="card-header">
           <span>详情</span>
-          <el-button size="mini" style="float:right" type="primary" @click="addContent">提交</el-button>
           <el-button size="mini" style="float:right" type="info" @click="router.go(-1)">返回</el-button>
+          <el-button size="mini" style="float:right" type="primary" @click="addContent">提交</el-button>
         </div>
       </template>
       <el-form>
         <el-form-item label="标题:">
           <el-input v-model="data.title" placeholder="请输入标题" />
         </el-form-item>
-        <el-form-item>
-          <el-select v-model="data.types" placeholder="请选择类型" size="large" style="width: 240px">
+        <el-form-item label="输入或者选择类型:">
+          <el-input v-model="data.types" placeholder="请输入类型" style="width: 240px"
+            @input="toggleInputMethod('input')" />
+          <el-select  v-model="data.types" placeholder="请选择类型" size="large"
+            style="width: 240px;margin-left: 20px;" @change="toggleInputMethod('select')">
             <el-option v-for="(item, index) in dataType" :key="index" :label="item" :value="item" />
           </el-select>
         </el-form-item>
+        <el-form-item label="是否首页显示:">
+          <el-switch v-model="data.is_index" size="large" active-text="显示" inactive-text="不显示" />
+        </el-form-item>
         <el-form-item label="数量:">
           <el-input-number v-model="data.nums" placeholder="请输入简介" />
         </el-form-item>
@@ -38,20 +44,33 @@ const data = reactive({
   title: '',
   types: '',
   nums: '',
+  is_index: false,
+  selectedByUser: false, // 用于标记用户是否已进行过交互
+  selectionActive: true, // 默认情况下选择框是活动的
 })
+const toggleInputMethod = (method) => {
+  data.selectedByUser = true; // 用户一旦交互,标记为已交互
+  if (method === 'input') {
+    data.selectionActive = false; // 如果选择输入框,则禁用选择框
+  } else if (method === 'select') {
+    // 如果用户从选择框中选择,则不需要额外处理,因为默认情况下输入框就是隐藏的
+  }
+}
 const dataType = reactive([])
 const addContent = async () => {
   const res = await datas.addData({
     id: 0,
     title: data.title,
     types: data.types,
-    nums: data.nums
+    nums: data.nums,
+    is_index: data.is_index,
   });
   if (res.data.Code === 200) {
     ElMessage.success("添加成功")
     data.types = ''
     data.nums = ''
     data.title = ''
+    data.is_index=false
   } else {
     ElMessage.error(res.data.Msg)
   }

+ 15 - 0
src/view/dataModel/data.vue

@@ -23,6 +23,12 @@
           </el-select>
           </template>
         </el-table-column>
+        <el-table-column prop="is_index" label="是否首页显示" width="180">
+                    <template #default="scope">
+                        <el-switch v-model="scope.row.is_index" size="large" active-text="显示" inactive-text="不显示"
+                            @change="updateData(scope.row)" />
+                    </template>
+                </el-table-column>
         <el-table-column prop="nums" label="数量" width="180">
           <template #default="scope">
             <el-input-number v-model="scope.row.nums" @change="UpData(scope.row.ID,'nums',scope.row.nums)" size="mini" />
@@ -62,6 +68,15 @@ const typeMapping = {
   recruit: '招募',
   about: '关于我们',
 }
+const updateData = async (row) => {
+    const res = await dataModel.updateData({ ID: row.ID, is_index: row.is_index });
+    if (res.data.Code === 200) {
+        ElMessage.success("修改成功")
+        // await getProductAll();
+    } else {
+        ElMessage.error(res.data.Msg)
+    }
+}
 const showUpload = ref(false);
 const showUploadDialog = ref(false);
 let tableData = ref([]);

+ 29 - 3
src/view/product/Detail.vue

@@ -14,7 +14,20 @@
                     <el-input v-model="productDetail.title"></el-input>
                 </el-form-item>
                 <el-form-item label="图片:">
-                    <img :src="productDetail.url" style="width: 100px;height: 100px;">
+                    <el-image
+                        v-model="productDetail.url"
+                        style="width: 100px; height: 100px; margin-right: 10px"
+                        fit="cover"></el-image>
+                    <el-upload
+                        :http-request="httpRequests"
+                        multiple
+                        :show-file-list="true"
+                        list-type="picture-card"
+                    >
+                        <el-icon>
+                            <Plus/>
+                        </el-icon>
+                    </el-upload>
                 </el-form-item>
                 <el-form-item label="简介:">
                     <el-input v-model="productDetail.synopsis"></el-input>
@@ -61,6 +74,7 @@ import {useRoute, useRouter} from 'vue-router'
 import product from "../../api/product.js";
 import {ElMessage} from "element-plus";
 import EditorWithBinding from "../EditorWithBinding.vue";
+import resource from "../../api/resource.js";
 
 const route = useRoute();
 const router = useRouter();
@@ -78,13 +92,17 @@ const productDetail = reactive({
 })
 //定义一个响应式数组用来接收图片
 const fileList = ref([])
+const fileLists = ref([])
 
 //自定义函数用来覆盖原有的XHR行为(默认提交行为)
 function httpRequest(option) {
 //将图片存到数组中
     fileList.value.push(option)
 }
-
+function httpRequests(option) {
+//将图片存到数组中
+    fileLists.value.push(option)
+}
 const handleContentChange = (htmlContent) => {
     productDetail.detail = htmlContent
     // 在这里可以使用接收到的内容进行进一步处理或者存储等操作
@@ -98,7 +116,15 @@ const updateProduct = async () => {
     })
     const files = await product.uploadFile(dataForm)
     productDetail.supporting_software = files.data.Data
-    console.log(files, "============")
+    //上传图片
+    let dataForms = new FormData();
+    dataForms.append('types', "product")
+    //将图片的二进制通过表单的形式发送到后台
+    fileLists.value.forEach((it, index) => {
+        dataForms.append('file', it.file)
+    })
+    const resourcefiles = await resource.uploadResource(dataForms)
+    productDetail.url = resourcefiles.data.Data
     const res = await product.updateProduct({
         id: parseInt(route.query.id),
         title: productDetail.title,

+ 14 - 31
src/view/product/product.vue

@@ -1,8 +1,7 @@
 <template>
     <div>
         <el-card>
-            <el-button type="primary"
-                       @click="() => router.push({ path: '/product/add'})">添加产品服务
+            <el-button type="primary" @click="() => router.push({ path: '/product/add' })">添加产品服务
             </el-button>
             <!-- 添加el-dialog组件 -->
             <el-table :data="tableData" border style="width: 100%;margin-top:20px">
@@ -23,13 +22,8 @@
                 </el-table-column>
                 <el-table-column prop="title" label="是否首页显示" width="180">
                     <template #default="scope">
-                        <el-switch
-                            v-model="scope.row.isIndex"
-                            size="large"
-                            active-text="显示"
-                            inactive-text="不显示"
-                            @change="handleSwitchChange(scope.row)"
-                        />
+                        <el-switch v-model="scope.row.isIndex" size="large" active-text="显示" inactive-text="不显示"
+                            @change="updateProducts(scope.row)" />
                     </template>
                 </el-table-column>
                 <el-table-column prop="ptype" label="产品类型" width="180">
@@ -47,7 +41,7 @@
                         <el-button type="danger" size="small" @click="deleteProduct(scope.row.ID)">删除</el-button>
                         <!--            <el-button type="primary" size="small" @click="deleteResource(scope.row.ID)">修改</el-button>-->
                         <el-button size="small"
-                                   @click="() => router.push({ path: '/product/detail', query: { id: scope.row.ID } })">
+                            @click="() => router.push({ path: '/product/detail', query: { id: scope.row.ID } })">
                             详情
                         </el-button>
                     </template>
@@ -55,19 +49,18 @@
             </el-table>
             <!-- 分页 -->
             <el-pagination style="margin-top:20px" :current-page="searchForm.page" :page-size="searchForm.size"
-                           :total="total"
-                           @current-change="handleCurrentChange"/>
+                :total="total" @current-change="handleCurrentChange" />
         </el-card>
     </div>
 </template>
 
 <script setup>
-import {onMounted, reactive, ref} from "vue";
-import {ElMessage, ElMessageBox} from 'element-plus';
-import {useRouter} from 'vue-router'
+import { onMounted, reactive, ref } from "vue";
+import { ElMessage, ElMessageBox } from 'element-plus';
+import { useRouter } from 'vue-router'
 import resource from "../../api/resource";
 import product from "../../api/product.js";
-
+const isIndex = ref(false)
 const router = useRouter();
 // Dom 挂载之后
 onMounted(() => {
@@ -113,7 +106,7 @@ const toggleUpload = () => {
 // 搜索条件
 const searchForm = reactive({
     page: 1,
-    size: 5,
+    size: 10,
     desc: 'created_at desc'
 })
 // 获取资源列表
@@ -122,26 +115,16 @@ const getProductAll = async () => {
     tableData.value = res.data.Data.Data;
     total.value = res.data.Data.Size;
 }
-const handleSwitchChange = async (row) => {
-    try {
-        // 这里根据实际情况调用你的修改方法,例如 updateProduct
-        await updateProduct(row.ID, row.isIndex);
-        await getProductAll();
-    } catch (error) {
-        ElMessage.error('更新状态时出错');
-    }
-}
-const updateProduct = async (id, isIndex) => {
-    const res = await product.updateProduct({id: id, isIndex: isIndex});
+const updateProducts = async (row) => {
+    const res = await product.updateProduct({ id: row.ID, isIndex: row.isIndex });
     if (res.data.Code === 200) {
         ElMessage.success("修改成功")
-        await getProductAll();
+        // await getProductAll();
     } else {
         ElMessage.error(res.data.Msg)
     }
 }
 
-
 const handleSizeChange = (size) => {
     searchForm.size = size;
     getProductList();
@@ -164,7 +147,7 @@ const deleteProduct = (id) => {
             type: 'warning',
         }
     ).then(async () => {
-        const res = await product.deleteProduct({id: id});
+        const res = await product.deleteProduct({ id: id });
         if (res.data.code === 200) {
             ElMessage.success("删除成功")
             await getProductAll();

+ 0 - 1
src/view/resource/Index.vue

@@ -79,7 +79,6 @@ const searchForm = reactive({
 // 获取资源列表
 const getResourceList = async () => {
   const res = await resource.getResourceList(searchForm);
-  console.log(res.data.Data)
   tableData.value = res.data.Data.Data;
   total.value = res.data.Data.Size;
 }