Merge branch 'develop' of http://192.168.18.88:8077/sznyb/daimp-front into develop
This commit is contained in:
commit
b0fb71e316
@ -7,7 +7,7 @@ export {}
|
||||
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
CustCard: typeof import('./src/components/CustCard.vue')['default']
|
||||
CustomCard: typeof import('./src/components/CustomCard.vue')['default']
|
||||
GridSelect: typeof import('./src/components/GridSelect.vue')['default']
|
||||
LandType: typeof import('./src/components/LandType.vue')['default']
|
||||
Pagina: typeof import('./src/components/Pagina.vue')['default']
|
||||
|
@ -13,7 +13,6 @@ export function saveLand(params = {}) {
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function exportLands(params = {}) {
|
||||
return request('/land-resource/landManage/export', {
|
||||
method: 'GET',
|
||||
|
@ -12,7 +12,7 @@ import { ref, watch } from 'vue';
|
||||
const props = defineProps({
|
||||
// 父组件传过来的值
|
||||
value: {
|
||||
type: String || null,
|
||||
type: String || Number || null,
|
||||
default: null,
|
||||
},
|
||||
placeholder: {
|
||||
@ -28,7 +28,7 @@ const val = ref(null);
|
||||
watch(
|
||||
() => props.value,
|
||||
() => {
|
||||
val.value = props.value;
|
||||
val.value = props.value || props.value == 0 ? String(props.value) : null;
|
||||
},
|
||||
{
|
||||
deep: true,
|
||||
|
@ -12,7 +12,7 @@ import { ref, watch } from 'vue';
|
||||
const props = defineProps({
|
||||
// 父组件传过来的值
|
||||
value: {
|
||||
type: String || null,
|
||||
type: String || Number || null,
|
||||
default: null,
|
||||
},
|
||||
placeholder: {
|
||||
@ -28,7 +28,7 @@ const val = ref(null);
|
||||
watch(
|
||||
() => props.value,
|
||||
() => {
|
||||
val.value = props.value;
|
||||
val.value = props.value || props.value == 0 ? String(props.value) : null;
|
||||
},
|
||||
{
|
||||
deep: true,
|
@ -12,7 +12,7 @@ import { ref, watch } from 'vue';
|
||||
const props = defineProps({
|
||||
// 父组件传过来的值
|
||||
value: {
|
||||
type: String || null,
|
||||
type: String || Number || null,
|
||||
default: null,
|
||||
},
|
||||
placeholder: {
|
||||
@ -28,7 +28,7 @@ const val = ref(null);
|
||||
watch(
|
||||
() => props.value,
|
||||
() => {
|
||||
val.value = props.value;
|
||||
val.value = props.value || props.value == 0 ? String(props.value) : null;
|
||||
},
|
||||
{
|
||||
deep: true,
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<CustCard>
|
||||
<CustomCard>
|
||||
<el-form ref="searchRef" :model="searchCondition">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
@ -117,13 +117,13 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</CustCard>
|
||||
</CustomCard>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
import Pagina from '@/components/pagina.vue';
|
||||
import CustCard from '@/components/CustCard.vue';
|
||||
import CustomCard from '@/components/CustomCard.vue';
|
||||
import { getAnnualList, saveAnnual, editAnnual, examineAnnual, delAnnual, exportAnnua } from '@/apis/land.js';
|
||||
import { useApp } from '@/hooks';
|
||||
import { isEmpty, imageToBase64, getAssetsFile, downloadFile } from '@/utils';
|
||||
|
@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<el-dialog v-model="_visible" title="案件登记处理" append-to="#app" @close="handleClose">
|
||||
<h3>案件信息></h3>
|
||||
<section class="case_info">
|
||||
<div v-for="item in info" :key="`${item.key}_box`" :style="{ '--w': item.line ? '100%' : 'calc(50% - 12px)' }">
|
||||
<div>{{ item.label }} : </div>
|
||||
<div class="text">{{ item.value }}</div>
|
||||
</div>
|
||||
</section>
|
||||
<h3>案件处理></h3>
|
||||
<el-form></el-form>
|
||||
<h3>案件结果></h3>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, watch } from 'vue';
|
||||
|
||||
const emit = defineEmits(['update:visible']);
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
});
|
||||
watch(
|
||||
() => props.visible,
|
||||
(val) => {
|
||||
_visible.value = val;
|
||||
}
|
||||
);
|
||||
/* --------------- data --------------- */
|
||||
// #region
|
||||
|
||||
const _visible = ref(false);
|
||||
const info = reactive([
|
||||
{
|
||||
label: '案件名称',
|
||||
key: 'caseName',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '案件编号',
|
||||
key: 'caseCode',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '关联单位',
|
||||
key: 'unit',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '关联地块',
|
||||
key: 'land',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '法定代表人',
|
||||
key: 'owner',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '联系电话',
|
||||
key: 'phone',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '统一社会信用代码',
|
||||
key: 'num',
|
||||
value: '/',
|
||||
},
|
||||
{
|
||||
label: '违法情况',
|
||||
key: 'illegal',
|
||||
value: '/',
|
||||
line: true,
|
||||
},
|
||||
]);
|
||||
|
||||
// #endregion
|
||||
|
||||
/* --------------- methods --------------- */
|
||||
// #region
|
||||
|
||||
function handleClose() {
|
||||
emit('update:visible', false);
|
||||
}
|
||||
|
||||
// #endregion
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-dialog {
|
||||
h3 {
|
||||
color: #000;
|
||||
}
|
||||
.case_info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
> div {
|
||||
width: var(--w);
|
||||
display: flex;
|
||||
padding: 10px 0;
|
||||
.text {
|
||||
flex: 1;
|
||||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,18 +1,206 @@
|
||||
<template>
|
||||
<section>违法处理</section>
|
||||
<CustomCard>
|
||||
<avue-crud
|
||||
v-model:page="page"
|
||||
v-model:search="searchData"
|
||||
:option="option"
|
||||
:data="data"
|
||||
:table-loading="_loading"
|
||||
@current-change="handlePageChange"
|
||||
@size-change="handleSizeChange"
|
||||
@search-change="handleSearch"
|
||||
@row-save="handleRowSave"
|
||||
>
|
||||
<template #menu="{ row }">
|
||||
<el-button type="primary" @click="handleInfo(row)">登记处理</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
</CustomCard>
|
||||
<Register v-model:visible="caseInfo.visible" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { CRUD_OPTIONS } from '@/config';
|
||||
import CustomCard from '@/components/CustomCard.vue';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import Register from './common/Register.vue';
|
||||
|
||||
const { VITE_APP_BASE_API } = import.meta.env;
|
||||
const UserStore = useUserStore();
|
||||
|
||||
/* --------------- data --------------- */
|
||||
// #region
|
||||
|
||||
const searchData = ref({
|
||||
code: '',
|
||||
process: '',
|
||||
});
|
||||
const page = ref({
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: 3,
|
||||
});
|
||||
const _loading = ref(false);
|
||||
const data = ref([
|
||||
{
|
||||
id: '1',
|
||||
code: '111111111',
|
||||
name: '张三',
|
||||
unit: '123333333333333333333333333333',
|
||||
owner: '张三',
|
||||
process: '北京',
|
||||
date: '2020-02-02',
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
code: '222222222',
|
||||
name: '张三',
|
||||
unit: '123333333333333333333333333333',
|
||||
owner: '张三',
|
||||
process: '北京',
|
||||
date: '2020-02-02',
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
code: '333333333333',
|
||||
name: '张三',
|
||||
unit: '123333333333333333333333333333',
|
||||
owner: '张三',
|
||||
process: '北京',
|
||||
date: '2020-02-02',
|
||||
},
|
||||
]);
|
||||
const option = ref({
|
||||
...CRUD_OPTIONS,
|
||||
refreshBtn: false,
|
||||
column: [
|
||||
{
|
||||
label: '案件编号',
|
||||
prop: 'code',
|
||||
search: true,
|
||||
},
|
||||
{
|
||||
label: '案件名称',
|
||||
prop: 'name',
|
||||
},
|
||||
{
|
||||
label: '关联单位',
|
||||
prop: 'unit',
|
||||
},
|
||||
{
|
||||
label: '关联土地·',
|
||||
prop: 'land',
|
||||
type: 'select',
|
||||
addDisplay: true,
|
||||
hide: true,
|
||||
dicUrl: `${VITE_APP_BASE_API}/land-resource/landManage/page`,
|
||||
dicQuery: {
|
||||
current: 1,
|
||||
size: 9999,
|
||||
},
|
||||
props: {
|
||||
value: 'id',
|
||||
label: 'landName',
|
||||
},
|
||||
dicMethod: 'get',
|
||||
dicHeaders: {
|
||||
authorization: UserStore.token,
|
||||
},
|
||||
dicFormatter: (res) => res?.data?.records ?? [],
|
||||
},
|
||||
{
|
||||
label: '联系电话',
|
||||
prop: 'phone',
|
||||
viewDisplay: true,
|
||||
// addDisplay: true,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: '法定代表人',
|
||||
prop: 'onwer',
|
||||
addDisplay: true,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: '统一社会信用代码',
|
||||
prop: 'code',
|
||||
addDisplay: true,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: '违法情况',
|
||||
prop: 'illegal',
|
||||
type: 'textarea',
|
||||
addDisplay: true,
|
||||
hide: true,
|
||||
width: '100%',
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: '负责人',
|
||||
prop: 'owner',
|
||||
display: false,
|
||||
addDisplay: true,
|
||||
},
|
||||
{
|
||||
label: '案件进度',
|
||||
prop: 'process',
|
||||
display: false,
|
||||
search: true,
|
||||
addDisplay: true,
|
||||
},
|
||||
{
|
||||
label: '案件结果',
|
||||
prop: 'result',
|
||||
display: false,
|
||||
addDisplay: true,
|
||||
},
|
||||
{
|
||||
label: '处理时间',
|
||||
prop: 'date',
|
||||
display: false,
|
||||
addDisplay: false,
|
||||
editDisplay: true,
|
||||
},
|
||||
],
|
||||
});
|
||||
const caseInfo = ref({
|
||||
visible: false,
|
||||
});
|
||||
// #endregion
|
||||
|
||||
/* --------------- methods --------------- */
|
||||
// #region
|
||||
|
||||
// #region
|
||||
function handlePageChange(val) {
|
||||
console.log('page', val);
|
||||
page.value.currentPage = val;
|
||||
}
|
||||
function handleSizeChange(val) {
|
||||
page.value.pageSize = val;
|
||||
console.log('size', val, page.value);
|
||||
}
|
||||
function handleInfo(row) {
|
||||
console.log('row', row);
|
||||
caseInfo.value.visible = true;
|
||||
}
|
||||
function handleSearch(form, done) {
|
||||
console.log('search', form);
|
||||
let t = setTimeout(() => {
|
||||
clearTimeout(t);
|
||||
done();
|
||||
}, 1000);
|
||||
}
|
||||
function handleRowSave(val, done, loading) {
|
||||
console.log('val', val);
|
||||
console.log('done', done);
|
||||
console.log('loading', loading);
|
||||
loading();
|
||||
let t = setTimeout(() => {
|
||||
clearTimeout(t);
|
||||
done();
|
||||
}, 1000);
|
||||
}
|
||||
// #endregion
|
||||
</script>
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<el-drawer v-model="_visible" title="土地信息" :size="800" @close="handleClose">
|
||||
<el-card>
|
||||
<div class="title_">基础信息</div>
|
||||
<el-form ref="baseForm" :model="baseInfo" class="base_form" label-width="120px" :rules="rules">
|
||||
<el-form ref="baseForm" :model="baseInfo" :disabled="props.rowData.isDetails" class="base_form" label-width="120px" :rules="rules">
|
||||
<el-form-item label="土地名称" prop="landName">
|
||||
<el-input v-model="baseInfo.landName" placeholder="请输入名称"></el-input>
|
||||
</el-form-item>
|
||||
@ -26,7 +26,7 @@
|
||||
<el-input v-model="baseInfo.villageCode" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否土地流转" prop="isTransfer">
|
||||
<LandIsTranfer v-model:value="baseInfo.isTransfer" />
|
||||
<LandIsTransfer v-model:value="baseInfo.isTransfer" />
|
||||
</el-form-item>
|
||||
<el-form-item label="面积" prop="area">
|
||||
<el-input v-model="baseInfo.area" placeholder="请输入面积"></el-input>
|
||||
@ -42,7 +42,7 @@
|
||||
<br />
|
||||
<el-card>
|
||||
<div class="title_">土地产权信息</div>
|
||||
<el-form ref="propertyForm" :model="propertyInfo" class="property_form" label-width="120px">
|
||||
<el-form ref="propertyForm" :model="propertyInfo" :disabled="props.rowData.isDetails" class="property_form" label-width="120px">
|
||||
<el-form-item label="产权人姓名" prop="propertyName">
|
||||
<el-input v-model="propertyInfo.propertyName" placeholder="请输入联系人"></el-input>
|
||||
</el-form-item>
|
||||
@ -64,8 +64,8 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<section class="btns">
|
||||
<el-button type="primary" @click="handleSubmit">保存并提交审核</el-button>
|
||||
<el-button type="warning" @click="handleSubmit">保存草稿</el-button>
|
||||
<el-button type="primary" :disabled="props.rowData.isDetails" @click="handleSubmit">保存并提交审核</el-button>
|
||||
<!-- <el-button type="warning" :disabled="props.rowData.info" @click="handleSubmit">保存草稿</el-button> -->
|
||||
<el-button @click="handleClose">取消</el-button>
|
||||
</section>
|
||||
</el-drawer>
|
||||
@ -75,8 +75,8 @@
|
||||
import { reactive, ref, watch } from 'vue';
|
||||
import LandClassificationType from '@/components/LandClassificationType.vue';
|
||||
import CustomSelect from '@/components/CustomSelect.vue';
|
||||
import LandIsTranfer from '@/components/LandIsTranfer.vue';
|
||||
import { saveLand, exportLands } from '@/apis/land';
|
||||
import LandIsTransfer from '@/components/LandIsTransfer.vue';
|
||||
import { saveLand } from '@/apis/land';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { CommonUpload } from '@/apis';
|
||||
|
||||
@ -85,18 +85,27 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
landType: {
|
||||
type: String,
|
||||
default: '0',
|
||||
},
|
||||
rowData: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
const emit = defineEmits(['close']);
|
||||
/* --------------- data --------------- */
|
||||
// #region
|
||||
|
||||
const _visible = ref(false);
|
||||
const editId = ref(null);
|
||||
const baseInfo = reactive({
|
||||
landName: '',
|
||||
gridId: '',
|
||||
landClassificationType: '',
|
||||
villageCode: '',
|
||||
isTransfer: '',
|
||||
isTransfer: '1',
|
||||
area: '',
|
||||
owner: '',
|
||||
soilType: '',
|
||||
@ -111,6 +120,26 @@ watch(
|
||||
() => props.visible,
|
||||
() => {
|
||||
_visible.value = props.visible;
|
||||
if (!props.rowData.id) {
|
||||
editId.value = props.rowData.id;
|
||||
} else {
|
||||
for (let key in baseInfo) {
|
||||
baseInfo[key] = props.rowData[key];
|
||||
}
|
||||
baseInfo.isTransfer = props.rowData.landTransfer || '0';
|
||||
for (let key in propertyInfo) {
|
||||
propertyInfo[key] = props.rowData[key];
|
||||
}
|
||||
if (propertyInfo.propertyCertificateUrl) {
|
||||
propertyInfo.propertyCertificateUrl = props.rowData.propertyCertificateUrl.map((item, i) => {
|
||||
return {
|
||||
url: item.url,
|
||||
id: `id_${i}_${Date.now()}`,
|
||||
name: item.name || `name_${i}_${Date.now()}`,
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
watch(
|
||||
@ -155,10 +184,12 @@ async function handleSubmit() {
|
||||
...baseInfo,
|
||||
...propertyInfo,
|
||||
isDraftsSave: 0,
|
||||
landType: props.landType,
|
||||
};
|
||||
let ids = '';
|
||||
propertyInfo.propertyCertificateUrl.map((item) => (ids += item.id));
|
||||
data.propertyCertificateUrl = ids;
|
||||
let ids = [];
|
||||
propertyInfo.propertyCertificateUrl.map((item) => ids.push(item.url));
|
||||
data.propertyCertificateUrl = ids.join();
|
||||
editId.value && (data.id = editId.value);
|
||||
const res = await saveLand(data);
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('保存成功');
|
||||
@ -173,6 +204,13 @@ function handleClose() {
|
||||
function resFrom() {
|
||||
baseForm.value.resetFields();
|
||||
propertyForm.value.resetFields();
|
||||
for (let key in baseInfo) {
|
||||
baseInfo[key] = '';
|
||||
}
|
||||
for (let key in propertyInfo) {
|
||||
propertyInfo[key] = '';
|
||||
}
|
||||
propertyInfo.propertyCertificateUrl = [];
|
||||
}
|
||||
|
||||
// #endregion
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<CustCard>
|
||||
<el-radio-group v-model="searchCondition.draftsSaveType" class="lands_types" style="margin-bottom: 30px" @change="getList()">
|
||||
<CustomCard>
|
||||
<el-radio-group v-model="searchCondition.landType" class="lands_types" style="margin-bottom: 30px" @change="getList()">
|
||||
<el-radio-button v-for="item in landsType" :key="'landsType_' + item.value" :value="item.value">
|
||||
{{ item.label }}
|
||||
</el-radio-button>
|
||||
@ -29,7 +29,7 @@
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="options_btns">
|
||||
<el-button v-for="(item, i) in btns" :key="'btns_' + i" type="primary" :disabled="item.needKey && item.disabled" @click="item.method">
|
||||
<el-button v-for="(item, i) in btns" :key="'btns_' + i" type="primary" @click="item.method">
|
||||
{{ item.label }}
|
||||
</el-button>
|
||||
</div>
|
||||
@ -53,19 +53,25 @@
|
||||
<el-table-column label="是否上传附件" prop="isUpload" width="110">
|
||||
<template #default="{ row }">{{ !row.isUpload ? '是' : '否' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="200" show-overflow-tooltip />
|
||||
<el-table-column fixed="right" label="操作" width="200" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link @click="handleEdit(row)">编辑</el-button>
|
||||
<el-button type="info" link @click="handleEdit(row, true)">详情</el-button>
|
||||
<el-button type="danger" link @click="handleDelete(row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<br />
|
||||
<Pagina :page-data="pageData" @page-change="(v) => handlePaginaChange(v, true)" @size-hange="(v) => handlePaginaChange(v)" />
|
||||
</CustCard>
|
||||
<CreateLand :visible="addFlag" @close="addFlag = false" />
|
||||
</CustomCard>
|
||||
<CreateLand :visible="addFlag" :row-data="rowData" :land-type="searchCondition.landType" @close="addFlag = false" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
import Pagina from '@/components/pagina.vue';
|
||||
import CustCard from '@/components/CustCard.vue';
|
||||
import { getLandsList } from '@/apis/land.js';
|
||||
import CustomCard from '@/components/CustomCard.vue';
|
||||
import { getLandsList, exportLands } from '@/apis/land.js';
|
||||
import CreateLand from './common/CreateLand.vue';
|
||||
|
||||
onMounted(() => {
|
||||
@ -90,7 +96,7 @@ const landsType = ref([
|
||||
},
|
||||
]);
|
||||
const searchCondition = reactive({
|
||||
draftsSaveType: '0',
|
||||
landType: '0',
|
||||
landName: '',
|
||||
gridName: '',
|
||||
owner: '',
|
||||
@ -109,6 +115,7 @@ const btns = reactive([
|
||||
label: '新增土地',
|
||||
method: function () {
|
||||
console.log('add');
|
||||
rowData.value = {};
|
||||
addFlag.value = true;
|
||||
},
|
||||
},
|
||||
@ -121,21 +128,16 @@ const btns = reactive([
|
||||
// },
|
||||
{
|
||||
label: '导入',
|
||||
needKey: true,
|
||||
disabled: true,
|
||||
method: function () {
|
||||
console.log('import');
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '导出',
|
||||
needKey: true,
|
||||
disabled: true,
|
||||
method: function () {
|
||||
console.log('export');
|
||||
},
|
||||
method: handleExport,
|
||||
},
|
||||
]);
|
||||
const rowData = ref({});
|
||||
|
||||
// #endregion
|
||||
|
||||
@ -177,6 +179,29 @@ function handlePaginaChange(v, t = false) {
|
||||
}
|
||||
getList();
|
||||
}
|
||||
const attrNames = ref(['农用地', '住宅用地', '园林']);
|
||||
async function handleExport() {
|
||||
let res = await exportLands({
|
||||
landType: searchCondition.landType,
|
||||
});
|
||||
if (res) {
|
||||
let a = document.createElement('a');
|
||||
a.download = attrNames.value[Number(searchCondition.landType)] + '.xlsx';
|
||||
let blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
let link = window.URL.createObjectURL(blob);
|
||||
a.href = link;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
document.body.removeChild(a);
|
||||
window.URL.revokeObjectURL(link);
|
||||
}
|
||||
}
|
||||
function handleEdit(row, info = true) {
|
||||
rowData.value = row;
|
||||
rowData.value.isDetails = info;
|
||||
addFlag.value = true;
|
||||
console.log('rowd', rowData.value);
|
||||
}
|
||||
// #endregion
|
||||
</script>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!-- eslint-disable no-const-assign -->
|
||||
<!-- eslint-disCustomCardnst-assign -->
|
||||
<template>
|
||||
<CustCard>
|
||||
<CustomCard>
|
||||
<el-form ref="searchRef" :model="searchCondition">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
@ -220,13 +220,12 @@
|
||||
</el-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</CustCard>
|
||||
</CustomCard>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
import Pagina from '@/components/pagina.vue';
|
||||
import CustCard from '@/components/CustCard.vue';
|
||||
import {
|
||||
getPlanList,
|
||||
savePlan,
|
||||
@ -238,6 +237,7 @@ import {
|
||||
editPlantingStage,
|
||||
delPlantingStage,
|
||||
} from '@/apis/land.js';
|
||||
import CustomCard from '@/components/CustomCard.vue';
|
||||
import { useApp } from '@/hooks';
|
||||
import CustomSelect from '@/components/CustomSelect.vue';
|
||||
import { isEmpty, imageToBase64, getAssetsFile, downloadFile } from '@/utils';
|
||||
|
@ -34,17 +34,6 @@
|
||||
<el-icon v-else class="custom-form__uploader__icon"><Plus /></el-icon>
|
||||
</el-upload>
|
||||
</template>
|
||||
<template #id="{ row }">
|
||||
<!-- <span @click="handleShowQrcode(row.id)">{{ row.id }}</span> -->
|
||||
<el-popover placement="top" trigger="click" :width="330">
|
||||
<template #reference>
|
||||
<span>{{ row.id }}</span>
|
||||
</template>
|
||||
<template #default>
|
||||
<img :src="row.orCodeUrl" alt="" />
|
||||
</template>
|
||||
</el-popover>
|
||||
</template>
|
||||
<template #customInfo-form="{ column }">
|
||||
<custom-info :row="state.currentRow" />
|
||||
</template>
|
||||
@ -65,9 +54,6 @@
|
||||
|
||||
<custom-quality-add ref="qualityAddRef" :row="state.currentRow" />
|
||||
</div>
|
||||
<!-- <el-dialog v-model="qrInfo.show" title="扫码溯源" width="500" :before-close="() => (qrInfo.show = false)">
|
||||
<QrCode :value="qrInfo.url" :size="300" />
|
||||
</el-dialog> -->
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive, ref } from 'vue';
|
||||
|
Loading…
x
Reference in New Issue
Block a user