更新
This commit is contained in:
parent
983e6c7710
commit
930cb649dc
8
package-lock.json
generated
8
package-lock.json
generated
@ -34,7 +34,7 @@
|
||||
"@types/node": "^16.11.41",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@vitejs/plugin-legacy": "^2.3.1",
|
||||
"@vitejs/plugin-vue": "^3.0.0",
|
||||
"@vitejs/plugin-vue": "^3.2.0",
|
||||
"@vitejs/plugin-vue-jsx": "^2.0.0",
|
||||
"@vue/eslint-config-prettier": "^7.0.0",
|
||||
"@vue/eslint-config-typescript": "^11.0.0",
|
||||
@ -1342,9 +1342,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.1.tgz",
|
||||
"integrity": "sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
|
||||
"integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^14.18.0 || >=16.0.0"
|
||||
|
@ -37,7 +37,7 @@
|
||||
"@types/node": "^16.11.41",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@vitejs/plugin-legacy": "^2.3.1",
|
||||
"@vitejs/plugin-vue": "^3.0.0",
|
||||
"@vitejs/plugin-vue": "^3.2.0",
|
||||
"@vitejs/plugin-vue-jsx": "^2.0.0",
|
||||
"@vue/eslint-config-prettier": "^7.0.0",
|
||||
"@vue/eslint-config-typescript": "^11.0.0",
|
||||
|
@ -2,15 +2,14 @@
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="650px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
|
||||
@change="area_change">
|
||||
<el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
|
||||
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
|
||||
<el-form-item label="部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门">
|
||||
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
|
@ -19,12 +19,12 @@
|
||||
</el-form-item> </el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan"
|
||||
<el-form-item label="项目名称" prop="project_id" @click="tanchuan"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编码" prop="buy_bidding_document_id"
|
||||
<el-form-item label="项目编码" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
|
||||
</el-form-item></el-col>
|
||||
@ -369,6 +369,7 @@ const customEvent1 = (e: any) => {
|
||||
};
|
||||
const customEvent2 = (e: any) => {
|
||||
project_id.value = e.id;
|
||||
formData.project_id = e.id
|
||||
project_name.value = e.name;
|
||||
project_code.value = e.project_code
|
||||
bidding_code.value = ''
|
||||
@ -433,6 +434,7 @@ const formData = reactive({
|
||||
party_a_phone: '',
|
||||
party_a_mobile: '',
|
||||
party_a_email: '',
|
||||
project_id: "",
|
||||
party_b: '',
|
||||
party_b_contact_address: '',
|
||||
party_b_diretor: '',
|
||||
|
@ -2,15 +2,14 @@
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
|
||||
@change="area_change">
|
||||
<el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
|
||||
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
|
||||
<el-form-item label="部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门">
|
||||
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
|
@ -2,15 +2,14 @@
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="650px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
|
||||
@change="area_change">
|
||||
<el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
|
||||
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
|
||||
<el-form-item label="部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门">
|
||||
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
|
@ -1,17 +1,41 @@
|
||||
<template>
|
||||
<div class="tit">项目跟进</div>
|
||||
<div>
|
||||
<el-button v-perms="['project.project/add']" type="primary" @click="handleAdd" style="float: right;">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-table :data="tableData1" stripe style="width: 100%">
|
||||
<el-table-column label="主题" prop='theme' width="180" />
|
||||
<el-table-column label="日期" prop='follow_date' width="180" />
|
||||
<el-table-column label="方案内容" prop='solution_content' />
|
||||
<el-table-column label="类型" prop='follow_type_text' />
|
||||
<el-table-column label="执行人" prop='executor' />
|
||||
<el-table-column label="阶段" prop='follow_stage_text' />
|
||||
<el-table-column label="状态" prop='follow_status_text' />
|
||||
<el-table-column label="项目把握度" prop='project_assurance_text' />
|
||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||
<el-table-column label="客户名称" prop="custom_name" show-overflow-tooltip />
|
||||
<el-table-column label="执行人" prop="executor" show-overflow-tooltip />
|
||||
<el-table-column label="日期" prop="follow_date">
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.follow_date ? row.follow_date : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" prop="follow_type_text">
|
||||
</el-table-column>
|
||||
<el-table-column label="主题" prop="theme" show-overflow-tooltip />
|
||||
<el-table-column label="项目把握度" prop="project_assurance_text">
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" prop="follow_status_text">
|
||||
</el-table-column>
|
||||
<el-table-column label="阶段" prop="follow_stage_text">
|
||||
</el-table-column>
|
||||
<el-table-column label="下次回访日期" prop="next_follow_up_date">
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.next_follow_up_date ? row.next_follow_up_date :
|
||||
'' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<edit-popup v-if="showEdit" ref="editRef" @close="showEdit = false" :dict-data="dictData" @success="followUpLists"
|
||||
:project="formData" />
|
||||
</div>
|
||||
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager1.page_no" v-model:page-size="pager1.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total"
|
||||
@ -132,8 +156,6 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
@ -142,15 +164,21 @@ import { apiCustomerDemandLists } from '@/api/customer_demand'
|
||||
import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
|
||||
import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||
import { apiCompetitorLists } from '@/api/competitor'
|
||||
|
||||
|
||||
import EditPopup from '@/views/project_follow_up/edit.vue'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
project_id: Number,
|
||||
formData: Object
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
const { dictData } = useDictData('project_assurance,follow_status,follow_type,follow_stage')
|
||||
const showEdit = ref(false)
|
||||
const editRef = ref(null)
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
const tableData1 = ref([])
|
||||
const tableData2 = ref([])
|
||||
const tableData3 = ref([])
|
||||
@ -208,12 +236,6 @@ const demandList = () => {
|
||||
})
|
||||
}
|
||||
|
||||
// const handleSizeChange1 = (val: number) => {
|
||||
// // pager1.page_size = val
|
||||
// // followUpLists()
|
||||
// }
|
||||
|
||||
|
||||
// 解决方案列表
|
||||
const solutionLists = () => {
|
||||
apiCustomerDemandSolutionLists(pager5).then((res) => {
|
||||
@ -237,24 +259,6 @@ const competitorLists = () => {
|
||||
})
|
||||
}
|
||||
|
||||
// const handleSizeChange2 = (val: number) => {
|
||||
// pager2.page_size = val
|
||||
// demandList()
|
||||
// }
|
||||
// const handleSizeChange3 = (val: number) => {
|
||||
// pager3.page_size = val
|
||||
// solutionLists()
|
||||
// }
|
||||
// const handleSizeChange4 = (val: number) => {
|
||||
// pager4.page_size = val
|
||||
// estimateLists()
|
||||
// }
|
||||
// const handleSizeChange5 = (val: number) => {
|
||||
// pager5.page_size = val
|
||||
// competitorLists()
|
||||
// }
|
||||
|
||||
|
||||
|
||||
followUpLists()
|
||||
demandList()
|
||||
|
@ -13,9 +13,11 @@ import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
|
||||
import { apireturnedLists } from '@/api/remittance'
|
||||
import { apireturnedrecordLists } from '@/api/recordsPayment'
|
||||
import { apirefundapplyLists } from '@/api/refund'
|
||||
import EditPopup from '@/views/project_follow_up/edit.vue'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
project_id: Number,
|
||||
components: EditPopup
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
|
@ -1,36 +0,0 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: subpackagdetailLists,
|
||||
tit: "竞争对手",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '工作类型', prop: 'work_type' },
|
||||
{ label: '工作内容', prop: 'work_content' },
|
||||
{ label: '项目特征', prop: 'project_features' },
|
||||
{ label: '单位', prop: 'unit' },
|
||||
{ label: '预算工作量', prop: 'num' },
|
||||
{ label: '单价', prop: 'price' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已分包量', prop: 'has_subcontract_num' },
|
||||
{ label: '剩余工作量', prop: 'residue_num' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
</script>
|
File diff suppressed because it is too large
Load Diff
@ -28,13 +28,13 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="name"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
</el-col> <el-col :span="8">
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编码" prop="project_code">
|
||||
<el-input v-model="formData.project_code" clearable disabled placeholder="系统自动生成" />
|
||||
</el-form-item>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<el-form-item label="项目名称" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-input v-model="project_name" readonly @click="showDialog = true" clearable
|
||||
placeholder="点击选择项目" />
|
||||
placeholder="点击选择项目" :disabled="project" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
@ -108,7 +108,6 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import projectTable from "@/components/project/index.vue"
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import feedback from '@/utils/feedback'
|
||||
import { apiProjectFollowUpAdd, apiProjectFollowUpEdit, apiProjectFollowUpDetail } from '@/api/project_follow_up'
|
||||
import type { PropType } from 'vue'
|
||||
|
||||
@ -120,14 +119,13 @@ const handleAvatarSuccess_four = (response: any) => {
|
||||
};
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
// <annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
// @delFile="delFileFn" />
|
||||
|
||||
defineProps({
|
||||
const props = defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
project: Object
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
@ -139,13 +137,8 @@ const custom_name = ref('')
|
||||
const formDataannex = reactive([])
|
||||
// dialog
|
||||
const showDialog = ref(false)
|
||||
const customEvent = (e: any) => {
|
||||
formData.project_id = e.id;
|
||||
project_name.value = e.name;
|
||||
project_code.value = e.project_code;
|
||||
custom_name.value = e.custom_name;
|
||||
showDialog.value = false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
@ -174,6 +167,18 @@ const formData = reactive({
|
||||
annex: []
|
||||
})
|
||||
|
||||
const customEvent = (e: any) => {
|
||||
formData.project_id = e.id;
|
||||
project_name.value = e.name;
|
||||
project_code.value = e.project_code;
|
||||
custom_name.value = e.custom_name;
|
||||
showDialog.value = false;
|
||||
};
|
||||
|
||||
|
||||
if (props.project) {
|
||||
customEvent(props.project)
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
|
@ -9,28 +9,32 @@
|
||||
<el-form-item label="跟进类型" prop="follow_type">
|
||||
<el-select v-model="queryParams.follow_type" class="w-[280px]" clearable placeholder="请选择跟进类型">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name" :value="item.value" />
|
||||
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="项目把握度" prop="project_assurance">
|
||||
<el-select v-model="queryParams.project_assurance" class="w-[280px]" clearable placeholder="请选择项目把握度">
|
||||
|
||||
<el-option v-for="(item, index) in dictData.project_assurance" :key="index" :label="item.name" :value="item.value" />
|
||||
<el-option v-for="(item, index) in dictData.project_assurance" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="跟进状态" prop="follow_status">
|
||||
<el-select v-model="queryParams.follow_status" class="w-[280px]" clearable placeholder="请选择跟进状态">
|
||||
|
||||
<el-option v-for="(item, index) in dictData.follow_status" :key="index" :label="item.name" :value="item.value" />
|
||||
<el-option v-for="(item, index) in dictData.follow_status" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="跟进阶段" prop="follow_stage">
|
||||
<el-select v-model="queryParams.follow_stage" class="w-[280px]" clearable placeholder="请输入跟进阶段">
|
||||
|
||||
<el-option v-for="(item, index) in dictData.follow_stage" :key="index" :label="item.name" :value="item.value" />
|
||||
<el-option v-for="(item, index) in dictData.follow_stage" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@ -75,7 +79,8 @@
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['project.project_follow_up/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
<el-button v-perms="['project.project_follow_up/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
@ -121,13 +126,14 @@
|
||||
'' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" prop="ceate_time" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="160" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['project.project_follow_up/edit']" type="primary" link @click="handleEdit(row)">
|
||||
<el-button v-perms="['project.project_follow_up/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['project.project_follow_up/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
<el-button v-perms="['project.project_follow_up/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
<el-button v-perms="['project.project_follow_up/detail']" link @click="handledetail(row)">
|
||||
|
@ -646,10 +646,10 @@
|
||||
"@babel/plugin-transform-typescript" "^7.18.8"
|
||||
"@vue/babel-plugin-jsx" "^1.1.1"
|
||||
|
||||
"@vitejs/plugin-vue@^3.0.0":
|
||||
"integrity" "sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A=="
|
||||
"resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.1.tgz"
|
||||
"version" "3.0.1"
|
||||
"@vitejs/plugin-vue@^3.2.0":
|
||||
"integrity" "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw=="
|
||||
"resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz"
|
||||
"version" "3.2.0"
|
||||
|
||||
"@volar/code-gen@0.38.9":
|
||||
"integrity" "sha512-n6LClucfA+37rQeskvh9vDoZV1VvCVNy++MAPKj2dT4FT+Fbmty/SDQqnsEBtdEe6E3OQctFvA/IcKsx3Mns0A=="
|
||||
|
Loading…
x
Reference in New Issue
Block a user