|
@@ -9,11 +9,19 @@
|
|
|
:label-col="{ style: { width: '60px' } }"
|
|
|
>
|
|
|
<a-form-item label="未填涂">
|
|
|
- <div class="color-block color-unfill"></div>
|
|
|
+ <div
|
|
|
+ class="color-block color-unfill"
|
|
|
+ :style="{ backgroundColor: formData.unfillColor }"
|
|
|
+ @click="onEditColor('unfillColor')"
|
|
|
+ ></div>
|
|
|
<a-checkbox v-model:checked="formData.unfillShow">显示</a-checkbox>
|
|
|
</a-form-item>
|
|
|
<a-form-item label="已填涂">
|
|
|
- <div class="color-block color-fill"></div>
|
|
|
+ <div
|
|
|
+ class="color-block color-fill"
|
|
|
+ :style="{ backgroundColor: formData.fillColor }"
|
|
|
+ @click="onEditColor('fillColor')"
|
|
|
+ ></div>
|
|
|
<a-checkbox v-model:checked="formData.fillShow">显示</a-checkbox>
|
|
|
</a-form-item>
|
|
|
<a-form-item name="borderWidth" label="宽度">
|
|
@@ -40,6 +48,12 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</a-modal>
|
|
|
+
|
|
|
+ <ColorPickerDialog
|
|
|
+ ref="colorPickerDialogRef"
|
|
|
+ :color="curColor"
|
|
|
+ @confirm="onColorConfirm"
|
|
|
+ />
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
@@ -50,6 +64,8 @@ import useModal from "@/hooks/useModal";
|
|
|
import { useUserStore } from "@/store";
|
|
|
import { objModifyAssign } from "@/utils/tool";
|
|
|
|
|
|
+import ColorPickerDialog from "./ColorPickerDialog.vue";
|
|
|
+
|
|
|
defineOptions({
|
|
|
name: "FillAreaSetDialog",
|
|
|
});
|
|
@@ -61,7 +77,7 @@ defineExpose({ open, close });
|
|
|
const userStore = useUserStore();
|
|
|
|
|
|
const defaultFormData = {
|
|
|
- fillColor: "#f53f3f ",
|
|
|
+ fillColor: "#f53f3f",
|
|
|
fillShow: true,
|
|
|
unfillColor: "#165DFF",
|
|
|
unfillShow: false,
|
|
@@ -100,6 +116,26 @@ async function confirm() {
|
|
|
close();
|
|
|
}
|
|
|
|
|
|
+// color picker
|
|
|
+type EditType = "fillColor" | "unfillColor";
|
|
|
+const curColor = ref("");
|
|
|
+const colorPickerDialogRef = ref();
|
|
|
+const editType = ref<EditType>("fillColor");
|
|
|
+function onEditColor(type: EditType) {
|
|
|
+ curColor.value =
|
|
|
+ type === "fillColor" ? formData.fillColor : formData.unfillColor;
|
|
|
+ editType.value = type;
|
|
|
+ colorPickerDialogRef.value?.open();
|
|
|
+}
|
|
|
+
|
|
|
+function onColorConfirm(val: string) {
|
|
|
+ if (editType.value === "fillColor") {
|
|
|
+ formData.fillColor = val;
|
|
|
+ } else {
|
|
|
+ formData.unfillColor = val;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/* init modal */
|
|
|
watch(
|
|
|
() => visible.value,
|
|
@@ -126,12 +162,10 @@ function modalOpenHandle() {
|
|
|
height: 32px;
|
|
|
border-radius: 6px;
|
|
|
margin-right: 8px;
|
|
|
+ cursor: pointer;
|
|
|
|
|
|
- &.color-unfill {
|
|
|
- background: #165dff;
|
|
|
- }
|
|
|
- &.color-fill {
|
|
|
- background: #f53f3f;
|
|
|
+ &:hover {
|
|
|
+ opacity: 0.8;
|
|
|
}
|
|
|
}
|
|
|
.input-tips {
|