|
@@ -12,7 +12,7 @@
|
|
|
<el-button type="primary" @click="handleNewTemplate">空白模板</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
- <el-button type="primary" @click="handleReload">重新加载</el-button>
|
|
|
+ <el-button type="primary" @click="handleNewTemplate">重新加载</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="primary" @click="handleSaveTemporarily">暂存</el-button>
|
|
@@ -35,18 +35,11 @@
|
|
|
</el-col>
|
|
|
<!-- 联系电话 -->
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="联系电话:" prop="table_phone" label-width="auto">
|
|
|
+ <el-form-item label="联 系 电 话:" prop="table_phone" label-width="auto">
|
|
|
<el-input v-model="creator_phone" placeholder="请输入联系电话" style="width: 300px"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- 选择填报人 -->
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="选择填报人:" prop="table_name" label-width="auto">
|
|
|
- <el-select v-model="selectedReporter" placeholder="请选择填报人" style="width: 300px">
|
|
|
- <el-option v-for="reporter in reporters" :key="reporter.id" :label="reporter.name" :value="reporter.id" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
+
|
|
|
<!-- 截止时间 -->
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="截 止 时 间 :" prop="release_time">
|
|
@@ -56,13 +49,30 @@
|
|
|
</el-col>
|
|
|
<!-- 操作按钮 -->
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="表       名:" prop="table_name" label-width="auto">
|
|
|
+ <el-form-item label="表           名:" prop="table_name" label-width="auto">
|
|
|
<el-input v-model="table_name" placeholder="请输入表名" style="width: 300px"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
- <!-- <el-button type="primary" @click="handleReport()"> 智能识别 </el-button>-->
|
|
|
- <!-- </el-col>-->
|
|
|
+ <!-- 选择填报人 -->
|
|
|
+ <el-col :span="16">
|
|
|
+ <el-form-item label="选择填报人:" prop="selectedName" label-width="auto" style="font-weight: bold;">
|
|
|
+ <div class="flex gap-2">
|
|
|
+ <el-tag
|
|
|
+ v-for="tag in selectedReporter"
|
|
|
+ :key="tag"
|
|
|
+ closable
|
|
|
+ :disable-transitions="false"
|
|
|
+ @close="handleClose(tag)"
|
|
|
+ >
|
|
|
+ {{ tag.label }}
|
|
|
+ </el-tag>
|
|
|
+ </div>
|
|
|
+ <el-button @click="showSelect" style="margin-left: 10px">点击选择</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!-- <el-col :span="8">-->
|
|
|
+ <!-- <el-button type="primary" @click="handleReport()"> 智能识别 </el-button>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -70,6 +80,11 @@
|
|
|
<hot-table v-if="showTable" ref="wrapper" :data="hotData" :settings="hotSettings" />
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <informantSelect
|
|
|
+ v-model="isShowSelect"
|
|
|
+ :tree-data="treeData"
|
|
|
+ :default-check-data="selectContactSelectData"
|
|
|
+ @confirm="handleContactSelectData" />
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
@@ -82,6 +97,8 @@ import Handsontable from 'handsontable';
|
|
|
import 'handsontable/languages';
|
|
|
import 'handsontable/dist/handsontable.full.css';
|
|
|
import { registerAllModules } from 'handsontable/registry';
|
|
|
+import informantSelect from './informantSelect.vue'
|
|
|
+import { getPhoneList } from '@/api/informationissue/informationissue';
|
|
|
registerAllModules();
|
|
|
|
|
|
const fileList = ref([]);
|
|
@@ -98,6 +115,7 @@ const editableHeaders = ref([]);
|
|
|
const creator_name = ref('');
|
|
|
const creator_phone = ref('');
|
|
|
const selectedReporter = ref(null);
|
|
|
+const selectedName =ref();
|
|
|
const reporters = ref([]); // 确保这个数组被正确初始化
|
|
|
const selectedTime = ref(null);
|
|
|
const table_name = ref('');
|
|
@@ -106,9 +124,13 @@ const status = ref(0); // 假设这是一个选择器或输入框
|
|
|
const issued_status = ref(0); // 假设这是一个选择器或输入框
|
|
|
const period_type = ref(''); // 假设这是一个输入框或选择器
|
|
|
const creator_id = ref(null); // 这通常是用户ID,可能需要从登录信息中获取
|
|
|
+const isShowSelect = ref(false);
|
|
|
+let treeData = ref([]);
|
|
|
|
|
|
// 初始化表格数据
|
|
|
-onMounted(() => {});
|
|
|
+onMounted(() => {
|
|
|
+ fetchTreeData();
|
|
|
+});
|
|
|
|
|
|
function saveEdit(rowIndex, header, value) {
|
|
|
field_names.value[rowIndex][header] = value;
|
|
@@ -141,7 +163,7 @@ const handleImportExcel = () => {
|
|
|
};
|
|
|
|
|
|
const handleReload = () => {
|
|
|
- field_names.value = [];
|
|
|
+ hotData.value = [];
|
|
|
alert('表格已清空');
|
|
|
};
|
|
|
|
|
@@ -157,8 +179,8 @@ const handleSave = async () => {
|
|
|
const data = {
|
|
|
table_name: table_name.value,
|
|
|
data_table_name: data_table_name.value,
|
|
|
- start_time: selectedTime.value ? selectedTime.value.startOfDay.format() : '',
|
|
|
- end_time: selectedTime.value ? selectedTime.value.endOfDay.format() : '',
|
|
|
+ start_time: selectedTime.value,
|
|
|
+ end_time: selectedTime.value,
|
|
|
status: status.value,
|
|
|
issued_status: issued_status.value,
|
|
|
period_type: period_type.value,
|
|
@@ -298,6 +320,33 @@ const handleFileUpload = ({ file }) => {
|
|
|
fileList.value = [];
|
|
|
return { success: true, file }; // 告诉 el-upload 上传成功(尽管实际上没有发送到服务器)
|
|
|
};
|
|
|
+
|
|
|
+const showSelect = () => {
|
|
|
+ isShowSelect.value = true;
|
|
|
+}
|
|
|
+
|
|
|
+const fetchTreeData = async () => {
|
|
|
+ try {
|
|
|
+ const response = await getPhoneList({});
|
|
|
+ if (response && response.data) {
|
|
|
+ treeData.value = response.data;
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('Failed to fetch information:', error);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const selectContactSelectData = ref([]);
|
|
|
+const handleContactSelectData = (data) => {
|
|
|
+ console.log('handleContactSelectData:', data);
|
|
|
+ selectContactSelectData.value = data;
|
|
|
+ // data.user_ids = data;
|
|
|
+ selectedReporter.value = data;
|
|
|
+};
|
|
|
+
|
|
|
+const handleClose = (tag: string) => {
|
|
|
+ selectedReporter.value.splice(selectedReporter.value.indexOf(tag), 1)
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
@@ -347,4 +396,7 @@ const handleFileUpload = ({ file }) => {
|
|
|
display: inline-block;
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
+.flex {
|
|
|
+ flex-wrap: wrap;
|
|
|
+}
|
|
|
</style>
|