2545307760@qq.com 9 miesięcy temu
rodzic
commit
475a1ca1d7

+ 1 - 0
web/package.json

@@ -53,6 +53,7 @@
         "dotenv": "^16.3.1",
         "eslint": "^8.49.0",
         "eslint-plugin-vue": "^9.15.1",
+        "less": "^4.2.0",
         "sass": "^1.54.0",
         "terser": "^5.19.1",
         "unplugin-auto-import": "^0.16.6",

+ 12 - 0
web/src/api/projectList.js

@@ -0,0 +1,12 @@
+import service from '@/utils/request'
+// 获取项目列表
+export const getProjectList = (data) => {
+  return service({
+    url: '/project/queryProjectList',
+    method: 'post',
+    data: data
+    // headers: {
+    //   'Authorization': localStorage.getItem('token')
+    // }
+  })
+}

BIN
web/src/assets/sign.png


+ 1 - 0
web/src/pinia/modules/user.js

@@ -56,6 +56,7 @@ export const useUserStore = defineStore('user', () => {
     })
     try {
       const res = await login(loginInfo)
+      console.log(res)
       if (res.code === 0) {
         setUserInfo(res.data.user)
         setToken(res.data.token)

+ 0 - 2
web/src/view/login/index.vue

@@ -184,8 +184,6 @@ const login = async() => {
 }
 const submitForm = () => {
   loginForm.value.validate(async(v) => {
-    console.log('登录')
-    console.log(v)
     if (v) {
       const flag = await login()
       if (!flag) {

+ 46 - 3
web/src/view/projectManage/projectApproval/projectApproval.vue

@@ -1,13 +1,56 @@
 <template>
-  <div>项目立项</div>
+  <div>
+    <div style="height: 300px" class="bg-white">
+      <div class="basicInformation">
+        <div style="padding-top: 10px;margin-left: 90px">
+          <el-image :src="sign"></el-image>
+        </div>
+        <div style="display: flex;align-items: center">
+          <el-text style="margin-left: 10px" size="large" tag="b">项目基本信息</el-text>
+        </div>
+      </div>
+      <el-form>
+        <el-row style="margin:20px 0 0 90px;height: 50px" align="middle">
+          <el-col :span="5">
+            <el-form-item label="项目名称:" size="large">
+              <el-input  placeholder="请输入项目名称" size="large"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5" :offset="2">
+            <el-form-item label="负责人:" size="large">
+              <el-input  placeholder="请输入项目负责人" size="large"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5" :offset="2">
+            <el-form-item label="相关客户:" size="large">
+              <el-input  placeholder="请输入项目相关客户" size="large"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row style="margin:20px 0 0 90px;height: 50px" align="middle">
+          <el-col :span="5">
+            <el-form-item label="紧急程度:">
+
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+  </div>
 </template>
 
 <script setup>
+import sign from '@/assets/sign.png'
 defineOptions({
   name: 'projectApproval'
 })
 </script>
 
-<style scoped>
-
+<style scoped lang="less">
+  .basicInformation{
+    height: 40px;
+    background-color: #f8fafd;
+    display: flex;
+    //align-items: center;
+  }
 </style>

+ 0 - 81
web/src/view/projectManage/projectDetails/projectDetails.vue

@@ -1,86 +1,5 @@
 <template>
   <div>
-    <el-row>
-      <el-col
-          :span="4"
-      >
-        <el-form-item label="项目名称">
-          <el-input placeholder="请输入项目名称" />
-        </el-form-item>
-      </el-col>
-      <el-col
-          :span="4"
-          :offset="1"
-      >
-        <el-form-item label="立项时间">
-          <el-date-picker
-              v-model="approvalTime"
-              type="month"
-              placeholder="请选择立项时间"
-          />
-        </el-form-item>
-      </el-col>
-      <el-col
-          :span="4"
-          :offset="1"
-      >
-        <el-form-item label="项目状态">
-          <el-select />
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="5">
-        <div class="bg-white h-24" />
-      </el-col>
-      <el-col :span="5" :offset="1">
-        <div class="bg-white h-24" />
-      </el-col>
-      <el-col :span="5" :offset="1">
-        <div class="bg-white h-24" />
-      </el-col>
-      <el-col :span="5" :offset="1">
-        <div class="bg-white h-24" />
-      </el-col>
-    </el-row>
-    <el-form>
-      <el-row style="margin-top: 20px">
-        <el-col
-            :span="22"
-        >
-          <el-table :data="projectListData">
-            <el-table-column
-                label="项目编码"
-                width="200"
-            />
-            <el-table-column
-                label="项目名称"
-                width="200"
-            />
-            <el-table-column
-                label="项目负责人"
-                width="200"
-            />
-            <el-table-column
-                label="项目金额"
-                width="200"
-            />
-            <el-table-column
-                label="立项日期"
-                width="200"
-            />
-            <el-table-column
-                label="项目进度"
-                width="200"
-            />
-            <el-table-column
-                label="状态"
-                width="170"
-            />
-          </el-table>
-        </el-col>
-      </el-row>
-    </el-form>
 
   </div>
 </template>

+ 101 - 45
web/src/view/projectManage/projectList/projectList.vue

@@ -1,88 +1,103 @@
 <template>
   <div>
     <el-row>
-      <el-col
-          :span="4"
-      >
+      <el-col :span="4">
         <el-form-item label="项目名称">
           <el-input placeholder="请输入项目名称" />
         </el-form-item>
       </el-col>
       <el-col
-          :span="4"
-          :offset="1"
+        :span="4"
+        :offset="1"
       >
         <el-form-item label="立项时间">
           <el-date-picker
-              v-model="approvalTime"
-              type="month"
-              placeholder="请选择立项时间"
+            v-model="approvalTime"
+            type="month"
+            placeholder="请选择立项时间"
           />
         </el-form-item>
       </el-col>
       <el-col
-          :span="4"
-          :offset="1"
+        :span="4"
+        :offset="1"
       >
         <el-form-item label="项目状态">
           <el-select />
         </el-form-item>
       </el-col>
+      <el-col
+        :span="2"
+        :offset="1"
+      >
+        <el-button
+          type="primary"
+          :icon="Search"
+          @click="initializedData"
+        >查询</el-button>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="5">
-        <div class="bg-white h-24" />
-      </el-col>
-      <el-col :span="5" :offset="1">
-        <div class="bg-white h-24" />
-      </el-col>
-      <el-col :span="5" :offset="1">
-        <div class="bg-white h-24" />
-      </el-col>
-      <el-col :span="5" :offset="1">
-        <div class="bg-white h-24" />
+      <el-col :span="23">
+        <el-row justify="space-between">
+          <el-col :span="5">
+            <div class="bg-white h-24" />
+          </el-col>
+          <el-col :span="5">
+            <div class="bg-white h-24" />
+          </el-col>
+          <el-col :span="5">
+            <div class="bg-white h-24" />
+          </el-col>
+          <el-col :span="5">
+            <div class="bg-white h-24" />
+          </el-col>
+        </el-row>
       </el-col>
     </el-row>
     <el-form>
       <el-row style="margin-top: 20px;">
         <el-col
-            :span="21"
+          :span="23"
         >
-          <el-table :data="projectListData" height="650">
+          <el-table
+            :data="projectListData"
+            height="650"
+          >
             <el-table-column
-                label="项目编码"
-                width="200"
-                align="center"
+              prop="code"
+              label="项目编码"
+              align="center"
             />
             <el-table-column
-                label="项目名称"
-                width="200"
-                align="center"
+              prop="name"
+              label="项目名称"
+              align="center"
             />
             <el-table-column
-                label="项目负责人"
-                width="200"
-                align="center"
+              prop="principal"
+              label="项目负责人"
+              align="center"
             />
             <el-table-column
-                label="项目金额"
-                width="200"
-                align="center"
+              prop="price"
+              label="项目金额"
+              align="center"
             />
             <el-table-column
-                label="立项日期"
-                width="200"
-                align="center"
+              prop="CreatedAt"
+              label="立项日期"
+              align="center"
             />
             <el-table-column
-                label="项目进度"
-                width="200"
-                align="center"
+              prop="progress"
+              label="项目进度"
+              align="center"
             />
             <el-table-column
-                label="状态"
-                width="200"
-                align="center"
+              prop="state"
+              label="状态"
+              align="center"
             />
           </el-table>
         </el-col>
@@ -92,14 +107,55 @@
 </template>
 
 <script setup>
-import { ref, reactive } from 'vue'
+import { Search } from '@element-plus/icons-vue'
+import { getProjectList } from '@/api/projectList'
+import { reactive, ref } from 'vue'
+
 defineOptions({
   name: 'ProjectList'
 })
 
 const approvalTime = ref('')
 const projectListData = reactive([])
+const listTotal = ref(0)
+const data = {
+  pageInfo: {
+    page: 1,
+    pageSize: 10
+  },
+  name: '',
+  time: '',
+  state: 0
+}
+function formatDate(dateString, locale = 'en-US', timezone = 'Asia/Shanghai') {
+  // 使用 Date 构造函数解析日期字符串
+  const date = new Date(dateString)
+
+  // 检查日期是否有效
+  if (isNaN(date.getTime())) {
+    throw new Error('Invalid date string')
+  }
+
+  // 使用 Date 对象的年份、月份和日期来构建新的日期字符串
+  // 注意:JavaScript 中的月份是从 0 开始的,所以我们需要加 1
+  const formattedDate = `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)}`
+
+  return formattedDate
+}
+
+getProjectList(data).then(res => {
+  if (res.code === 0 && res.data.total > 0) {
+    const list = res.data.list
+    list.forEach(item => {
+      item.CreatedAt = formatDate(item.CreatedAt)
+    })
+    projectListData.push(...list)
+    listTotal.value = res.data.total
+  }
+})
+function initializedData() {
 
+}
 </script>
 
 <style scoped lang="less">