页面xiugai

This commit is contained in:
zmj 2023-12-23 18:04:45 +08:00
parent e67c693c01
commit 408ff1c8b0
9 changed files with 3481 additions and 3421 deletions

View File

@ -1,8 +1,8 @@
NODE_ENV = 'development'
# VITE_APP_BASE_URL = 'http://192.168.1.162:8000'
VITE_APP_BASE_URL = 'http://192.168.1.22:8000'
#
VITE_APP_BASE_URL = 'https://ceshi-worker-task.lihaink.cn'
# VITE_APP_BASE_URL = 'https://ceshi-worker-task.lihaink.cn'
# VITE_APP_BASE_URL = 'https://preview-worker-task.lihaink.cn'

99
package-lock.json generated
View File

@ -17,7 +17,7 @@
"axios": "^0.27.2",
"css-color-function": "^1.3.3",
"echarts": "^5.3.3",
"element-plus": "^2.2.9",
"element-plus": "^2.4.4",
"highlight.js": "^11.6.0",
"nprogress": "^0.2.0",
"pinia": "^2.0.14",
@ -651,9 +651,9 @@
}
},
"node_modules/@element-plus/icons-vue": {
"version": "2.0.6",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz",
"integrity": "sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==",
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
"integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
"peerDependencies": {
"vue": "^3.2.0"
}
@ -770,18 +770,27 @@
"dev": true
},
"node_modules/@floating-ui/core": {
"version": "0.7.3",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-0.7.3.tgz",
"integrity": "sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg=="
"version": "1.5.2",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.5.2.tgz",
"integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==",
"dependencies": {
"@floating-ui/utils": "^0.1.3"
}
},
"node_modules/@floating-ui/dom": {
"version": "0.5.4",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.5.4.tgz",
"integrity": "sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==",
"version": "1.5.3",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.5.3.tgz",
"integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
"dependencies": {
"@floating-ui/core": "^0.7.3"
"@floating-ui/core": "^1.4.2",
"@floating-ui/utils": "^0.1.3"
}
},
"node_modules/@floating-ui/utils": {
"version": "0.1.6",
"resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.1.6.tgz",
"integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
},
"node_modules/@highlightjs/vue-plugin": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/@highlightjs/vue-plugin/-/vue-plugin-2.1.0.tgz",
@ -1032,9 +1041,9 @@
}
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.14",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz",
"integrity": "sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A=="
"version": "0.0.16",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.62.0",
@ -1735,51 +1744,27 @@
}
},
"node_modules/@vueuse/core": {
"version": "8.9.4",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-8.9.4.tgz",
"integrity": "sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==",
"version": "9.13.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
"dependencies": {
"@types/web-bluetooth": "^0.0.14",
"@vueuse/metadata": "8.9.4",
"@vueuse/shared": "8.9.4",
"@types/web-bluetooth": "^0.0.16",
"@vueuse/metadata": "9.13.0",
"@vueuse/shared": "9.13.0",
"vue-demi": "*"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.0",
"vue": "^2.6.0 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/@vueuse/metadata": {
"version": "8.9.4",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.9.4.tgz",
"integrity": "sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw=="
"version": "9.13.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
},
"node_modules/@vueuse/shared": {
"version": "8.9.4",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.9.4.tgz",
"integrity": "sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==",
"version": "9.13.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
"dependencies": {
"vue-demi": "*"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.0",
"vue": "^2.6.0 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/@wangeditor/basic-modules": {
@ -2950,17 +2935,17 @@
"dev": true
},
"node_modules/element-plus": {
"version": "2.2.9",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.9.tgz",
"integrity": "sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ==",
"version": "2.4.4",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.4.tgz",
"integrity": "sha512-TlKubXJgxwhER0dw+8ULn9hr9kZjraV4R6Q/eidwWUwCKxwXYPBGmMKsZ/85tlxlhMYbcLZd/YZh6G3QkHX4fg==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.6",
"@floating-ui/dom": "^0.5.4",
"@element-plus/icons-vue": "^2.3.1",
"@floating-ui/dom": "^1.0.1",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@vueuse/core": "^8.7.5",
"@vueuse/core": "^9.1.0",
"async-validator": "^4.2.5",
"dayjs": "^1.11.3",
"escape-html": "^1.0.3",
@ -2968,7 +2953,7 @@
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.1.2"
"normalize-wheel-es": "^1.2.0"
},
"peerDependencies": {
"vue": "^3.2.0"

View File

@ -20,7 +20,7 @@
"axios": "^0.27.2",
"css-color-function": "^1.3.3",
"echarts": "^5.3.3",
"element-plus": "^2.2.9",
"element-plus": "^2.4.4",
"highlight.js": "^11.6.0",
"nprogress": "^0.2.0",
"pinia": "^2.0.14",

View File

@ -35,5 +35,5 @@ export function getDayTaskList(params: any) {
//任务日程-详情
export function taskProgress(params: any) {
return request.get({ url: '/adminapi/task/taskProgress', params })
return request.get({ url: '/task/taskProgress', params })
}

View File

@ -1,6 +1,10 @@
import { createApp } from 'vue'
import App from './App.vue'
import install from './install'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import './permission'
import './styles/index.scss'
import 'virtual:svg-icons-register'
@ -12,6 +16,7 @@ window._AMapSecurityConfig = {
const app = createApp(App)
app.use(install)
app.use(ElementPlus)
app.provide('base_url', configs.baseUrl+configs.urlPrefix);
app.mount('#app')
app.config.warnHandler = () => null

View File

@ -1,46 +1,45 @@
<template>
<el-dialog v-model="dialogVisible" title="任务详情" width="30%">
<!-- <span>This is a message</span> -->
<el-card class="box-card">
<el-card class="box-card" v-loading="loading">
<template #header>
<div class="card-header">
<span class="tit">任务名称</span>
<span>干到公司倒闭</span>
<span>{{ taskDeatil?.detail?.title }}</span>
</div>
</template>
<div> <span class="tit">判定条件</span> 飞过的痕迹的咖啡馆很快就会大幅回升的科技孵化的身份可视对讲回复低功耗的付款就更好的付款计划大幅回升的开发</div>
<div style="margin-top: 1vh;" class="tit">任务进度
<el-progress :text-inside="true" color="#67C23A" :stroke-width="20" :percentage="70" />
<div style="margin-top: 1vh;display: flex;" class="tit">
<div v-if="taskDeatil?.detail?.task_type_value == 'town_task_type_5'"
style="display: flex; justify-content:space-between;width: 100%; ">
<div>
交易金额剩余池 {{ taskDeatil?.detail?.progress?.done }}
</div>
<div>
目标完成金额 {{ taskDeatil?.detail?.progress?.total }}
</div>
</div>
<div v-else>
任务进度 {{ taskDeatil?.detail?.progress?.done }} / {{ taskDeatil?.detail?.progress?.total }}
</div>
</div>
<div style="margin-top: 1vh;">
<div class="tit"> 完成详情 </div>
<div class='task-card' v-for="(item, index) in taskDeatil?.detail?.done_list">
大师傅似的
</div>
</div>
<!-- <div v-for="o in 4" :key="o" class="text item">{{ 'List item ' + o }}</div>
<template #footer>Footer content</template> -->
</el-card>
<div>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="dialogVisible = false">
<!-- 进行中的任务可以结算 -->
<el-button type="primary" @click="settlementFn" v-if="row?.task.status == 2">
结算
</el-button>
<!-- <el-button type="primary" @click="dialogVisible = false">
<el-button type="primary" @click="dialogVisible = false" v-else>
确定
</el-button> -->
</el-button>
</span>
</template>
</el-dialog>
@ -48,21 +47,49 @@
<script lang="ts" setup>
import { ref } from 'vue'
import {taskProgress} from "@/api/task"
import { taskProgress } from "@/api/task"
const dialogVisible = ref(false)
const loading = ref(true)
const row = ref("")
const taskDeatil = ref('')
const openDeatl = (item: any) => {
console.log(item)
loading.value = true
const openDeatl = (row) => {
console.log(row)
row.value = item
dialogVisible.value = true
taskProgress({
task_id:4
}).then(res=>{
task_id: item.task.id
}).then(res => {
taskDeatil.value = res
loading.value = false
console.log(res)
})
}
//
const settlementFn = () => {
dialogVisible.value = false
console.log(row.value.task.id)
}
defineExpose({
@ -98,5 +125,16 @@ defineExpose({
.tit {
font-weight: bold;
}
.task-card {
width: 100%;
height: 100px;
background-color: red;
margin-bottom: 10px;
border-radius: 10px;
}
</style>

View File

@ -42,8 +42,11 @@
</div>-->
<el-calendar v-model="value" @click="dateClick">
<template slot="dateCell" slot-scope="{ date, data }">
查看任务
<template #date-cell="{ data }">
{{ data.day.split('-').slice(1).join('-') }}
<p style="color: #4A5DFF; text-align: center;margin-top: 4vh; ">
查看任务
</p>
</template>
</el-calendar>
@ -52,10 +55,9 @@
<!-- <EditTowPopup ref="editTowRef" :task="task" :type="popupType" :company_id="company_id" @success="loadTask"
@close="showEditTow = false" /> -->
<popTaskList ref="popTaskTable" @openDeatl="openTask"
@close="showEditTow = false" />
<popTaskList ref="popTaskTable" @openDeatl="openTask" @close="showEditTow = false" />
<popTaskDetail ref="popDeatil" />
<popTaskDetail ref="popDeatil" />
</div>
</template>
@ -78,9 +80,9 @@ const dateClick = () => {
}
//
const popDeatil=ref('')
const popDeatil = ref('')
const openTask=(row)=>{
const openTask = (row) => {
popDeatil.value.openDeatl(row)
}

View File

@ -13,7 +13,7 @@
</el-form-item>
<el-form-item label="任务类型" prop="type">
<el-select v-model="formData.type" clearable placeholder="请输入任务类型" @change="changeTaskType" style="width:100%">
<el-option v-for="(item, index) in roleTypeList" :key="item" :value="index" :label="item" />
<el-option v-for="(item, index) in roleTypeList" :key="item" :value="item.id" :label="item.name" />
</el-select>
</el-form-item>
<el-form-item label="任务下发时间" prop="cron_time">
@ -192,11 +192,13 @@ if (route.query.company_type == 18) {
}
const roleTypeList = ref('')
//
// apiTaskTypeList({ type_value: type_value}).then((res) => {
// datalist.value = res.lists;
// });
//
apiTaskTypeList({ type_value: type_value}).then((res) => {
datalist.value = res.lists;
roleTypeList.value=res.lists
});
//
const formRules = reactive<any>({
@ -309,19 +311,21 @@ const changeTaskTypeFn = () => {
}
})
setFormData(taskTempList[i])
formData.type = String(formData.type)
formData.type = Number(formData.type)
console.log(formData)
// console.log(taskTempId.value)
}
//
const roleTypeList = reactive({})
apiCreatetaskTypeInfo().then(res => {
// console.log(res)
for (let key in res) {
roleTypeList[key] = res[key]
}
})
// apiCreatetaskTypeInfo(
// ).then(res => {
// // console.log(res)
// for (let key in res) {
// roleTypeList[key] = res[key]
// }
// })
//

6642
yarn.lock

File diff suppressed because it is too large Load Diff