aexiaoliou 1 rok temu
rodzic
commit
27059e7622

+ 17 - 0
api/.htc_local.env

@@ -0,0 +1,17 @@
+APP_DEBUG = true
+
+[APP]
+DEFAULT_TIMEZONE = Asia/Shanghai
+
+[DATABASE]
+TYPE = mysql
+HOSTNAME = 172.24.0.2
+DATABASE = project-manager
+USERNAME = root
+PASSWORD = root
+HOSTPORT = 3306
+CHARSET = utf8mb4
+DEBUG = true
+
+[LANG]
+default_lang = zh-cn

+ 1 - 1
api/.test.env

@@ -6,7 +6,7 @@ DEFAULT_TIMEZONE = Asia/Shanghai
 [DATABASE]
 TYPE = mysql
 HOSTNAME = qqyun.ycxxkj.com
-DATABASE = lechang_storage_dev
+DATABASE = project_manager_test
 USERNAME = yfb
 PASSWORD = yfb123#
 HOSTPORT = 38006

+ 8 - 1
api/app/common/service/ProjectService.php

@@ -5,6 +5,7 @@ namespace app\common\service;
 use app\common\model\Project;
 use app\common\service\Service;
 use app\common\util\WhereBuilder;
+use Carbon\Carbon;
 
 class ProjectService extends Service
 {
@@ -14,10 +15,16 @@ class ProjectService extends Service
 
         $status = $this->array('status');
         $keyword = $this->pg('keyword');
+        $responsibility_person_id = $this->pg('responsibility_person_id');
+        $begin_date = $this->pg('begin_date');
+        $end_date = $this->pg('end_date');
+        $corret_end_date = Carbon::createFromTimeString($end_date)->addDay()->startOfDay()->toDateString();
         
         $where = WhereBuilder::builder()
-            ->like('p.name', $keyword)
+            ->like('p.name|p.source', $keyword)
             ->in('p.status', $status)
+            ->eq('p.responsibility_person_id', $responsibility_person_id)
+            ->between('p.create_time', $begin_date, $corret_end_date)
             ->build();
 
         return (new Project)->alias('p')

+ 3 - 0
h5/src/App.vue

@@ -15,6 +15,9 @@
                     </KeepAlive>
                 </Transition>
             </template>
+            <template v-else>
+                失败
+            </template>
         </router-view>
         <LockScreen v-if="themeConfig.isLockScreen" />
         <Setings ref="setingsRef" v-show="themeConfig.lockScreenTime > 1" />

+ 0 - 14
h5/src/components/role/code.tsx

@@ -1,14 +0,0 @@
-import { update } from '/@/api/role'
-import type { Role } from '/@/api/role'
-import { defineProps } from 'vue';
-
-const props = defineProps<{
-    role: Role
-}>();
-
-export default {
-    props: props,
-    setup() {
-        
-    }
-}

+ 5 - 1
h5/src/components/role/codes.vue

@@ -25,7 +25,10 @@ const { modelValue, role } = defineProps<{
     role: Role
 }>()
 console.log(role)
-const emit = defineEmits(['update:modelValue'])
+const emit = defineEmits<{
+    (e: 'update:modelValue', value: boolean): void
+    (e: 'submit', result: any): void
+}>()
 
 const codes = ref()
 
@@ -61,6 +64,7 @@ const submitForm = throttle(async () => {
     ElMessage({ message: '更新成功' })
 
     emit('update:modelValue', false)
+    emit('submit', result)
 })
 
 </script>

+ 5 - 1
h5/src/components/role/edit.vue

@@ -29,7 +29,10 @@ const { modelValue, role, type } = defineProps<{
     role: Role,
     type: 'update' | 'create'
 }>()
-const emit = defineEmits(['update:modelValue'])
+const emit = defineEmits<{
+    (e: 'update:modelValue', value: boolean): void
+    (e: 'submit', result: any): void
+}>()
 const submitLoading = ref(false)
 
 const submitForm = async () => {
@@ -47,5 +50,6 @@ const submitForm = async () => {
     ElMessage({ message: type === 'create' ? '新增成功' : '更新成功' })
 
     emit('update:modelValue', false)
+    emit('submit', result)
 }
 </script>

+ 7 - 6
h5/src/router/route.ts

@@ -1,3 +1,4 @@
+import { defineAsyncComponent } from 'vue'
 import { RouteRecordRaw } from 'vue-router'
 
 /**
@@ -82,7 +83,7 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
 					{
 						path: '/admin/admin',
 						name: 'adminMng',
-						component: () => import('/@/views/admin/admin/index.vue'),
+						component: defineAsyncComponent(() => import('/@/views/admin/admin/index.vue')),
 						meta: {
 							title: 'message.router.adminMng', //账号管理
 							isLink: '',
@@ -128,14 +129,14 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
 				},
 				children: [
 					{
-						path: '/data/repertory',
-						name: 'dataRepertory',//gzs:name一定不能重复
-						component: () => import('/@/views/data/repertory.vue'),//gzs:仓库管理页面文件的路径
+						path: '/project',
+                        name: 'project', 
+						component: defineAsyncComponent(() => import('/@/views/data/repertory.vue')),
 						meta: {
-							title: 'message.router.dataRepertory', //gzs:左侧菜单栏显示的名称
+							title: '项目汇总',
 							isLink: '',
 							isHide: false,
-							isKeepAlive: true,
+							isKeepAlive: false,
 							isAffix: false,
 							isIframe: false,
 							roles: ['admin'],

+ 25 - 11
h5/src/views/admin/role/index.vue

@@ -1,13 +1,13 @@
 <template>
-    <Codes v-if="isShowCodesEditForm" v-model="isShowCodesEditForm" :role="editRole" />
-    <Edit v-model="isShowRoleEditForm" :role="editRole" :type="editType" />
+    <Codes v-if="isShowCodesEditForm" v-model="isShowCodesEditForm" :role="editRole" @submit="() => reflush(false)" />
+    <Edit v-model="isShowRoleEditForm" :role="editRole" :type="editType" @submit="() => reflush(false)" />
     <div>
         <el-card class="box-card" v-loading="wholeLoading" element-loading-text="Loading..." style="height: 600px">
             <template #header>
                 <div class="card-header">
                     <span>权限管理</span>
                     <div>
-                        <el-button type="default" @click="reflush()">刷新列表</el-button>
+                        <el-button type="default" @click="reflush()" v-loading="reflushLoading">刷新列表</el-button>
                         <el-button type="primary" @click="showEditDialog('create')">新增角色</el-button>
                     </div>
                 </div>
@@ -18,15 +18,16 @@
                 </template>
             </el-auto-resizer>
         </el-card>
+        <el-alert class="box-card" title="目前该页面切换到其他页面会发生页面丢失的现象,正在排查原因,如遇到该问题,请刷新后再使用" type="warning" effect="light" />
     </div>
 </template>
 
-<script lang="tsx" setup name="underlyingRoleManage">
-import { ref, h } from 'vue'
-import { ElTag, ElMessage, ElMessageBox, ElButton, TableV2FixedDir } from 'element-plus'
+<script lang="tsx" setup>
+import { ref} from 'vue'
+import { ElTag, ElMessage, ElButton, TableV2FixedDir } from 'element-plus'
 import type { Column } from 'element-plus'
 import { clone, throttle } from 'lodash'
-import { init, update, newRole } from '/@/api/role'
+import { init, list, update, newRole } from '/@/api/role'
 import type { Role } from '/@/api/role'
 import Codes from '/@/components/role/codes.vue'
 import Edit from '/@/components/role/edit.vue'
@@ -40,6 +41,10 @@ const data = await init()
  */
 const wholeLoading = ref(false)
 /**
+ * 刷新按钮loading
+ */
+const reflushLoading = ref(false)
+/**
  * 编辑权限表单的显示控制
  */
 const isShowCodesEditForm = ref(false)
@@ -71,9 +76,10 @@ const columns: Column<any>[] = [
         title: '权限值',
         dataKey: 'codes_cn',
         width: 400,
+        // TODO 添加一个展开查看权限的按钮
         cellRenderer: ({ cellData: codes_cn }) =>
             <div style="overflow-y: auto; display: flex" onWheel={handleWheel}>
-                {codes_cn?.map(cn => <ElTag style="margin-right: 5px">{cn}</ElTag>)}
+                {codes_cn?.map(cn => <ElTag style="margin-right: 5px">{cn}</ElTag>) || '暂无权限,点击权限按钮以授权'}
             </div>
     },
     {
@@ -125,9 +131,9 @@ const showPermissionDialog = throttle((role) => {
     isShowCodesEditForm.value = true
 })
 
-const updateValid = throttle((row: any) => {
+const updateValid = throttle(async (row: any) => {
     row.valid = !row.valid
-    update(row)
+    await update(row)
 })
 
 /**
@@ -148,7 +154,15 @@ const handleWheel = (event) => {
 /**
  * 刷新
  */
-const reflush = () => { }
+const reflush = async (msg = true) => {
+    reflushLoading.value = true
+    const result = await list()
+    reflushLoading.value = false
+
+    if (result.code != 0) return
+    if (msg) ElMessage({message: '刷新成功'})
+    data.value = result.data
+}
 
 </script>
 

+ 121 - 121
h5/src/views/data/repertory.vue

@@ -27,7 +27,7 @@
 					<el-form-item label="状态:" prop="change_type">
 						<el-select v-model="data.params.status" multiple placeholder="选择状态" @change="getList"
 							style="width: 300px">
-							<el-option :label="item[1]" :value="item[0]" v-for="item in statuslist.data" />
+							<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
 						</el-select>
 					</el-form-item>
 				</el-col>
@@ -54,7 +54,7 @@
 					<template #default="scope">
 						<el-button link type="primary" @click="edit(scope.row)">更新</el-button>
 						<el-button link type="primary" @click="openDetail(scope.row)">详情</el-button>
-						<el-button link type="primary" @click="opencontract(scope.row)">查看合同</el-button>
+						<el-button link type="primary" @click="openContract(scope.row)">查看合同</el-button>
 						<el-button link type="danger" @click="deleteOne(scope.row)">删除</el-button>
 					</template>
 				</el-table-column>
@@ -112,7 +112,7 @@
 							<el-form-item label="状态" prop="status"
 								:rules="[{ required: true, message: '请选择状态', trigger: 'blur' }]">
 								<el-select v-model="data.form.status" placeholder="选择状态">
-									<el-option :label="item[1]" :value="item[0]" v-for="item in statuslist.data" />
+									<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
 								</el-select>
 							</el-form-item>
 						</el-col>
@@ -126,7 +126,7 @@
 								:rules="[{ required: true, message: '填写项目结束时间', trigger: 'blur' }]">
 
 								<el-date-picker v-model="data.form.project_end_date" type="project_end_date"
-									placeholder=" 填写项目结束时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
+									placeholder="填写项目结束时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
 							</el-form-item>
 
 							<el-form-item label="开发开始时间" prop="dev_start_date"
@@ -196,15 +196,15 @@
 												<p>{{ item.updater }}</p>
 												<div class="text mb10">结束时间:{{ item.end_date }}</div>
 												<div class="text">
-													<el-button type="primary" @click="editschedule(item)">编辑进度</el-button>
-													<el-button type="danger" @click="delschedule(item)">删除进度</el-button>
+													<el-button type="primary" @click="editSchedule(item)">编辑进度</el-button>
+													<el-button type="danger" @click="deleteSchedule(item)">删除进度</el-button>
 												</div>
 											</el-card>
 
 										</el-timeline-item>
 										<el-timeline-item>
 											<div class="flex justify-space-between mb-4 flex-wrap gap-4">
-												<el-button type="primary" text @click="newschedule">新建进度</el-button>
+												<el-button type="primary" text @click="newSchedule">新建进度</el-button>
 											</div>
 										</el-timeline-item>
 									</el-timeline>
@@ -218,62 +218,62 @@
 		</vuecmf-dialog>
 		<!-- 弹出 项目进度 新增,更新页面-->
 		<vuecmf-dialog width="500px" :model_value="data.schedule.show" :title="data.schedule.title"
-			@close="closeschedulePage">
+			@close="closeSchedulePage">
 			<template #content>
-				<el-form :model="data.formlist" label-width="120px" ref="formRef" v-loading="data.schedule.isLoading">
+				<el-form :model="data.formList" label-width="120px" ref="formRef" v-loading="data.schedule.isLoading">
 					<el-form-item label="进度名称" prop="name"
 						:rules="[{ required: true, message: '请填写进度名称', trigger: 'blur' }]">
-						<el-input v-model="data.formlist.name" placeholder="进度名称" />
+						<el-input v-model="data.formList.name" placeholder="进度名称" />
 					</el-form-item>
 					<el-form-item label="进度内容" prop="desc"
 						:rules="[{ required: true, message: '请填写进度内容', trigger: 'blur' }]">
-						<el-input v-model="data.formlist.desc" placeholder="进度内容" />
+						<el-input v-model="data.formList.desc" placeholder="进度内容" />
 					</el-form-item>
-					<el-form-item label="新建进度人" prop="updater_id"
-						:rules="[{ required: true, message: '选择新建进度人', trigger: 'blur' }]">
-						<el-select v-model="data.formlist.updater_id" placeholder="选择新建进度人员">
+					<el-form-item label="进度负责人" prop="updater_id"
+						:rules="[{ required: true, message: '选择进度负责人', trigger: 'blur' }]">
+						<el-select v-model="data.formList.updater_id" placeholder="选择进度负责人">
 							<el-option :label="item.real_name" :value="item.id" v-for="item in data.repertoryList" />
 						</el-select>
 					</el-form-item>
 					<el-form-item label="开始时间" prop="start_date">
-						<el-date-picker v-model="data.formlist.start_date" type="start_date" placeholder=" 填写开始时间"
+						<el-date-picker v-model="data.formList.start_date" type="start_date" placeholder=" 填写开始时间"
 							value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
 					</el-form-item>
 					<el-form-item label="结束时间" prop="end_date">
-						<el-date-picker v-model="data.formlist.end_date" type="end_date" placeholder=" 填写结束时间"
+						<el-date-picker v-model="data.formList.end_date" type="end_date" placeholder=" 填写结束时间"
 							value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
 					</el-form-item>
 					<el-form-item label="状态" prop="status" :rules="[{ required: true, message: '请选择状态', trigger: 'blur' }]">
-						<el-select v-model="data.formlist.status" placeholder="选择状态">
+						<el-select v-model="data.formList.status" placeholder="选择状态">
 							<el-option :label="item.value" :value="item.key" v-for="item in data.stalist" />
 						</el-select>
 					</el-form-item>
 					<el-form-item label="结束状态" prop="finish_project_status"
 						:rules="[{ required: true, message: '请选择结束状态', trigger: 'blur' }]">
-						<el-select v-model="data.formlist.finish_project_status" placeholder="选择结束状态">
-							<el-option :label="item[1]" :value="item[0]" v-for="item in statuslist.data" />
+						<el-select v-model="data.formList.finish_project_status" placeholder="选择结束状态">
+							<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
 						</el-select>
 					</el-form-item>
 					<el-form-item label="是否更新状态" prop="is_update_project_status"
 						:rules="[{ required: true, message: '请更新状态', trigger: 'blur' }]">
-						<el-switch v-model="data.formlist.is_update_project_status" class="ml-2" :active-value="1"
+						<el-switch v-model="data.formList.is_update_project_status" class="ml-2" :active-value="1"
 							:inactive-value="0" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949" />
 					</el-form-item>
 				</el-form>
 				<div class="height20"></div>
 			</template>
 			<template #footer>
-				<el-button type="default" @click="closeschedulePage">取消</el-button>
-				<el-button type="primary" @click="submitscheduleupdate()">更新</el-button>
-				<el-button type="success" @click="submitschedule()">提交</el-button>
+				<el-button type="default" @click="closeSchedulePage">取消</el-button>
+				<el-button type="primary" @click="submitScheduleUpdate()">更新</el-button>
+				<el-button type="success" @click="submitSchedule()">提交</el-button>
 			</template>
 		</vuecmf-dialog>
 		<!-- 弹出容器 ,查看合同详情-->
 		<vuecmf-dialog width="1200px" :model_value="data.contractDetail.showDetail" :title="data.contractDetail.titleDetail"
 			@close="closePage">
 			<template #content>
-				<el-form :model="data.tablecontract" inline-message="true">
-					<el-table :data="data.tablecontract" stripe style="width: 100%" label-width="120px"
+				<el-form :model="data.tableContract" inline-message="true">
+					<el-table :data="data.tableContract" stripe style="width: 100%" label-width="120px"
 						v-loading="data.dialog.isLoading">
 						<el-table-column prop="title" label="合同名称" width="" />
 						<el-table-column prop="client" label="甲方/客户" width="" />
@@ -289,104 +289,104 @@
 						</el-table-column>
 						<el-table-column fixed="right" label="操作" width="">
 							<template #default="scope">
-								<el-button link type="primary" @click="editcontract(scope.row)">更新</el-button>
-								<el-button link type="danger" @click="delcontract(scope.row)">删除</el-button>
+								<el-button link type="primary" @click="editContract(scope.row)">更新</el-button>
+								<el-button link type="danger" @click="deleteContract(scope.row)">删除</el-button>
 							</template>
 						</el-table-column>
 					</el-table>
 				</el-form>
 			</template>
 			<template #footer>
-				<el-button type="primary" @click="newcontract">添加新合同</el-button>
+				<el-button type="primary" @click="newContract">添加新合同</el-button>
 				<el-button type="default" @click="closePage">取消</el-button>
 			</template>
 		</vuecmf-dialog>
 		<!-- 弹出 合同 新增,更新页面-->
 		<vuecmf-dialog width="500px" :model_value="data.contract.show" :title="data.contract.title"
-			@close="closeschedulePage">
+			@close="closeSchedulePage">
 			<template #content>
-				<el-form :model="data.formcontract" label-width="120px" ref="formRef" v-loading="data.schedule.isLoading">
+				<el-form :model="data.formContract" label-width="120px" ref="formRef" v-loading="data.schedule.isLoading">
 					<el-form-item label="合同名称" prop="title"
 						:rules="[{ required: true, message: '请填写合同名称', trigger: 'blur' }]">
-						<el-input v-model="data.formcontract.title" placeholder="合同名称" />
+						<el-input v-model="data.formContract.title" placeholder="合同名称" />
 					</el-form-item>
 					<el-form-item label="甲方/客户" prop="client"
 						:rules="[{ required: true, message: '请填写甲方/客户', trigger: 'blur' }]">
-						<el-input v-model="data.formcontract.client" placeholder="甲方/客户" />
+						<el-input v-model="data.formContract.client" placeholder="甲方/客户" />
 					</el-form-item>
 					<el-form-item label="乙方/开发公司" prop="developer"
 						:rules="[{ required: true, message: '请填写乙方/开发公司', trigger: 'blur' }]">
-						<el-input v-model="data.formcontract.developer" placeholder="乙方/开发公司" />
+						<el-input v-model="data.formContract.developer" placeholder="乙方/开发公司" />
 					</el-form-item>
 					<el-form-item label="合同金额" prop="amount"
 						:rules="[{ required: true, message: '请填写合同金额', trigger: 'blur' }]">
-						<el-input v-model="data.formcontract.amount" placeholder="合同金额" />
+						<el-input v-model="data.formContract.amount" placeholder="合同金额" />
 					</el-form-item>
 					<el-form-item label="合同签署日期" prop="date">
-						<el-date-picker v-model="data.formcontract.date" type="date" placeholder="合同签署日期"
+						<el-date-picker v-model="data.formContract.date" type="date" placeholder="合同签署日期"
 							value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
 					</el-form-item>
 					<el-form-item label="合同开始日期" prop="start_date">
-						<el-date-picker v-model="data.formcontract.start_date" type="start_date" placeholder="合同开始日期"
+						<el-date-picker v-model="data.formContract.start_date" type="start_date" placeholder="合同开始日期"
 							value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
 					</el-form-item>
 					<el-form-item label="合同结束日期" prop="end_date">
-						<el-date-picker v-model="data.formcontract.end_date" type="end_date" placeholder="合同结束日期"
+						<el-date-picker v-model="data.formContract.end_date" type="end_date" placeholder="合同结束日期"
 							value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
 					</el-form-item>
 					<el-form-item label="附件" prop="attachment">
 						<el-button type="default" @click="importExcel()">上传附件</el-button>
-						<el-text class="ml10">{{ data.attachmenttitle }}</el-text>
+						<el-text class="ml10">{{ data.attachMenttitle }}</el-text>
 					</el-form-item>
 				</el-form>
 				<div class="height20"></div>
 			</template>
 			<template #footer>
-				<el-button type="default" @click="closeschedulePage">取消</el-button>
-				<el-button type="primary" @click="submitcontractupdate()">更新</el-button>
-				<el-button type="success" @click="submitcontract()">提交</el-button>
+				<el-button type="default" @click="closeSchedulePage">取消</el-button>
+				<el-button type="primary" @click="submitContractUpdate()">更新</el-button>
+				<el-button type="success" @click="submitContract()">提交</el-button>
 			</template>
 		</vuecmf-dialog>
 		<!-- 弹出状态 新增的页面-->
-		<vuecmf-dialog width="" :model_value="data.statusdialog.show" :title="data.statusdialog.title" @close="closePage">
+		<vuecmf-dialog width="" :model_value="data.statusDialog.show" :title="data.statusDialog.title" @close="closePage">
 			<template #content>
-				<el-form :model="data.formstatus" label-width="120px" ref="formRef" v-loading="data.statusdialog.isLoading">
+				<el-form :model="data.formStatus" label-width="120px" ref="formRef" v-loading="data.statusDialog.isLoading">
 					<el-form-item label="状态名" prop="value">
-						<el-input v-model="data.formstatus.value" placeholder="填写状态名" />
+						<el-input v-model="data.formStatus.value" placeholder="填写状态名" />
 					</el-form-item>
 					<el-form-item label="状态值" prop="key">
-						<el-input v-model="data.formstatus.key" placeholder="状态值" />
+						<el-input v-model="data.formStatus.key" placeholder="状态值" />
 					</el-form-item>
 				</el-form>
 				<div class="height20"></div>
 			</template>
 			<template #footer>
 				<el-button type="default" @click="closePage">取消</el-button>
-				<el-button type="primary" @click="submitstatusForm">提交</el-button>
+				<el-button type="primary" @click="submitStatusForm">提交</el-button>
 			</template>
 		</vuecmf-dialog>
 		<!-- 弹出状态 更新的页面-->
-		<vuecmf-dialog width="" :model_value="data.statuslog.show" :title="data.statuslog.title" @close="closePage">
+		<vuecmf-dialog width="" :model_value="data.statusLog.show" :title="data.statusLog.title" @close="closePage">
 			<template #content>
-				<el-form :model="data.formstatus" label-width="120px" ref="formRef" v-loading="data.statuslog.isLoading">
-					<el-form-item label="状态名" prop="value">
-						<el-select v-model="data.formstatus.value" placeholder="选择状态">
-							<el-option :label="item[1]" :value="item[1]" v-for="item in statuslist.data" />
+				<el-form :model="data.formStatus" label-width="120px" ref="formRef" v-loading="data.statusLog.isLoading">
+					<el-form-item :label="data.formStatus.key || '选择状态'" prop="key">
+						<el-select v-model="data.formStatus.key" placeholder="选择状态">
+							<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
 						</el-select>
 					</el-form-item>
-					<el-form-item label="状态值" prop="key">
-						<el-input v-model="data.formstatus.key" placeholder="状态值" />
+					<el-form-item :label="data.formStatus.key" prop="value">
+						<el-input v-model="data.formStatus.value" placeholder="新状态名" :style="{width: '200px'}" />
 					</el-form-item>
 				</el-form>
 				<div class="height20"></div>
 			</template>
 			<template #footer>
 				<el-button type="default" @click="closePage">取消</el-button>
-				<el-button type="primary" @click="editstatusForm">更新</el-button>
+				<el-button type="primary" @click="editStatusForm">更新</el-button>
 			</template>
 		</vuecmf-dialog>
 		<!-- 上传附件 -->
-		<ImportExcelDialog ref="importExcelDialogRef" @refresh="getattachment" />
+		<ImportExcelDialog ref="importExcelDialogRef" @refresh="getAttachment" />
 	</div>
 </template>
 <script lang="ts" setup>
@@ -394,7 +394,7 @@ import { onMounted, reactive, computed, ref, defineAsyncComponent, nextTick } fr
 import { storeToRefs } from 'pinia';
 import { useThemeConfig } from '/@/stores/themeConfig';
 import Repertory from '/@/api/model/Repertory'; //gzs:引入模型
-import statuslist from '/@/views/data/status';
+import statusList from '/@/views/data/status';
 import { ElMessage, ElMessageBox, genFileId } from 'element-plus';
 import type { FormInstance } from 'element-plus';
 // 定义变量内容
@@ -415,7 +415,7 @@ let data = reactive({
 		status: [], //状态
 	},
 	//请求合同查询的参数
-	contractparams: {
+	contractParams: {
 		pageSize: getThemeConfig.value.pageSize, //分页大小
 		page: 1, //当前页面
 		project_id: '', //项目id
@@ -457,13 +457,13 @@ let data = reactive({
 		isLoading: false, //是否加载中
 	},
 	//项目新增弹出框
-	statusdialog: {
+	statusDialog: {
 		show: false, // 是否显示弹出框,用于最大化、最小化及还原
 		title: '添加', // 弹出框标题
 		isLoading: false, //是否加载中
 	},
 	//项目编辑弹出框
-	statuslog: {
+	statusLog: {
 		show: false, // 是否显示弹出框,用于最大化、最小化及还原
 		title: '添加', // 弹出框标题
 		isLoading: false, //是否加载中
@@ -489,12 +489,12 @@ let data = reactive({
 	] as any,
 	loading: false, //是否加载中
 	tableData: [], // 表格数据
-	tablecontract: [] as any, //合同数据
-	attachmenttitle: '', //附件名
+	tableContract: [] as any, //合同数据
+	attachMenttitle: '', //附件名
 	form: {} as any, //新增和修改项目数据
-	formlist: {} as any, //新增和修改进度数据
-	formcontract: {} as any, //新增和修改合同数据
-	formstatus: {} as any, //新增和修改状态数据
+	formList: {} as any, //新增和修改进度数据
+	formContract: {} as any, //新增和修改合同数据
+	formStatus: {} as any, //新增和修改状态数据
 	repertoryList: [] as any,//参与人员列表
 });
 /**
@@ -506,11 +506,11 @@ const importExcel = () => {
 	importExcelDialogRef.value.openDialog();
 };
 //接收
-const getattachment = async (item: string) => {
+const getAttachment = async (item: string) => {
 	console.log("🚀 ~ file: repertory.vue:378 ~ getattachment ~ item:", item)
 	nextTick(() => {
-		data.formcontract.attachment = item[0];
-		data.attachmenttitle = item[1];
+		data.formContract.attachment = item[0];
+		data.attachMenttitle = item[1];
 	})
 
 };
@@ -589,7 +589,7 @@ const newFormstatuslist = () => {
 const handleSizeChange = (val: number) => {
 	data.params.pageSize = val;
 	getList();
-	getcontractList();
+	getContractList();
 };
 /**
  * 翻页
@@ -597,13 +597,13 @@ const handleSizeChange = (val: number) => {
 const handleCurrentChange = (val: number) => {
 	data.params.page = val;
 	getList();
-	getcontractList();
+	getContractList();
 };
 
 const search = async () => {
 	data.params.page = 1;
 	await getList();
-	await getcontractList();
+	await getContractList();
 };
 /**
  * 页面初始化方法,有就写逻辑,没有可以留空
@@ -645,21 +645,21 @@ const getList = async () => {
 /**
  * 获取合同分页数据
  */
-const getcontractList = async () => {
+const getContractList = async () => {
 	data.loading = true;
 	const res = await Repertory.listcontract({
 		pageParams: {
-			size: data.contractparams.pageSize,
-			page: data.contractparams.page
+			size: data.contractParams.pageSize,
+			page: data.contractParams.page
 		},
-		project_id: data.contractparams.project_id,
+		project_id: data.contractParams.project_id,
 	});
 	data.loading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
 		return;
 	}
-	data.tablecontract = res.data.data
+	data.tableContract = res.data.data
 };
 // 翻页
 const handleTableDataSelectionChange = (val: any) => {
@@ -671,12 +671,12 @@ const handleTableDataSelectionChange = (val: any) => {
  */
 const closePage = () => {
 	data.dialog.show = false;
-	data.statusdialog.show = false;
-	data.statuslog.show = false;
+	data.statusDialog.show = false;
+	data.statusLog.show = false;
 	data.dialogDetail.showDetail = false;
 	data.contractDetail.showDetail = false;
 };
-const closeschedulePage = () => {
+const closeSchedulePage = () => {
 	data.schedule.show = false;
 	data.contract.show = false;
 };
@@ -684,16 +684,16 @@ const closeschedulePage = () => {
  * 弹出新增状态页面
  */
 const addstatus = () => {
-	data.statusdialog.show = true;
-	data.statusdialog.title = '添加状态';
-	data.formstatus = newFormstatuslist();
+	data.statusDialog.show = true;
+	data.statusDialog.title = '添加状态';
+	data.formStatus = newFormstatuslist();
 };
 /**
  * 弹出更新状态页面
  */
 const editstatus = () => {
-	data.statuslog.show = true;
-	data.statuslog.title = '更新状态';
+	data.statusLog.show = true;
+	data.statusLog.title = '更新状态';
 };
 /**
  * 弹出新增项目页面
@@ -718,47 +718,47 @@ const openDetail = async (item: any) => {
 	data.dialogDetail.showDetail = true;
 	data.dialogDetail.titleDetail = '项目详情';
 	data.form = item;
-	data.formlist.project_id = item.id;
+	data.formList.project_id = item.id;
 };
 /**
  * 弹出新增项目进度页面
  */
-const newschedule = async () => {
+const newSchedule = async () => {
 	data.schedule.show = true;
 	data.schedule.title = '添加进度';
 };
 /**
  * 弹出编辑项目进度页面
  */
-const editschedule = async (item: any) => {
+const editSchedule = async (item: any) => {
 	data.schedule.show = true;
 	data.schedule.title = '编辑项目进度';
-	data.formlist = item;
+	data.formList = item;
 };
 /**
  * 获取合同详情
  */
-const opencontract = async (item: any) => {
-	data.formcontract.project_id = item.id;
-	data.contractparams.project_id = item.id;
+const openContract = async (item: any) => {
+	data.formContract.project_id = item.id;
+	data.contractParams.project_id = item.id;
 	data.contractDetail.showDetail = true;
 	data.contractDetail.titleDetail = '合同详情';
-	await getcontractList();
+	await getContractList();
 };
 /**
  * 弹出新增合同页面
  */
-const newcontract = async () => {
+const newContract = async () => {
 	data.contract.show = true;
 	data.contract.title = '添加合同';
 };
 /**
  * 弹出编辑项目进度页面
  */
-const editcontract = async (item: any) => {
+const editContract = async (item: any) => {
 	data.contract.show = true;
 	data.schedule.title = '编辑合同';
-	data.formcontract = item;
+	data.formContract = item;
 };
 /**
  * 提交项目表单,新增和修改
@@ -770,7 +770,7 @@ const submitForm = (formEl: FormInstance | undefined) => {
 			console.log('error submit!');
 			return false;
 		}
-		let res = null;
+		let res;
 		data.dialog.isLoading = true;
 		if (data.form?.id) {
 			//如果是编辑
@@ -791,9 +791,9 @@ const submitForm = (formEl: FormInstance | undefined) => {
 /**
  * 提交进度表单,新增
  */
-const submitschedule = async () => {
+const submitSchedule = async () => {
 	data.schedule.isLoading = true;
-	let res = await Repertory.addschedules(data.formlist);
+	let res = await Repertory.addschedules(data.formList);
 	data.schedule.isLoading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
@@ -801,15 +801,15 @@ const submitschedule = async () => {
 	}
 	ElMessage.success(res.msg);
 	search();
-	closeschedulePage();
+	closeSchedulePage();
 	closePage();
 };
 /**
  * 提交进度表单,编辑
  */
-const submitscheduleupdate = async () => {
+const submitScheduleUpdate = async () => {
 	data.schedule.isLoading = true;
-	let res = await Repertory.editschedules(data.formlist);
+	let res = await Repertory.editschedules(data.formList);
 	data.schedule.isLoading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
@@ -817,15 +817,15 @@ const submitscheduleupdate = async () => {
 	}
 	ElMessage.success(res.msg);
 	search();
-	closeschedulePage();
+	closeSchedulePage();
 	closePage();
 };
 /**
  * 提交合同表单,新增
  */
-const submitcontract = async () => {
+const submitContract = async () => {
 	data.contract.isLoading = true;
-	let res = await Repertory.addcontract(data.formcontract);
+	let res = await Repertory.addcontract(data.formContract);
 	data.contract.isLoading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
@@ -833,15 +833,15 @@ const submitcontract = async () => {
 	}
 	ElMessage.success(res.msg);
 	search();
-	closeschedulePage();
+	closeSchedulePage();
 	closePage();
 };
 /**
  * 提交合同表单,编辑
  */
-const submitcontractupdate = async () => {
+const submitContractUpdate = async () => {
 	data.contract.isLoading = true;
-	let res = await Repertory.editcontract(data.formcontract);
+	let res = await Repertory.editcontract(data.formContract);
 	data.contract.isLoading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
@@ -849,16 +849,16 @@ const submitcontractupdate = async () => {
 	}
 	ElMessage.success(res.msg);
 	search();
-	closeschedulePage();
+	closeSchedulePage();
 	closePage();
 };
 /**
  * 提交状态表单,新增
  */
-const submitstatusForm = async () => {
-	data.statusdialog.isLoading = true;
-	let res = await Repertory.addstatus(data.formstatus);
-	data.statusdialog.isLoading = false;
+const submitStatusForm = async () => {
+	data.statusDialog.isLoading = true;
+	let res = await Repertory.addstatus(data.formStatus);
+	data.statusDialog.isLoading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
 		return;
@@ -871,10 +871,10 @@ const submitstatusForm = async () => {
 /**
  * 提交状态表单,更新
  */
-const editstatusForm = async () => {
-	data.statuslog.isLoading = true;
-	let res = await Repertory.editstatus(data.formstatus);
-	data.statuslog.isLoading = false;
+const editStatusForm = async () => {
+	data.statusLog.isLoading = true;
+	let res = await Repertory.editstatus(data.formStatus);
+	data.statusLog.isLoading = false;
 	if (res.code != 0) {
 		ElMessage.error(res.msg);
 		return;
@@ -897,7 +897,7 @@ const deleteOne = (item: any) => {
 		.catch(() => { });
 };
 //删除进度数据
-const delschedule = (item: any) => {
+const deleteSchedule = (item: any) => {
 	ElMessageBox.confirm('删除后不可恢复,确定要删除该记录吗?', '警告', {
 		confirmButtonText: '确定',
 		cancelButtonText: '取消',
@@ -909,14 +909,14 @@ const delschedule = (item: any) => {
 		.catch(() => { });
 };
 //删除合同数据
-const delcontract = (item: any) => {
+const deleteContract = (item: any) => {
 	ElMessageBox.confirm('删除后不可恢复,确定要删除该记录吗?', '警告', {
 		confirmButtonText: '确定',
 		cancelButtonText: '取消',
 		type: 'warning',
 	})
 		.then(() => {
-			deletecontract([item.id]);
+			doDeleteContract([item.id]);
 		})
 		.catch(() => { });
 };
@@ -941,11 +941,11 @@ const scheduleDelete = async (ids: any) => {
 		return;
 	}
 	search();
-	closeschedulePage();
+	closeSchedulePage();
 	closePage();
 };
 //执行删除合同请求
-const deletecontract = async (ids: any) => {
+const doDeleteContract = async (ids: any) => {
 	data.loading = true;
 	let res = await Repertory.deletecontract(ids);
 	data.loading = false;
@@ -954,7 +954,7 @@ const deletecontract = async (ids: any) => {
 		return;
 	}
 	search();
-	closeschedulePage();
+	closeSchedulePage();
 	closePage();
 };
 //=========页面事件