|
@@ -76,196 +76,34 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
-<!-- <el-row>
|
|
|
|
|
|
+
|
|
|
|
+ <el-row>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="施工地点" prop="location">
|
|
|
|
- <el-input v-model="formData.location" placeholder="请输入施工地点" />
|
|
|
|
|
|
+ <el-form-item :label="t('iotDevice.company')" prop="deptId">
|
|
|
|
+ <el-tree-select
|
|
|
|
+ :disabled="isDeptDisabled"
|
|
|
|
+ v-model="formData.deptId"
|
|
|
|
+ :data="deptList"
|
|
|
|
+ :props="defaultProps"
|
|
|
|
+ check-strictly
|
|
|
|
+ node-key="id"
|
|
|
|
+ filterable
|
|
|
|
+ placeholder="请选择所在部门"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="施工工艺" prop="technique">
|
|
|
|
- <el-input v-model="formData.technique" placeholder="请输入施工工艺" />
|
|
|
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
|
+ <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>-->
|
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
|
- <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" />
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
+ </el-row>
|
|
|
|
+
|
|
</el-form>
|
|
</el-form>
|
|
</ContentWrap>
|
|
</ContentWrap>
|
|
-<!-- <ContentWrap>
|
|
|
|
- <el-form>
|
|
|
|
- <el-button
|
|
|
|
- type="primary"
|
|
|
|
- plain
|
|
|
|
- @click="openForm('create')"
|
|
|
|
- v-hasPermi="['rq:iot-project-info:create']"
|
|
|
|
- >
|
|
|
|
- <Icon icon="ep:plus" class="mr-5px" />任务拆分
|
|
|
|
- </el-button>
|
|
|
|
- </el-form>
|
|
|
|
- <el-table v-loading="loading" :data="taskList" :stripe="true" :show-overflow-tooltip="true">
|
|
|
|
- <!– 添加序号列 –>
|
|
|
|
- <el-table-column
|
|
|
|
- type="index"
|
|
|
|
- label="序号"
|
|
|
|
- width="60"
|
|
|
|
- align="center"
|
|
|
|
- />
|
|
|
|
- <el-table-column label="井号" align="center" prop="wellName" />
|
|
|
|
- <el-table-column label="井型/井别" align="center" prop="wellType" />
|
|
|
|
- <el-table-column label="施工地点" align="center" prop="location" />
|
|
|
|
- <el-table-column label="施工工艺" align="center" prop="technique" />
|
|
|
|
- <el-table-column label="设计工作量" align="center" prop="workloadDesign" />
|
|
|
|
- <el-table-column label="所属队伍" align="center" prop="deptList" />
|
|
|
|
- <el-table-column label="操作" align="center" min-width="120px">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <div style="display: flex; justify-content: center; align-items: center; width: 100%">
|
|
|
|
- <!– 新增配置按钮 –>
|
|
|
|
- <div style="margin-left: 12px">
|
|
|
|
- <el-button
|
|
|
|
- link
|
|
|
|
- type="primary"
|
|
|
|
- @click="openConfigDialog(scope.row)"
|
|
|
|
- >
|
|
|
|
- 推迟保养
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- <div style="margin-left: 12px">
|
|
|
|
- <el-button
|
|
|
|
- link
|
|
|
|
- type="primary"
|
|
|
|
- @click="openMaterialForm(scope.row)"
|
|
|
|
- >
|
|
|
|
- 选择物料
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- <div style="margin-left: 12px">
|
|
|
|
- <el-button
|
|
|
|
- link
|
|
|
|
- type="primary"
|
|
|
|
- @click="handleView(scope.row.bomNodeId)"
|
|
|
|
- >
|
|
|
|
- 物料详情
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </ContentWrap>-->
|
|
|
|
|
|
|
|
<CustomerList ref="customerZzFormRef" @choose="customerZzChoose" />
|
|
<CustomerList ref="customerZzFormRef" @choose="customerZzChoose" />
|
|
-<!-- <IotProjectTaskForm ref="formRef1" @success="getList" />-->
|
|
|
|
-<!-- <ContentWrap>
|
|
|
|
- <div class="content">
|
|
|
|
- <div class="toolbar">
|
|
|
|
- <div class="actions">
|
|
|
|
- <el-button type="primary" @click="addNewRow" icon="plus" >
|
|
|
|
- 新增行
|
|
|
|
- </el-button>
|
|
|
|
- <el-button type="success" @click="saveAll" :disabled="editingRowsCount === 0" icon="check">
|
|
|
|
- 保存所有更改
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="table-container">
|
|
|
|
- <el-table :data="tableData" :row-class-name="rowClassName" empty-text="暂无数据">
|
|
|
|
-<!– <el-table-column prop="id" label="ID" width="80">
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">{{ row.id }}</span>
|
|
|
|
- <el-input v-else v-model="row.editData.id" disabled class="edit-input" />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>–>
|
|
|
|
-
|
|
|
|
- <el-table-column prop="wellName" label="井号">
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">{{ row.wellName }}</span>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input v-model="row.editData.wellName" class="edit-input" placeholder="请输入井号" />
|
|
|
|
- <div v-if="row.errors.wellName" class="error-message">{{ row.errors.wellName }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column prop="wellType" label="井型/井别">
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">{{ row.wellType }}</span>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input v-model="row.editData.wellType" class="edit-input" placeholder="请输入井型/井别" />
|
|
|
|
- <div v-if="row.errors.wellType" class="error-message">{{ row.errors.wellType }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column prop="location" label="施工地点" >
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">{{ row.location }}</span>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input v-model="row.editData.location" class="edit-input" placeholder="请输入施工地点" />
|
|
|
|
- <div v-if="row.errors.location" class="error-message">{{ row.errors.location }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column prop="technique" label="施工工艺" >
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">{{ row.technique }}</span>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input v-model="row.editData.technique" class="edit-input" placeholder="请输入施工工艺" />
|
|
|
|
- <div v-if="row.errors.technique" class="error-message">{{ row.errors.technique }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column prop="workloadDesign" label="设计工作量">
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">{{ row.workloadDesign }}</span>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input v-model="row.editData.workloadDesign" class="edit-input" placeholder="请输入设计工作量" />
|
|
|
|
- <div v-if="row.errors.workloadDesign" class="error-message">{{ row.errors.workloadDesign }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="deptIds" label="所属队伍" >
|
|
|
|
- <template #default="{ row }">
|
|
|
|
- <span v-if="!row.editing">
|
|
|
|
- {{ getDeptNames(row.deptIds) }}
|
|
|
|
- </span>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-tree-select
|
|
|
|
- multiple
|
|
|
|
- v-model="row.editData.deptIds"
|
|
|
|
- :data="deptList"
|
|
|
|
- :props="defaultProps"
|
|
|
|
- check-strictly
|
|
|
|
- node-key="id"
|
|
|
|
- filterable
|
|
|
|
- placeholder="请选择所在部门"
|
|
|
|
- clearable
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column label="操作" width="200" fixed="right">
|
|
|
|
- <template #default="{ row, $index }">
|
|
|
|
- <div class="action-cell">
|
|
|
|
- <template v-if="!row.editing">
|
|
|
|
- <el-button size="small" type="primary" @click="editRow(row)" icon="edit">编辑</el-button>
|
|
|
|
- <el-button size="small" type="danger" @click="deleteRow($index)" icon="delete">删除</el-button>
|
|
|
|
- </template>
|
|
|
|
- <template v-else>
|
|
|
|
- <el-button size="small" type="success" @click="saveRow(row)" icon="check">保存</el-button>
|
|
|
|
- <el-button size="small" @click="cancelEdit(row)" icon="close">取消</el-button>
|
|
|
|
- </template>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </ContentWrap>-->
|
|
|
|
|
|
+
|
|
<ContentWrap>
|
|
<ContentWrap>
|
|
<el-form style="float: right">
|
|
<el-form style="float: right">
|
|
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
|
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
|
@@ -302,7 +140,7 @@ const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
const loading = ref(true) // 列表的加载中
|
|
const loading = ref(true) // 列表的加载中
|
|
const formData = ref({
|
|
const formData = ref({
|
|
id: undefined,
|
|
id: undefined,
|
|
- deptId: useUserStore().getUser.deptId,
|
|
|
|
|
|
+ deptId: undefined,
|
|
deptName: undefined,
|
|
deptName: undefined,
|
|
contractName: undefined,
|
|
contractName: undefined,
|
|
contractCode: undefined,
|
|
contractCode: undefined,
|
|
@@ -373,6 +211,11 @@ const getDeptNames = (deptIds) => {
|
|
return names.join(', ');
|
|
return names.join(', ');
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+// 计算属性:判断部门选择框是否应该禁用
|
|
|
|
+const isDeptDisabled = computed(() => {
|
|
|
|
+ return formType.value === 'update' || deptList.value.length === 1;
|
|
|
|
+});
|
|
|
|
+
|
|
const tableData = ref([
|
|
const tableData = ref([
|
|
{
|
|
{
|
|
id: 1,
|
|
id: 1,
|
|
@@ -392,9 +235,6 @@ const tableData = ref([
|
|
let deptInfo: any[] = "";
|
|
let deptInfo: any[] = "";
|
|
/** 打开弹窗 */
|
|
/** 打开弹窗 */
|
|
const open = async () => {
|
|
const open = async () => {
|
|
- /* dialogVisible.value = true
|
|
|
|
- dialogTitle.value = t('action.' + type)
|
|
|
|
- formType.value = type*/
|
|
|
|
resetForm()
|
|
resetForm()
|
|
// 修改时,设置数据
|
|
// 修改时,设置数据
|
|
if (id) {
|
|
if (id) {
|
|
@@ -402,20 +242,16 @@ const open = async () => {
|
|
formLoading.value = true
|
|
formLoading.value = true
|
|
try {
|
|
try {
|
|
formData.value = await IotProjectInfoApi.getIotProjectInfo(id)
|
|
formData.value = await IotProjectInfoApi.getIotProjectInfo(id)
|
|
- /*queryParams.projectId = id;
|
|
|
|
- const data = await IotProjectTaskApi.getIotProjectTaskPage(queryParams);
|
|
|
|
- tableData.value = data.list
|
|
|
|
- tableData.value.forEach(item=>{
|
|
|
|
- item.deptIds = [167,168];
|
|
|
|
- item.editData={};
|
|
|
|
- item.originalData={};
|
|
|
|
- item.errors={};
|
|
|
|
- })*/
|
|
|
|
|
|
+
|
|
} finally {
|
|
} finally {
|
|
formLoading.value = false
|
|
formLoading.value = false
|
|
}
|
|
}
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
formType.value = 'create';
|
|
formType.value = 'create';
|
|
|
|
+ // 如果只有一个部门,则自动选中
|
|
|
|
+ if (deptList.value.length === 1) {
|
|
|
|
+ formData.value.deptId = deptList.value[0].id;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
@@ -429,7 +265,7 @@ const submitForm = async () => {
|
|
// 提交请求
|
|
// 提交请求
|
|
formLoading.value = true
|
|
formLoading.value = true
|
|
try {
|
|
try {
|
|
- formData.value.deptId = useUserStore().getUser.deptId;
|
|
|
|
|
|
+ // formData.value.deptId = useUserStore().getUser.deptId;
|
|
const data = {
|
|
const data = {
|
|
projectData: formData.value as unknown as IotProjectInfoVO,
|
|
projectData: formData.value as unknown as IotProjectInfoVO,
|
|
//taskList:tableData.value
|
|
//taskList:tableData.value
|
|
@@ -471,7 +307,15 @@ const resetForm = () => {
|
|
formRef.value?.resetFields()
|
|
formRef.value?.resetFields()
|
|
}
|
|
}
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
- deptList.value = handleTree(await DeptApi.getSimpleDeptList())
|
|
|
|
|
|
+ // deptList.value = handleTree(await DeptApi.getSimpleDeptList())
|
|
|
|
+ // 查询当前登录人所属的 公司级部门 如果部门列表只有一个值 默认选中
|
|
|
|
+ deptList.value = await DeptApi.companyLevelDepts()
|
|
|
|
+
|
|
|
|
+ // 如果只有一个部门,则自动选中
|
|
|
|
+ if (deptList.value.length === 1) {
|
|
|
|
+ formData.value.deptId = deptList.value[0].id;
|
|
|
|
+ }
|
|
|
|
+
|
|
open();
|
|
open();
|
|
})
|
|
})
|
|
|
|
|
|
@@ -644,5 +488,4 @@ const deleteRow = (index) => {
|
|
ElMessage.success('行已删除');
|
|
ElMessage.success('行已删除');
|
|
};
|
|
};
|
|
|
|
|
|
-
|
|
|
|
</script>
|
|
</script>
|